IT/Java
[Spring Security] WebSecurityConfigurerAdapter / antMatchers 관련(SecurityFilterChain / requestMatchers)
성준하이
2024. 10. 21. 07:57
반응형
이전에 만들어둔 코드가 있는데
새로운 프로젝트를 생성하면서 다시 가져다 쓰려니 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
로 변경해서 사용 가능하다.
반응형