をデプロイしましたSpring Boot Web application on WildFly 8.1
が、問題が発生しました。
アプリケーションをデプロイしたら、FilterRegistrationBeans
Servlet Filters を登録します。FilterRegistrationBean
s は によって順序付けられAnnotationAwareOrderComparator
、それらのフィルタはその順序で登録されることを知っています。しかし、アプリケーションにアクセスすると、Undertow は逆の順序でフィルターを呼び出します。
たとえば、Spring Boot が次のようなフィルターを登録する場合:
- errorPageFilter
- metricFilter (Spring Boot アクチュエーターから)
- characterEncodingFilter
- hiddenHttpMethodFilter
- springSecurityFilterChain (Spring Security から)
Undertow は、次のようにこれらのフィルターを呼び出します。
- springSecurityFilterChain
- hiddenHttpMethodFilter
- characterEncodingFilter
- metricFilter
- errorPageFilter
これらのフィルターの順序を正しく指定するにはどうすればよいですか? 一部のフィルターの順序 ( などorg.springframework.boot.context.web.ErrorPageFilter
) がソースにハードコードされていました。指定できません。