使用密码保护 Tomcat 的快捷方法?

使用密码保护 Tomcat 的快捷方法?

我正在寻找一种快速的方法来保护 Tomcat 实例和在其上运行的所有 web 应用程序,以便访问任何页面都需要凭据(简单的用户名/密码)。

我猜领域是“正确”的做法,但设置起来似乎不太简单。我们更希望采用一种根本不需要更改 Web 应用程序本身的方法。有人知道是否有一种“快速而粗略”的方法来实现这一点吗?

答案1

一些想法

(1) 如果您可以修改 webapps 的 web.xml,只需在 web.xml 中放入几行代码即可要求进行基本身份验证。诀窍是确保已在 tomcat-users.xml 中为用户指定了与 web.xml 的 auth-constraint 部分中定义的角色相匹配的角色:

web.xml:

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

tomcat-用户.xml:

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

(2) 如果您的 Tomcat 服务器前面有一个 APache httpd 服务器,那么在 Apache 中执行此操作非常容易。在您的配置文件中,您只需设置如下内容:

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

答案2

我将 Apache 放在 Tomcat 前面,并让它处理身份验证

以下是有关如何使用 mod_jk 执行此操作的一些说明

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

设置完成后,您可以使用基本的 Apache Auth 或您选择的身份验证模块。

答案3

快速而肮脏(不推荐用于生产)将是一个MemoryRealm

MemoryRealm 从 $CATALINA_BASE/conf/tomcat-users.xml 加载有关所有用户及其相应角色的信息

Realm内部定义或它将应用于所有 Web 应用程序。server.xml<Engine><Host>

相关内容