我们目前有:
@Configuration
@EnableWebSecurity
open class OpenApiSecurityConfig() : WebSecurityConfigurerAdapter() {
override fun configure(http: HttpSecurity) {
http.requestMatchers()
.antMatchers("/docs")
.and()
.addFilterBefore(MyApiFilter(), FilterSecurityInterceptor::class.java)
}
}
根据文档,这应该替换为SecurityFilterChain
bean:
@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()
}