티스토리 뷰
Kotlin & JPA
[Kotlin] 'WebSecurityConfigurerAdapter' is deprecated. Deprecated in Java 해결
Jane Kwon 2024. 5. 10. 11:29반응형
Spring Security 5.7.0-M2부터 WebSecurityConfigurerAdapter가 deprecated 됐다.
기존에는 스프링 시큐리티를 사용하면 WebSecurityConfigurerAdapter라는 추상 클래스를 상속하고
configure 메서드를 오버라이드하여 설정하는 아래 방식처럼 사용을 했었다.
@Configuration
@EnableWebSecurity
class WebSecurityConfig(
private val tokenProvider: TokenProvider,
private val jwtAuthenticationEntryPoint: JwtAuthenticationEntryPoint,
private val jwtAccessDeniedHandler: JwtAccessDeniedHandler
) : WebSecurityConfigurerAdapter() {
@Throws(Exception::class)
override fun configure(web: WebSecurity) {
web.ignoring().antMatchers(
"/actuator/**",
"/favicon.ico",
"/v1/**"
)
}
@Throws(java.lang.Exception::class)
override fun configure(httpSecurity: HttpSecurity) {
httpSecurity
.csrf().disable()
.exceptionHandling()
.authenticationEntryPoint(jwtAuthenticationEntryPoint)
.accessDeniedHandler(jwtAccessDeniedHandler)
.and()
.authorizeRequests()
.antMatchers("/v1/users/authentication").permitAll()
.anyRequest().authenticated()
.and()
.apply(JwtSecurityConfig(tokenProvider))
.and()
.httpBasic().disable()
}
}
그런데 상속받은 추상 클래스 이름(WebSecurityConfigurerAdapter())에 밑줄이 쳐지며
'WebSecurityConfigurerAdapter' is deprecated. Deprecated in Java 라고 뜬다.
위 코드에서 WebSecurityConfigurerAdapter를 제거하여 아래와 같이 다시 작성을 했다.
기존 오버라이드 했던 메소드를 @Bean 어노테이션을 이용하여 빈으로 등록하고 사용해야한다.
@Configuration
@EnableWebSecurity
class WebSecurityConfig(
private val tokenProvider: TokenProvider,
private val jwtAuthenticationEntryPoint: JwtAuthenticationEntryPoint,
private val jwtAccessDeniedHandler: JwtAccessDeniedHandler
) {
@Bean
@Throws(Exception::class)
fun webSecurityCustomizer(): WebSecurityCustomizer {
return WebSecurityCustomizer { webSecurity: WebSecurity ->
webSecurity.ignoring().mvcMatchers(
"/actuator/**",
"/favicon.ico",
"/v1/**")
}
}
@Bean
@Throws(Exception::class)
fun filterChain(httpSecurity: HttpSecurity): SecurityFilterChain {
httpSecurity
.csrf().disable()
.exceptionHandling()
.authenticationEntryPoint(jwtAuthenticationEntryPoint)
.accessDeniedHandler(jwtAccessDeniedHandler)
.and()
.authorizeRequests()
.antMatchers("/v1/users/authentication").permitAll()
.anyRequest().authenticated()
.and()
.apply(JwtSecurityConfig(tokenProvider))
.and()
.httpBasic().disable()
return httpSecurity.build()
}
}
반응형
'Kotlin & JPA' 카테고리의 다른 글
[Kotlin][Gradle] 압축을 통한 JSON 전송 속도 개선 (0) | 2024.09.02 |
---|---|
[Kotlin] FTP 접속 후 파일 다운로드 (1) | 2024.06.11 |
[Kotlin] Deserialize cannot deserialize from Object value (no delegate- or property-based Creator). 에러 해결 (0) | 2024.01.23 |
[Kotlin][Gradle] 'getter for buildDir: File' is deprecated. (0) | 2024.01.08 |
[kotlin] long timestamp to LocalDateTime 변환 (0) | 2023.11.07 |