#Development
Spring Security + JWT 인증 구현하기
📚
Spring Boot 완전 정복
- 01Spring Security + JWT 인증 구현하기← 현재
- 02Spring Boot 예외 처리 전략 - @ExceptionHandler와 @ControllerAdvice
- 03Spring Boot 시작하기
1 / 3
JWT란?
JWT(JSON Web Token)는 당사자 간 정보를 JSON 객체로 안전하게 전송하기 위한 토큰입니다.
JWT 구조
Header.Payload.Signature
- Header: 알고리즘, 토큰 타입
- Payload: 클레임 (사용자 정보)
- Signature: 서명 (위변조 방지)
Spring Security 설정
JAVA
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
return http
.csrf(AbstractHttpConfigurer::disable)
.sessionManagement(session ->
session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
.authorizeHttpRequests(auth -> auth
.requestMatchers("/api/auth/**").permitAll()
.anyRequest().authenticated())
.addFilterBefore(jwtFilter, UsernamePasswordAuthenticationFilter.class)
.build();
}
}토큰 생성
JAVA
public String createToken(String username) {
return Jwts.builder()
.setSubject(username)
.setIssuedAt(new Date())
.setExpiration(new Date(System.currentTimeMillis() + 3600000))
.signWith(secretKey, SignatureAlgorithm.HS256)
.compact();
}정리
JWT 기반 인증은 무상태(Stateless) 환경에서 효과적인 인증 방식입니다.