WebSecurityConfigurerAdapter 대체 하기
2023. 5. 30. 17:25ㆍ스프링부트
WebSecurityConfigurerAdapter는 스프링 시큐리티를 사용할 때 기본적인 시큐리티 설정을 위해 사용되었다.
WebSecurityConfigurerAdapter라는 추상 클래스를 상속하여 configure 메소드를 오버라이드하여 설정했었다.
이제는 bean으로 등록하여 사용한다.
<기존 사용법>
@EnableWebSecurity
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Bean
public BCryptPasswordEncoder encodePwd() {
return new BCryptPasswordEncoder();
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/user/**").hasAnyRole("ADMIN, USER")
.anyRequest().permitAll()
.and()
.formLogin()
.loginPage("/")
.loginProcessingUrl("/login")
.and()
.logout()
.logoutSuccessUrl("/myPage")
;
}
}
<변경된 사용법>
@EnableWebSecurity
@Configuration
public class SecurityConfig {
@Bean
public BCryptPasswordEncoder encodePwd() {
return new BCryptPasswordEncoder();
}
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception{
http.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/user/**").hasAnyRole("ADMIN, USER")
.anyRequest().permitAll()
.and()
.formLogin()
.loginPage("/")
.loginProcessingUrl("/login")
.and()
.logout()
.logoutSuccessUrl("/myPage");
return http.build();
}
}
- 클래스 생성시 WebSecurityConfigurerAdapter 를 상속하지않고 생성
- 이제는 Override하는 대신 Bean으로 등록해서 SecurityFilterChain을 사용하고
http.build()를 return 해주면 된다
'스프링부트' 카테고리의 다른 글
데이터 바인딩 양방향 단방향 바인딩 설명 (0) | 2024.04.04 |
---|