我正在使用(JSP + Servlet)开发一个Web应用程序,并且我使用了Tomcat 7.0.33
as a web container
.
所以我的要求是tomcat中的每个应用程序都会password
像受保护的manager application
在tomcat中是受保护的。
到目前为止我已经做了以下工作:
服务器.xml
<Realm className="org.apache.catalina.realm.MemoryRealm" />
tomcat-用户.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>
当任何人通过应用程序路径打开应用程序时,它工作正常(它要求用户名和密码,并且应用程序接受其中之一)role1
or tomcat
用于身份验证)。
但问题是,假设我以用户身份登录tomcat
谁拥有所有角色,当显示经理屏幕时,其中列出了服务器上部署的所有应用程序,那么如果我尝试打开mywebapplication
然后它再次要求输入用户名和密码。
我的问题是,如果我已经分配了所有roles
给用户tomcat
那么为什么如果我登录的话它会要求输入密码tomcat
?有什么办法可以避免这种情况吗?
提前致谢。