๐Ÿ“… 2024. 05. 17 106์ผ์ฐจ


Filter

@Override
    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
        // ํ—ค๋”์—์„œ Authorization ๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค.
        String bearerToken = request.getHeader("Authorization");

        if (bearerToken != null) {
            String token = bearerToken.substring("Bearer ".length());

            if (jwtProvider.verify(token)) {
                Map<String, Object> claims = jwtProvider.getClaims(token);
                long id = (int) claims.get("id");

                Member member = memberService.findById(id).orElseThrow();

                forceAuthentication(member);
            }
        }

        filterChain.doFilter(request, response);
    }

    // ๊ฐ•์ œ๋กœ ๋กœ๊ทธ์ธ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฉ”์†Œ๋“œ
    private void forceAuthentication(Member member) {
        User user = new User(member.getUsername(), member.getPassword(), member.getAuthorities());

        // ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ ๊ฐ์ฒด์— ์ €์žฅํ•  authentication ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ
        UsernamePasswordAuthenticationToken authentication =
                UsernamePasswordAuthenticationToken.authenticated(
                        user,
                        null,
                        member.getAuthorities()
                );

        // ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ ๋‚ด์— ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  authentication ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•  context ์ƒ์„ฑ
        SecurityContext context = SecurityContextHolder.createEmptyContext();
        // context์— authentication ๊ฐ์ฒด๋ฅผ ์ €์žฅ
        context.setAuthentication(authentication);
        // ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ์— context๋ฅผ ๋“ฑ๋ก
        SecurityContextHolder.setContext(context);
    }
  • ์„ธ์…˜์— ์ €์žฅ๋˜์ง€ ์•Š๊ธฐ๋•Œ๋ฌธ์— ์œ ์ €๋ฅผ ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ์— ๋“ฑ๋ก์„ ํ•ด์•ผํ•œ๋‹ค.

์ฐธ๊ณ ์ž๋ฃŒ

๊ณผ์ œ์‹œํ—˜

๋ฌธ์ œ : 3๊ฐœ ํ•œ๊บผ๋ฒˆ์—

๊ธ€์“ธ๋•Œ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์—์„œ LIKE ๊ธฐ๋Šฅ์จ์„œ ์›ํ•˜๋Š” ๊ฒƒ๋งŒ ๋ณด์—ฌ์ฃผ๊ฒŒ ๊ตฌ์„ฑ

๋‚ ์”จ ๋„์‹œ ์ด๋ฆ„์— ๋Œ€ํ•œ ํ˜„์žฌ ๋‚ ์”จ๋ฅผ ์กฐํšŒํ•˜๊ณ  ํ‘œ์‹œ ๋„์‹œ ์ž…๋ ฅํ•˜๊ณ  ๊ฒ€์ƒ‰ ๋ˆ„๋ฅด๋ฉด ์œ„์ ฏ์ด๋‚˜ ํ•ด๋‹น ๋‚ ์”จ ์ •๋ณด ๋„์šฐ๊ธฐ (๋‚˜๋Š” ์ด๊ฑฐ ํ”„๋กœ์ ํŠธ์— ์žˆ์ง€๋ ~)

๊ด€๊ด‘ api ์‚ฌ์šฉ ์•„๋ฌด์ง€์—ญ์ด๋‚˜ ์ƒ๊ด€์—†์Œ ๊ด€๊ด‘์ง€ ์ด๊ธฐ๋งŒ ํ•˜๋ฉด๋จ ๋Œ€์ „ ๊ด€๊ด‘์ง€ ์ญ‰ ๋„์šฐ๊ณ  ์˜†์— ๋‚ ์”จ

๋ฉ”์ธ ํŽ˜์ด์ง€์— FAQ ์˜†์— ์งˆ๋ฌธํ•˜๊ธฐ ๋ฒ„ํŠผ

์ง€์—ญ ์™ผ์ชฝ์— ๋„ฃ๊ณ  ์˜ค๋ฅธ์ชฝ์— ํ•ด๋‹น ๊ด€๊ด‘์ง€ํ•˜๊ณ  ๋‚ ์”จ ๋‚˜์˜ค๊ฒŒ๋”

์‹คํ–‰ํ™”๋ฉด ์บก์ฒ˜ํ•ด์„œ ์ฒจ๋ถ€

0๊ฐœ์˜ ๋Œ“๊ธ€