Spring HTTPS переключается на HTTP: я хочу использовать HTTPS или HTTP для сайта в зависимости от пользователя - PullRequest
0 голосов
/ 18 мая 2011

Я использую Spring 3, Java и Tomcat. Мы используем балансировщик нагрузки, который допускает HTTPS или HTTP-запросы. Проблема в том, что запросы HTTPS преобразуются в HTTP, как только страница входа в систему отправляется.

Блокировка никогда не отображается в нижней панели браузера. Мне нужен весь сайт, чтобы использовать HTTPS или HTTP в зависимости от исходного запроса.

Я попытался установить безопасность канала в security-config.xml следующим образом:

intercept-url pattern="/**" access="ROLE_USER" requires-channel="any"

но не повезло. Если я установлю require-channel = "https", мне придется использовать HTTPS для всего сайта, но я хочу, чтобы пользователь решил.

Спасибо за любую помощь. Я искал несколько дней, но не могу найти решение.

1 Ответ

1 голос
/ 20 июня 2012

Это то, что я сделал, хотя я все время пытался принудительно установить https:

  1. Создайте пользовательский заголовок, который балансировщик нагрузки добавит к запросу, обозначая, что он прошел как https.
  2. Напишите оболочку сервлета для переопределения метода isSecure(), который ищет порт https как обычно, но также имеет возможность поиска заголовка, добавленного балансировщиком нагрузки.
  3. Примените оболочку с помощьюфильтр в цепочке фильтров.

Таким образом, запрос считается безопасным, а перенаправление на http не отправляется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...