我正在寻找一种快速的方法来保护Tomcat实例及其上运行的所有Web应用程序,以便访问任何页面需要凭据(简单的用户名/密码)。
我想Realm是做这件事的“正确”方式,但这似乎不是很容易设置。 我们更喜欢一种你根本不需要改变webapps的方式。 任何人都知道是否有一个“快速和肮脏”的方式来实现?
一些想法
(1)如果您可以修改webapps的web.xml,只需在web.xml中添加几行代码即可进行基本身份validation。 诀窍是确保用户在tomcat-users.xml中被指定为与web.xml中auth-constraint部分中定义的angular色匹配的angular色:
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服务器在其前面有一个APache httpd服务器,那么在Apache中这样做很容易。 在你的configuration文件中,你只需要设置这样的东西:
<Location /webappname> AuthType Basic AuthName "Protected site" AuthUserFile /etc/apache2/passwords Require user theuser </Location>
我把Apache放在Tomcat前面,并处理authentication
这里是一些关于如何使用mod_jk来做的说明
http://tomcat.apache.org/tomcat-3.3-doc/mod_jk-howto.html#s72
一旦你build立起来,你可以使用基本的Apache Auth或你select的auth模块。
快速和肮脏(不build议生产)将是一个MemoryRealm
MemoryRealm从$ CATALINA_BASE / conf / tomcat-users.xml加载关于所有用户及其相应angular色的信息
在<Engine>或<Host>内的server.xml定义Realm ,并将应用于所有Web应用程序。