将Spring Security从5迁移到6



我们目前有:

@Configuration
@EnableWebSecurity
open class OpenApiSecurityConfig() : WebSecurityConfigurerAdapter() {
override fun configure(http: HttpSecurity) {
http.requestMatchers()
.antMatchers("/docs")
.and()
.addFilterBefore(MyApiFilter(), FilterSecurityInterceptor::class.java)
}
}

根据文档,这应该替换为SecurityFilterChainbean:

@Bean
open fun filterChain(http: HttpSecurity): SecurityFilterChain {
http.requestMatchers()
.antMatchers("/docs")
.and()
.addFilterBefore(MyApiFilter(), AuthorizationFilter::class.java)
}

然而,HttpSecurity对象已经完全改变,requestMatchers()丢失,我找不到如何执行迁移的规范。

你可以使用securityMatcher("/docs")来应用你的过滤器

允许配置HttpSecurity只在匹配提供的模式时调用。如果Spring MVC在类路径中,这个方法创建一个MvcRequestMatcher。或者创建一个AntPathRequestMatcher,如果不是。如果需要更高级的配置,可以考虑使用securityMatchers(Customizer)或securityMatcher(RequestMatcher)

@Bean
fun filterChain(http: HttpSecurity): SecurityFilterChain {
return http
.securityMatcher("/docs") 
.addFilterBefore(MyApiFilter(), AuthorizationFilter::class.java)
.build()
}

最新更新