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

Bhu*_*han 5 java deployment tomcat web.xml

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

所以我的要求是tomcat中的每个应用程序都会受到password保护,就像manager applicationtomcat受到保护一样.

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

server.xml中

<Realm className="org.apache.catalina.realm.MemoryRealm" />
Run Code Online (Sandbox Code Playgroud)

的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>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

当任何人通过应用程序路径打开应用程序时它工作正常(它要求输入用户名和密码,并且应用程序接受role1或者tomcat用于身份验证).

但问题是假设我以tomcat具有所有角色的用户身份登录,并且当显示管理器屏幕列出服务器上部署的所有应用程序时,如果我尝试打开,mywebapplication则再次询问用户名和密码.

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

提前致谢.

Thi*_*ilo 3

<login-config>
<auth-method>BASIC</auth-method>
<realm-name>webappname</realm-name>
</login-config>
Run Code Online (Sandbox Code Playgroud)

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