一尘不染

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

tomcat

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

因此,我的要求是要passwordmanager application保护tomcat中一样保护tomcat中的每个应用程序。

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

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

我的问题是,如果我将所有roles权限都分配给了用户,tomcat那么如果我以身份登录,为什么它要求输入密码tomcat?有什么办法可以避免这种情况?

提前致谢。


阅读 228

收藏
2020-06-16

共1个答案

一尘不染

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

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

2020-06-16