๐ 2024. 05. 17 106์ผ์ฐจ
@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 ์์ ์ง๋ฌธํ๊ธฐ ๋ฒํผ
์ง์ญ ์ผ์ชฝ์ ๋ฃ๊ณ ์ค๋ฅธ์ชฝ์ ํด๋น ๊ด๊ด์งํ๊ณ ๋ ์จ ๋์ค๊ฒ๋
์คํํ๋ฉด ์บก์ฒํด์ ์ฒจ๋ถ