J'ai un Wildfly derrière un équilibreur de charge, la connexion entre eux est toujours HTTP. La connexion entre le client et l'équilibreur de charge peut être HTTP ou HTTPS.Règle dans undertow-handlers.conf pour rediriger HTTP vers HTTPS
L'équilibreur de charge définit un en-tête (X-Forwarded-Proto) pour permettre à Wildfly de savoir quel protocole le client utilise.
J'essaye d'écrire une règle Undertow pour rediriger vers HTTPS en tenant compte de toutes les conditions ci-dessus.
C'est l'un de mes essais les plus réussis (cette règle est écrite dans le fichier -undertow handlers.conf et il est la seule chose dans ce fichier):
regex ('/(.*) ') et regex (modèle =' http », valeur = '% {i, X-Forwarded-Proto}', full-match = true) -> redirect (https://server.com/ $ {1})
Lorsque le client essaie d'accéder à une URL comme: http: //server.com/m yapp est redirigé vers https: //server.com, mais le chemin /myapp est manquant.
Comment puis-je corriger ma règle Undertow pour conserver le chemin complet?
Je ne connais pas vraiment cette règle de Wildfly (écrite sur Undertow) pour appliquer une redirection, mais j'aimerais deviner quelque chose qui m'est venu à l'esprit pendant que je lisais votre question: est "regex ('/(.*) ') "censé correspondre seulement au" chemin relatif "ou il correspondra à l'URL entière (par exemple" http://server.com/some_endpoint)? – Miere
Il correspond seulement au chemin relatif, je l'ai utilisé dans d'autres scénarios et il fonctionne parfaitement, mais c'est la première fois que j'utilise un prédicat avec 2 conditions regex, je ne sais pas si cela pourrait poser problème –