5

我正在使用(JSP + Servlet)开发一个 Web 应用程序,并且我已将其Tomcat 7.0.33用作web container.

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

到目前为止,我已经完成了以下工作:

服务器.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拥有所有角色的用户身份登录,并且当显示管理器屏幕时列出了服务器上部署的所有应用程序,那么如果我尝试打开mywebapplication它,它会再次询问用户名和密码。

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

提前致谢。

4

1 回答 1

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

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

于 2013-03-25T07:26:08.593 回答