快速的方式来密码保护Tomcat?

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