spring gateway ,spring security集成,webfilter执行两次的问题处理
1.问题说明
spring gateway ,spring security集成时候,
使用@Component注册filter
@Component
public class XFilter implements WebFilter {
又在SecurityWebFilterChain里配置了filter
@Autowired
XFilter xfilter;
@Bean
SecurityWebFilterChain webFluxSecurityFilterChain(ServerHttpSecurity http) throws Exception {
http .addFilterBefore(xfilter, SecurityWebFiltersOrder.CORS)
导致filter会执行两次
2.解决方法
1.不使用@Component注册filter,只在SecurityWebFilterChain里配置,如果要使用bean的话,需要通过构造器来注入,或者直接注入ApplicationContext
public class XFilter implements WebFilter {
private DataCache dataCache;
public XFilter(DataCache dataCache){
this.dataCache = dataCache;
}
@Override
public Mono