Назад | Перейти на главную страницу

Быстрый способ защитить Tomcat паролем?

Я ищу быстрый способ защитить экземпляр Tomcat и все запущенные на нем веб-приложения, чтобы для доступа к любой странице требовались учетные данные (простое имя пользователя / пароль).

я думаю Царство это «правильный» способ сделать это, но его не так просто настроить. Мы бы предпочли способ, при котором вам вообще не нужно менять сами веб-приложения. Кто-нибудь знает, есть ли «быстрый и грязный» способ добиться этого?

Пара идей

(1) Если вы можете изменить web.xml своих веб-приложений, просто добавьте несколько строк в web.xml, чтобы потребовать базовую аутентификацию. Хитрость заключается в том, чтобы убедиться, что пользователю назначена роль в файле tomcat-users.xml, соответствующая роли, определенной в разделе auth-constraint файла web.xml:

web.xml:

<auth-constraint>
  <role-name>protected</role-name>
</auth-constraint>

tomcat-users.xml:

<tomcat-users>
  <user name="theuser" password="pas" roles="protected" />
</tomcat-users>

(2) Если перед вашим сервером Tomcat установлен httpd-сервер APache, это довольно просто сделать в Apache. В вашем файле конфигурации вам просто нужно настроить что-то вроде этого:

<Location /webappname>
        AuthType Basic
        AuthName "Protected site"
        AuthUserFile /etc/apache2/passwords
        Require user theuser
</Location>

Я бы поставил Apache перед Tomcat и обработал аутентификацию

Вот несколько инструкций о том, как это сделать с помощью mod_jk.

http://tomcat.apache.org/tomcat-3.3-doc/mod_jk-howto.html#s72

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

Быстро и грязно (не рекомендуется для производства) будет MemoryRealm

MemoryRealm загружает информацию обо всех пользователях и их соответствующих ролях из $ CATALINA_BASE / conf / tomcat-users.xml

Определить Realm в пределах server.xml внутри <Engine> или <Host> и он будет применяться ко всем веб-приложениям.