2013-03-25 57 views
4

我正在使用(JSP + Servlet)開發Web應用程序,並且我使用Tomcat 7.0.33作爲web container在tomcat中受密碼保護的應用程序

所以我的要求是,在tomcat中的每個應用程序將被保護爲password像在受保護。

到目前爲止,我已經做了以下內容:

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?有什麼辦法可以避免這種情況?

在此先感謝。

回答

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

基本認證憑證在「安全領域」中組織。如果您爲所有應用程序提供不同的領域名稱,則瀏覽器會提示每個領域。嘗試使用相同的名字爲他們所有(如果這是你想要的)。

+0

謝謝,它的工作 – Bhushan 2013-03-25 09:25:02