多个 Spring Security Filter Chain
2022-04-22 本文已影响0人
hemiao3000
<Badge text="了解" type="tip"/>
Spring Security 允许有多条过滤器链并行,Spring Security 的 FilterChainProxy 可以代理多条过滤器链并根据不同的 URI 匹配策略进行分发。但是每个请求每次只能被分发到一条过滤器链。
spring-boot-security-filter-03.png在这种情况下,每个 Security Filter Chain 就只对自己负责的请求有作用,而对其它请求则视而不见。或者说,其它请求也轮不到它来『滤』。不同的 Security FilterChain 之间是互斥而且平等的。
每个 Security Filer Chain 在代码层面仍然也都是一个 SecurityFilterChain 对象。
另外,这多个 Security Filter Chain 和 FilterChainProxy 的关系如下图:
spring-boot-security-filter-05.png不过,要实现多个过滤器链的同时存在,需要经过特殊配置<small>(而非我们之前的那种配置)</small>,一般情况下这种需求并不多。