2015-04-07 1 views
0

Я запускаю конфигурацию 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://.

ответ