J'ai déployé ma Spring Boot Web application on WildFly 8.1
, mais maintenant j'ai des problèmes.Spring Spring sur WildFly (ou Undertow): les ordres du filtre de servlet sont inversés
Lorsque l'application a été déployée, FilterRegistrationBeans
registre Filtres de servlet. Je sais FilterRegistrationBean
s sont oredered par AnnotationAwareOrderComparator
, et ces filtres sont enregistrés par cet ordre. Mais quand j'accède à mon application, Undertow appelle les filtres par ordre inverse.
Par exemple, si les filtres registre Spring Boot comme ça:
- errorPageFilter
- metricFilter (du printemps actionneur Boot)
- characterEncodingFilter
- hiddenHttpMethodFilter
- springSecurityFilterChain (du printemps Sécurité
Undertow appeler ces filtres comme ça:
- springSecurityFilterChain
- hiddenHttpMethodFilter
- characterEncodingFilter
- metricFilter
- errorPageFilter
Comment puis-je spécifier ces filtres à commander correctement? L'ordre de certains filtres (comme org.springframework.boot.context.web.ErrorPageFilter
) a été codé en dur dans la source, je ne peux pas le spécifier.
Avez-vous essayé sur Tomcat ou tout autre serveur d'application Java EE? Vous vous demandez si c'est un problème de démarrage, ou WildFly? –
J'essaie sur WildFly et Embedded Tomcat. Sur Tomcat, l'ordre des filtres est collecté (c'est ce à quoi je m'attendais), mais sur WildFly, l'ordre est celui décrit ci-dessus. – riue
Vérifie au sein de l'équipe et reviendra vers vous. –