为什么在Spring Security中FilterChainProxy内的过滤器上不调用init()?

vltsax25  于 2023-01-05  发布在  Spring
关注(0)|答案(1)|浏览(135)

我已经将自己的过滤器配置为springsecurity中FilterChainProxy的一部分。我很惊讶init()方法(从Filter接口实现)没有在此过滤器上调用。当我将过滤器从FilterChainProxy移到主链时,init()方法按预期调用
FilterChainProxy对待过滤器有什么不同吗?
一次 Boot 提示:
我不得不提供FilterRegistrationBeanenabled=false,以避免注册到主过滤器链,但我不相信这是原因,因为我已经看到了非引导应用程序的行为。

wlsrxk51

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

相关问题