我已经将自己的过滤器配置为springsecurity中FilterChainProxy
的一部分。我很惊讶init()
方法(从Filter
接口实现)没有在此过滤器上调用。当我将过滤器从FilterChainProxy
移到主链时,init()
方法按预期调用FilterChainProxy
对待过滤器有什么不同吗?
一次 Boot 提示:
我不得不提供FilterRegistrationBean
与enabled=false
,以避免注册到主过滤器链,但我不相信这是原因,因为我已经看到了非引导应用程序的行为。
1条答案
按热度按时间wlsrxk511#
是的,
FilterChainProxy
不调用init()和destroy()方法。但对我来说,这是必需的,所以我使用了DelegatingFilterProxy
,当它设置为true时,它确实有办法通过“targetFilterLifecycle”属性来改变这一点。这样init()和destroy()将像往常一样被调用。在这里阅读更多信息-https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/filter/DelegatingFilterProxy.html