Josh 성장일기
article thumbnail

Spring Security + jwt 를 활용기에 대한 기록용 및 복습 포스트입니다.

 

- 초보개발자로써 혼자서 공부한 내용을 정리삼아 블로그에 작성하니 잘못된 점 바로잡아주시면 감사하겠습니다! -

 

Spring Security + Jwt 의 전체 흐름도

 

 

SecurityFilterChain

먼저 Security 즉 보안에 관련하여 설정을 정의 해주는 SecurityConfiguarion Class 를 생성합니다.

위와 같이 저는 config 패키지에 생성을 했습니다. 개인의 편의로 사용하면 될거같아요

@Configuration
@EnableWebSecurity // Spring Security를 사용하도록 활성화
@RequiredArgsConstructor
public class SecurityConfiguration {

    private final JwtAuthenticationFilter jwtAuthFilter;

    private final AuthenticationProvider authenticationProvider;

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { // HTTP 요청을 처리할 Spring Security 필터들의 체인
        http
            .csrf()
            .disable()
            .authorizeHttpRequests()
            .requestMatchers("/api/v1/auth/**")
            .permitAll() // 위의 url 들을 허용한다는 메소드
            .anyRequest() // 그 외의 다른 경로들은
            .authenticated() // 인증이 필요하다는 메소드
            .and()
            .sessionManagement() // 세션매니지먼트를
            .sessionCreationPolicy(SessionCreationPolicy.STATELESS) // 세션을 무상태로 유지한다. 한마디로 jwt 쓰겠다는말
            .and()
            .authenticationProvider(authenticationProvider) // 인증절차를 정의하는 것
            .addFilterBefore(jwtAuthFilter, UsernamePasswordAuthenticationFilter.class);
            // jwtAuthFilter 를  UsernamePasswordAuthenticationFilter 보다 먼저 실행한다.
            // 이렇게 함으로써 JWT 인증 필터가 우선적으로 실행되어 JWT 인증 정보를 처리할 수 있음

        return http.build();
    }
}

위의 클래스는 Spring Security를 사용하여 HTTP 요청을 인증 및 권한 부여하는 필터 체인을 설정하는 Java 설정 클래스입니다.

 

- securityFilterChain 메서드는 HTTP 요청을 처리하는 Spring Security 필터 체인을 설정
- 코드에 대한 자세한 설명은 주석을 확인해주세요!!

 

 

이제 DI를 통해 사용중인 

private final JwtAuthenticationFilter jwtAuthFilter;

에 대한 구현 클래스를 다음포스트에 올리도록 하겠습니다!!.

 


- 짧게 올리는 이유는 복습에 대한 의미가 크기 때문에 자주 포스팅하여 코드를 자주 보고싶어 그렇습니다 -

 

profile

Josh 성장일기

@JoshDev

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그