
?

음.. 그래그래
이전 프로젝트에서 사용한 Spring Security 와 이번에 새로 적용한 Spring Security 의 설정 중에 SecurityFilterChain 부분에서 여러 차이점을 확인해보고 비교해보기로 했다.
이전 2.xx 버전의 프로젝트에서 적용했던 SecurityFilterChain Config 코드이다.
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
.formLogin().disable()
.httpBasic().disable()
.cors().configurationSource(corsConfigurationSource())
.and()
.csrf().disable()
.authorizeRequests()
.antMatchers("/swagger-ui/**", "/swagger-resources/**", "/v3/api-docs/**").permitAll()
.antMatchers("/member/**", "/oauth/**").permitAll()
.anyRequest().authenticated()
.and()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.apply(new JwtSecurityConfig(jwtTokenProvider))
;
return http.build();
}
Spring Boot 3 이후 바꾼 나의 SecurityFilterChain 설정
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
.csrf(AbstractHttpConfigurer::disable)
.formLogin(AbstractHttpConfigurer::disable)
.httpBasic(AbstractHttpConfigurer::disable)
.cors(cors -> cors.configurationSource(corsConfigurationSource()))
.headers(header -> header.frameOptions(HeadersConfigurer.FrameOptionsConfig::disable))
.authorizeHttpRequests(
registry -> registry.requestMatchers("/", "/signup", "/signin")
.permitAll()
.anyRequest()
.authenticated()
)
.addFilterBefore(jwtFilter, UsernamePasswordAuthenticationFilter.class)
.sessionManagement(config -> config.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
.userDetailsService(customUserDetailService)
;
return http.build();
}
.disable() 이 deprecated 되면서 AbstractHttpConfigurer::disable 와 같이 작성해주어야한다.