我部署了我的Spring Boot Web application on WildFly 8.1
,但现在我遇到了一些麻烦。WildFly(或Undertow)上的Spring Boot:Servlet Filter的命令被反转
当应用程序被部署时,FilterRegistrationBeans
注册了Servlet过滤器。我知道FilterRegistrationBean
是由AnnotationAwareOrderComparator
排序的,而那些过滤器是按该顺序注册的。但是当我访问我的应用程序时,Undertow按相反顺序调用过滤器。
例如,如果弹簧引导注册过滤器这样的:
- errorPageFilter
- metricFilter(从弹簧引导促动器)
- characterEncodingFilter
- hiddenHttpMethodFilter
- springSecurityFilterChain(从春季安全)
暗潮调用这些过滤器这样的:
- springSecurityFilterChain
- hiddenHttpMethodFilter
- characterEncodingFilter
- metricFilter
- errorPageFilter
如何正确指定这些过滤器的顺序?某些过滤器的顺序(如org.springframework.boot.context.web.ErrorPageFilter
)在源代码中被硬编码,我无法指定。
您是否在Tomcat或任何其他Java EE应用程序服务器上尝试了此操作?想知道这是一个引导问题还是WildFly? – 2014-09-12 15:36:32
我正在尝试WildFly和嵌入式Tomcat。在Tomcat上,过滤器顺序是收集的(这是我的预期),但在WildFly上,顺序如上所述。 – riue 2014-09-12 16:09:14
在团队内部进行检查并会尽快回复您。 – 2014-09-13 20:17:07