Обратный прокси-сервер Apache и Tomcat с базовой аутентификацией: может ли Tomcat получить имя пользователя?

Я успешно настроил Apache для прослушивания через SSL/443 и прокси Tomcat для прослушивания HTTP/8080. Я также настроил базовую аутентификацию в Apache.

Как только пользователь подключится к моему сервлету Tomcat, HttpServletRequest.getRemoteUser() будет заполнен или равен нулю. Если ноль, как я могу получить удаленного пользователя?


person dacracot    schedule 12.08.2015    source источник
comment
Вы используете mod_proxy или mod_proxy_ajp?   -  person larsks    schedule 12.08.2015
comment
@larsks Я использую mod_proxy.   -  person dacracot    schedule 12.08.2015


Ответы (2)


Простейшим решением может быть использование mod_proxy_ajp, которое в дополнение к прокси-запросам также передает в Tomcat различные метаданные, включая информацию об аутентификации, такую ​​как REMOTE_USER.

В эти документы для Alfresco обсуждают эту конфигурацию, стороне (чтобы он знал, что можно доверять переадресованной аутентификации) и стороне Apache.

Если вы используете общий http-прокси, такой как mod_proxy, вам нужно настроить Apache на добавление значения REMOTE_USER к запросу (возможно, в виде заголовка X-), а затем настроить приложение Tomcat на распознавание и доверие к этому заголовку ( и вам, очевидно, нужно организовать так, чтобы ваш внешний прокси-сервер удалял этот заголовок из любых входящих запросов).

Я не знаю, как бы вы сделали это на стороне кота, но это сообщение, похоже, содержит некоторые предложения.

person larsks    schedule 12.08.2015

мне нужно было добавить

<Location />
    Order allow,deny
    Allow from all
    RequestHeader unset Authorization
</Location>

к месту упаковки, причем RequestHeader является специальностью, которая это исправила.

Я нашел это (снова) через http://codeblow.com/questions/remove-fundamental-authentication-header-with-apache-mod-proxy/ — не знаю, где я изначально нашел его в прошлом году, это была последняя мера для некоторых проблем с безопасностью.

person Florian Heigl    schedule 27.05.2016