Spring Boot 3.0 이상 부터는 Spring Security 6.0 이상 버전이 적용된다.
이 전 버전들고 동일하게 SecurityConfig를 작성하고 나니 desprecated 된 (더 이상 사용하지 않는)함수들이 많아서 기록 하고자 함
- extends WebSecurtyConfigurerAdapter -> SecurityFilterChain @Bean 등록
- 람다식 사용
- EnableGlobalMethodSecurity -> EnableMethodSecurity
- authorizeRequests -> authorizeHttpRequests
- access("hasAnyRole('ROLE_ADMIN', 'ROLE_MANAGER')") -> .hasAnyRole("ADMIN", "MANAGER")
- anyMatchers -> requestMatchers
@Configuration
@EnableWebSecurity
@EnableMethodSecurity(securedEnabled = true, prePostEnabled = true)
public class SecurityConfig {
@Bean
public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception {
return httpSecurity
.csrf(csrf -> csrf.disable())
.authorizeHttpRequests(authorizeRequests -> authorizeRequests
.requestMatchers("/user/**").authenticated()
.requestMatchers("/manager/**").hasAnyRole("ADMIN", "MANAGER")
.requestMatchers("/admin/**").hasRole("ADMIN")
.anyRequest().permitAll())
.formLogin(formLogin -> formLogin
.loginPage("/login")
.loginProcessingUrl("/login")
.defaultSuccessUrl("/"))
.build();
}
@Bean
public BCryptPasswordEncoder bCryptPasswordEncoder() {
return new BCryptPasswordEncoder();
}
}
'프로그래밍 > Spring' 카테고리의 다른 글
[Spring] 실시간 채팅 서버 구현 (STOMP, Redis Pub/Sub), 상세 시나리오 (0) | 2024.01.17 |
---|---|
[Spring] Spring Security 회원가입/로그인 구현 예제 (0) | 2023.09.18 |
[Spring] iTunes Search API 사용법, 음원 정보 검색하기 (0) | 2023.08.23 |
[Spring] DTO, MultiPartFile 동시에 요청하기 (0) | 2023.08.22 |
[Spring] devtools로 서버 재 시작 없이 resource(html, css, js) 반영하기, Automatic Restart (0) | 2023.08.21 |