我需要在基于Webflux的应用程序中添加安全性,有一些要求使我需要添加多个过滤器链。然而,目前的WebFilterChainProxy实现使用Flux.filterWhen(...),如果我正确阅读文档的话,它只会返回链中的第一个匹配项。
鉴于上述情况,我有三个问题:
1. 我的React知识非常有限,有人能确认一下我对filterWhen的理解是否正确吗? 2. 如果是这样的话,有人可以建议一种在新的Spring Security 5反应模型中使多个过滤器链工作的方法吗? 3. 如果我误解了filterWhen方法的工作原理,有人能提出任何建议,为什么只处理我的一个过滤器链?
我通过使用@Order注释的多个配置方法将过滤器添加到链中,类似于下面的代码块。
当我调试应用程序时,我可以看到所有三个过滤器都已添加到
鉴于上述情况,我有三个问题:
1. 我的React知识非常有限,有人能确认一下我对filterWhen的理解是否正确吗? 2. 如果是这样的话,有人可以建议一种在新的Spring Security 5反应模型中使多个过滤器链工作的方法吗? 3. 如果我误解了filterWhen方法的工作原理,有人能提出任何建议,为什么只处理我的一个过滤器链?
我通过使用@Order注释的多个配置方法将过滤器添加到链中,类似于下面的代码块。
@Configration
@EnableWebFluxSecurity
public class SecurityConfig
...
@Bean
@Order(1)
SecurityWebFilterChain chain1(ServerHttpSecurity http) {
return http.httpBasic().disable()......
}
@Bean
@Order(2)
SecurityWebFilterChain chain2(ServerHttpSecurity http) {
return http.httpBasic().disable()......
}
@Bean
@Order(3)
SecurityWebFilterChain chain3(ServerHttpSecurity http) {
return http.httpBasic().disable()......
}
...
}
当我调试应用程序时,我可以看到所有三个过滤器都已添加到
WebFilterChainProxy,但我只能获得一个匹配的过滤器。我需要找到一种返回所有匹配过滤器的方法。
请问有人能帮忙吗?