我正在寻找一种快速的方法来保护 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>