Spring Security: требует-channel=https за ускорителем SSL

Мы используем устройство F5 BIG-IP для завершения SSL-соединений и подключения по простому HTTP к серверу приложений с помощью приложения с поддержкой Spring. Также мы настроили F5 для отправки заголовка X-Forwarded-Proto с http или https в качестве значения.

Теперь мы хотели бы применить HTTPS, настроив URL-адрес перехвата:

<security:intercept-url pattern="/login.action" requires-channel="https" />

Но это работает только в том случае, если схема протокола в контейнере сервлета — HTTPS, поэтому нам нужно интерпретировать заголовок HTTP.

есть идеи как это сделать?

Спасибо Саймон


person simcen    schedule 18.07.2011    source источник


Ответы (3)



Я знаю, что этому вопросу/ответу 4 года, но он помогает мне найти решение моей проблемы. Но в современных приложениях Spring Boot исправить проще. Просто добавьте следующую запись в свой application.yaml:

server.tomcat.protocol_header: x-forwarded-proto

Дополнительная информация здесь: http://docs.spring.io/spring-boot/docs/current/reference/html/howto-security.html#howto-enable-https

person Sigrist    schedule 17.03.2017
comment
Я пробовал это, но, похоже, это работает, только если вы используете встроенный экземпляр Tomcat, а не развертываете приложение как WAR на внешнем экземпляре Tomcat. - person Jason H; 27.09.2017
comment
Следование указанной документации приводит к тому, что запросы перенаправляются на /login только через присутствие extends WebSecurityConfigurerAdapter и никак иначе. - person Chloe; 14.11.2018

В наше время еще проще:

server.use-forward-headers: true

Включено по умолчанию для Cloud Foundry и Heroku, но не для других, таких как AWS.

Документация (раздел 73.7): https://docs.spring.io/spring-boot/docs/1.5.x/reference/html/howto-embedded-servlet-containers.html

person lejeune.n    schedule 28.12.2017
comment
Это лучшее решение на сегодняшний день. - person Fernando Fradegrada; 07.05.2018
comment
Ссылка мертва. Я даже не понимаю, какое отношение подтверждение заголовков имеет к форсированию SSL. - person Chloe; 14.11.2018