Я запускаю конфигурацию Nginx (ssl) -> apache -> tomcat. Nginx декодирует ssl и отправляет запрос на apache (а затем в tomcat) с заголовком X-SSL-Request=1
. Я искал хороший способ включить корректное поведение ssl в моем приложении, не делая конфигурацию apache более сложной. Это похоже на то, что это лучшее решение в случае, если мы решили отказаться от apache (таким образом, исключая использование протокола AJP и полагаясь исключительно на http). Альтернативой является использование apache для изменения env.HTTPS
до on
. Однако мне очень любопытно, где я ошибался в этом подходе.Не удается получить RemoteIpFilter (https), чтобы правильно взаимодействовать с весенним веб-потоком
Вот моя конфигурация фильтра:
<filter>
<filter-name>RemoteIpFilter</filter-name>
<filter-class>org.apache.catalina.filters.RemoteIpFilter</filter-class>
<init-param>
<param-name>protocolHeader</param-name>
<param-value>X-SSL-Request</param-value>
</init-param>
<init-param>
<param-name>protocolHeaderHttpsValue</param-name>
<param-value>1</param-value>
</init-param>
</filter>
Теперь у меня есть контроллер для проверки, что фактический контроллер видит после того, как все это, я получаю:
Request protocol HTTP/1.0
Request secure true
Request server port 443
Request url http://localsecure.xxx/common/requestTest.html
Request uri /common/requestTest.html
Request scheme https
Теперь весна WebFlow кажется, прочитал, что поскольку «http» - это протокол для создания переадресаций, и поэтому все перенаправления отображают как http://localsecure.xxx/...
, а не предназначенные https://localsecure.xxx/...
. Единственный ключ, который у меня есть, это то, что tomcat по-прежнему считает, что URL-адрес запроса: http://
.