개요

Spring boot 3 에서 JWT 사용하기 위한 필요 코드들 분석. 코드 순서는 당연히 JWT 토큰 발급 과정 순서부터 Decode 순서로 이어진다.

JWT 라이브러리는 com.auth0.jwt 을 사용한다.

JWT 발급

HttpSecurity

가장 기본적인 양식 기반 구성은 아래에서 볼 수 있습니다. 구성에서는 요청된 모든 URL에 "ROLE_USER" 역할을 가진 사용자가 필요하도록 요구합니다. 또한 사용자 이름이 "user", 비밀번호가 "password", 역할이 "ROLE_USER"인 사용자를 사용하여 메모리 내 인증 체계를 정의합니다.

 @Configuration
 @EnableWebSecurity
 public class FormLoginSecurityConfig {

        @Bean
        public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
                http.authorizeHttpRequests().requestMatchers("/**").hasRole("USER").and().formLogin();
                return http.build();
        }

        @Bean
        public UserDetailsService userDetailsService() {
                UserDetails user = User.withDefaultPasswordEncoder()
                        .username("user")
                        .password("password")
                        .roles("USER")
                        .build();
                return new InMemoryUserDetailsManager(user);
   

JWT 디코딩