tomcat中受密码保护的应用程序

时间:2013-03-25 07:22:23

标签: java tomcat deployment web.xml

我正在使用(JSP + Servlet)开发Web应用程序,我使用Tomcat 7.0.33作为web container

所以我的要求是tomcat中的每个应用程序都将被password保护,就像tomcat中的manager application受到保护一样。

到目前为止,我已经做了以下事情:

server.xml中

<Realm className="org.apache.catalina.realm.MemoryRealm" />

Tomcat的users.xml中

<tomcat-users>
    <role rolename="tomcat"/>
    <role rolename="manager-gui"/>
    <role rolename="role1" />

    <user username="tomcat" password="tomcat" roles="role1,tomcat,manager-gui"/>
    <user username="role1" password="tomcat" roles="role1"/>
</tomcat-users>

的web.xml

<security-role>
    <role-name>role1</role-name>
</security-role>
<security-role>
    <role-name>tomcat</role-name>
</security-role>

<security-constraint>
<web-resource-collection>
    <web-resource-name>webappname</web-resource-name>
    <url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
    <role-name>role1</role-name>
    <role-name>tomcat</role-name>
</auth-constraint>
</security-constraint>

<login-config>
<auth-method>BASIC</auth-method>
<realm-name>webappname</realm-name>
</login-config>

当有人按应用程序路径打开应用程序时,它可以正常工作(它要求输入用户名和密码,并且应用程序接受role1tomcat进行身份验证。

但问题是假设我以具有所有角色的用户tomcat登录,并且当显示管理器屏幕列出服务器上部署的所有应用程序时,如果我尝试打开{ {1}}然后再次要求输入用户名和密码。

我的问题是,如果我已将所有mywebapplication分配给用户roles,那么如果我以tomcat登录,为什么要求输入密码?有什么方法可以避免这种情况吗?

提前致谢。

1 个答案:

答案 0 :(得分:3)

<login-config>
<auth-method>BASIC</auth-method>
<realm-name>webappname</realm-name>
</login-config>

基本身份验证凭据在“安全领域”中进行组织。如果您为所有应用程序提供不同的Realm-Names,浏览器将提示每个应用程序。尝试为所有这些使用相同的名称(如果这是你想要的)。