Spring boot WildFly上的Spring Boot(或Undertow):Servlet过滤器';s的命令被颠倒了
我在WildFly 8.1上部署了我的Spring boot WildFly上的Spring Boot(或Undertow):Servlet过滤器';s的命令被颠倒了,spring-boot,wildfly,undertow,Spring Boot,Wildfly,Undertow,我在WildFly 8.1上部署了我的Spring Boot Web应用程序,但现在遇到了一些问题 部署应用程序时,FilterRegistrationBeansRegisterServlet过滤器。我知道,FilterRegistrationBeans是由AnnotationAwareOrderComparator排序的,并且这些过滤器是按该顺序注册的。但当我访问我的应用程序时,Undertow调用按相反顺序过滤 例如,如果Spring引导寄存器过滤如下: 错误页面过滤器 metricFil
Spring Boot Web应用程序,但现在遇到了一些问题
部署应用程序时,FilterRegistrationBeans
RegisterServlet过滤器。我知道,FilterRegistrationBean
s是由AnnotationAwareOrderComparator
排序的,并且这些过滤器是按该顺序注册的。但当我访问我的应用程序时,Undertow调用按相反顺序过滤
例如,如果Spring引导寄存器过滤如下:
- 错误页面过滤器
- metricFilter(来自弹簧防尘套执行器)
- 字符编码滤波器
- hiddenHttpMethodFilter
- springSecurityFilterChain(来自Spring Security)
Undertow这样称呼这些过滤器:
- springSecurityFilterChain
- hiddenHttpMethodFilter
- 字符编码滤波器
- 计量过滤器
- 错误页面过滤器
如何正确指定这些过滤器的顺序?一些过滤器的顺序(如org.springframework.boot.context.web.ErrorPageFilter
)是在源代码中硬编码的,我无法指定。这似乎是一个底层错误,当FilterRegistrationImpl#addMappingForUrlPatterns中matchAfter为false时会发生,它不是在所有声明的过滤器之前插入过滤器,而是在所有过滤器之前插入过滤器。您是否在Tomcat或任何其他Java EE应用服务器上尝试过这种方法?想知道这是引导问题还是WildFly?我正在尝试WildFly和嵌入式Tomcat。在Tomcat上,过滤器的顺序是collect(这是我期望的),但在WildFly上,过滤器的顺序是上面描述的。在团队内部检查,然后会返回给您。现在这个问题已经得到了回答!谢谢你的修理!