Проблема:
Приложение, использующее Spring Security, находится за AJP-прокси (Apache2 mod_proxy_ajp), которое меняет контекст приложения:
ProxyPass / ajp://localhost:8009/Context/
ProxyPassReverse / ajp://localhost:8009/Context/
Редиректы, генерируемые Spring Security, привязаны к контексту веб-приложения, что вроде бы должно исправляться директивой ProxyPassReverse, однако не работает для
AJP-проксирования (если использовать http, то Apache2 корректно модифицирует контекст при перенаправлениях).
Решение:
Вариантов, в принципе, 3:
- Отказаться от AJP-проксирования в пользу HTTP
- Разворачивать веб-приложение в корне backend-сервера
- Использовать mod_rewrite для корректировки контекста на стороне прокси-сервера:
RewriteEngine onСпасибо http://stackoverflow.com/questions/6063339/spring-security-and-ajp-proxy.
RewriteRule ^/Context/(.*)$ /$1 [R=301]
Комментариев нет:
Отправить комментарий