barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

пятница, 27 апреля 2012 г.

Spring Security за AJP proxy

Проблема:

Приложение, использующее Spring Security, находится за AJP-прокси (Apache2 mod_proxy_ajp), которое меняет контекст приложения:
ProxyPass / ajp://localhost:8009/Context/
ProxyPassReverse / ajp://localhost:8009/Context/
Редиректы, генерируемые Spring Security, привязаны к контексту веб-приложения, что вроде бы должно исправляться директивой ProxyPassReverse, однако не работает для  AJP-проксирования (если использовать http, то Apache2 корректно модифицирует контекст при перенаправлениях).

Решение:

Вариантов, в принципе, 3:
  1. Отказаться от AJP-проксирования в пользу HTTP
  2. Разворачивать веб-приложение в корне backend-сервера
  3. Использовать mod_rewrite для корректировки контекста на стороне прокси-сервера:
RewriteEngine on
RewriteRule ^/Context/(.*)$ /$1 [R=301]
Спасибо http://stackoverflow.com/questions/6063339/spring-security-and-ajp-proxy

Комментариев нет:

Отправить комментарий