공부해봅시당
[Spring Boot] Security 7.0 버전업에 의한 Deprecated 문제 본문
스프링부트 Security가 7.0으로 업데이트되면서 변화하게 된 여러 사항들이 있어 비교를 위해 글을 작성한다.
Spring Security 7.0 예시코드
@Configuration
@EnableWebSecurity
@RequiredArgsConstructor
public class SecurityConfig {
@Autowired
private PrincipalOauth2UserService principalOauth2UserService;
// Security 를 이용한 각종 권한 접근 경로 등 설정
@Bean
protected SecurityFilterChain configure(HttpSecurity http) throws Exception {
http
.csrf((csrf) -> csrf.disable())
.authorizeHttpRequests(authorize -> authorize
.requestMatchers("/**").permitAll()
.anyRequest().authenticated()
)
.formLogin(formLogin -> formLogin
.loginPage("/chatlogin").permitAll()
.loginProcessingUrl("/login")
.defaultSuccessUrl("/")
)
.logout((logout) -> logout
.logoutUrl("/logout").permitAll()
.logoutSuccessUrl("/")
)
.oauth2Login((oauth2Login) -> oauth2Login
.loginPage("/chatlogin")
.userInfoEndpoint(userInfo -> userInfo
.userService(principalOauth2UserService)
)
)
.rememberMe(Customizer.withDefaults());
return http.build();
}
}
가장 크게 변화한 것은 사용 방식이다.
Spring Security 7.0부터는 모두 람다형으로 변경하였다.
따라서 csrf().disable()로 사용했던 것들은 csrf((csrf) -> csrf.disable())처럼 작성해야 한다.
자세한 내용은 아래 문서를 확인하자.
https://docs.spring.io/spring-security/reference/migration-7/configuration.html
Configuration Migrations :: Spring Security
The Lambda DSL is present in Spring Security since version 5.2, and it allows HTTP security to be configured using lambdas. You may have seen this style of configuration in the Spring Security documentation or samples. Let us take a look at how a lambda co
docs.spring.io
아래는 Deprecated된 함수 목록이니 참고하면 좋을 듯 하다.
https://docs.spring.io/spring-security/site/docs/current/api/deprecated-list.html
Deprecated List (spring-security-docs 6.1.1 API)
docs.spring.io
'STUDY > 개발 고민' 카테고리의 다른 글
[성능 테스트] nGrinder + Springboot 부하 테스트 준비 - groovy 파일로 스크립트 실행해보기 (0) | 2023.11.07 |
---|---|
[성능 테스트] nGrinder + Springboot 부하 테스트 준비 - nGrinder 설치 및 agent 실행 (0) | 2023.10.17 |
[성능 테스트] 성능테스트를 위한 준비 - MYSQL에 Mockaroo로 더미 데이터 넣기2 (0) | 2023.10.17 |
[성능 테스트] 성능테스트를 위한 준비 - MYSQL에 프로시저로 더미 데이터 넣기 (1) | 2023.10.17 |
[Project] mysql, spring-boot, docker-compose 실행 (2) | 2023.07.04 |