小编and*_*dye的帖子

Spring Security Reactive WebFilterChainProxy 仅调用单个过滤器链

我需要在基于 Webflux 的应用程序中添加安全性,并且有要求意味着我需要添加多个过滤器链。但是,如果我正确阅读文档,当前的WebFilterChainProxy使用实现Flux.filterWhen(...)只会返回链中的第一个匹配项。

鉴于上述我有三个问题:-

  1. 我的反应知识非常有限,有人可以确认我对什么的理解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()......
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

当我调试应用程序时,我可以看到所有三个过滤器都已添加到 中,WebFilterChainProxy但我只得到一个匹配的过滤器。我需要找到一种返回所有匹配过滤器的方法。

有人可以帮忙吗?

spring-security spring-webflux

5
推荐指数
1
解决办法
2123
查看次数

标签 统计

spring-security ×1

spring-webflux ×1