본문 바로가기
IT/Java

[Spring Security] WebSecurityConfigurerAdapter / antMatchers 관련(SecurityFilterChain / requestMatchers)

by 성준하이 2024. 10. 21.
반응형

이전에 만들어둔 코드가 있는데 

새로운 프로젝트를 생성하면서 다시 가져다 쓰려니 deprecated 가 되어있었다.

 

바로 WebSecurityConfigurerAdapter 이다.

 

기존에 사용하던 코드는 아래와 같다.

@Slf4j
@EnableGlobalMethodSecurity(prePostEnabled = true)
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

..이상 생략
     @Override
     protected void configure(AuthenticationManagerBuilder auth) throws Exception{
          auth.userDetailsService(service).passwordEncoder(encryptPassword());
     }
..이하 생략

 

새롭게 만들어진 프로젝트는 Spring security 6.3.3 버전이고 Spring security 5.7 버전 이상일 경우부터 WebSecurityConfigurerAdapter가 사용이 안된다.

 

그럼 기존 코드를 어떻게 변경해야하는지 아래에 코드로 살펴보면,

@Slf4j
@Configuration
public class SecurityConfig {

..이상 생략
     @Bean
     public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {

..이하 생략

이렇게 변경하여 사용이 가능하다.

SecurityFilterChain 를 Bean 받아서 사용이 가능하다.

 

추가적으로 http 설정을 아래에 적어주게 되는데 기존에는 antMatchers 를 아래와 같이 사용하였다.

.antMatchers("/", "/test/**", "/lib/**", "/js/**", "/css/**", "/image/**").permitAll()

이러면 해당 경로의 접근은 허용이 되게 된다.

이 코드는 아래와 같이 변경이 가능하다.

.requestMatchers("/", "/test/**", "/lib/**", "/js/**", "/css/**", "/image/**").permitAll()

requestMatchers 를 사용하면 된다.

 

즉,
WebSecurityConfigurerAdapter -> SecurityFilterChain

antMatchers -> requestMatchers
로 변경해서 사용 가능하다.

 

반응형

댓글