У меня есть Wildfly за балансировщиком нагрузки, между ними всегда есть HTTP. Соединение между клиентом и балансировщиком нагрузки может быть HTTP или HTTPS.Правило inhand-handlers.conf для перенаправления HTTP на HTTPS
Балансировщик нагрузки устанавливает заголовок (X-Forwarded-Proto), чтобы Wildfly знал, какой протокол использует клиент.
Я пытаюсь написать правило Undertow для перенаправления на HTTPS с учетом всех вышеперечисленных условий.
Это одна из моих более успешных попыток (это правило написано в прибойный-handlers.conf файл, и это единственное, что в этом файле):
регулярное выражение ('/(.*) ') и регулярное выражение (шаблон =' HTTP», значение = '% {I, X-Forwarded-Proto}', полный матч = истина) -> переадресацией (https://server.com/ $ {1})
Когда клиент пытается получить доступ к URL-адресу: http: //server.com/m yapp перенаправляется на https: //server.com, но путь /myapp отсутствует.
Как я могу исправить свое правило Undertow, чтобы сохранить полный путь?
Я действительно не знаю этого правила Wildfly (написанного над Undertow), чтобы применить некоторое перенаправление, но хотел бы угадать то, что пришло мне в голову, когда я читал ваш вопрос: «regex ('/(.*) '), «должен соответствовать только« относительному пути »или соответствовать всему URL-адресу (например,« http://server.com/some_endpoint ») – Miere
Он соответствует только относительному пути, я использовал его в других сценариях, и это отлично работает, но это первый раз, когда я использую предикат с 2 регулярными выражениями, я не знаю, может ли это быть проблемой. –