본문 바로가기
Q&A2024년 5월 8일1분 읽기

Spring Boot에서 JWT 인증 구현하기

변
변서영
조회 716댓글 1

Spring Boot 프로젝트에서 JWT 인증을 구현하는 방법을 알려주세요.

댓글 1

김김영삼2년 전

Spring Boot JWT 인증 핵심 구조:

// 1. JWT 생성
public String generateToken(String username) {
return Jwts.builder()
.setSubject(username)
.setIssuedAt(new Date())
.setExpiration(new Date(System.currentTimeMillis() + 86400000))
.signWith(SignatureAlgorithm.HS256, secretKey)
.compact();
}

// 2. JWT 필터
@Component
public class JwtFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest req,
HttpServletResponse res, FilterChain chain) {
String header = req.getHeader("Authorization");
if (header != null && header.startsWith("Bearer ")) {
String token = header.substring(7);
String username = parseToken(token);
// SecurityContext에 인증 정보 설정
}
chain.doFilter(req, res);
}
}

// 3. SecurityConfig에 필터 등록
http.addFilterBefore(jwtFilter, UsernamePasswordAuthenticationFilter.class);

Spring Security 6.x 기준으로 SecurityFilterChain Bean 방식을 사용하세요.

Ctrl+Enter로 등록