2012-06-06 24 views
0

我在互聯網上找不到任何有關這方面的信息,所以希望這裏的專家能夠幫助解答我的問題。Tomcat Web應用程序管理器 - 是否可以限制每個用戶角色可以看到的內容?

我已經設置了Tomcat Web應用程序管理器我的測試服務器上,創造了一些角色/用戶tomcat-users.xml如下:

<role rolename="manager"/> 
<user username="admin" password="admin" roles="manager"/> 
<user username="user1" password="password" roles="manager"/> 

admin應該對Web應用程序管理器中的全部權利,而user1(以及可能的後續用戶)適用於已被授予上傳/部署WAR文件權限的用戶。

現在它們具有相同的角色,顯然他們在登錄時看到相同的用戶界面,但我希望user1只能看到部署/上載選項 - 對WebApp Manager的訪問實質上受限。

是否有可能實現這樣的目標?如果是,如何?如果不是,那麼什麼是可以接受的妥協?

回答

1

如果找不到這個,你看起來並不難。這是Tomcat用戶指南中的「管理」部分:

http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html#Configuring_Manager_Application_Access

使用標準用戶存取權限的角色,你不能做你正在嘗試做的。幸運的是,沒有什麼能阻止你發明一些。

假設您想爲deployundeploy設置不同的角色。只需將它們添加到tomcat-users.xml這樣的:

<role rolename="deploy"/> 
<role rolename="undeploy"/> 

現在,修改manager web應用程序的web.xml並添加一些auth-constraints,將允許這些新角色訪問某些特定功能:

<security-constraint> 
    <web-resource-collection> 
    <web-resource-name>Manual Deployment</web-resource-name> 
    <url-pattern>/html/deploy</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
    <role-name>manager-gui</role-name> 
    <role-name>deploy</role-name> 
    </auth-constraint> 
</security-constraint> 

<security-constraint> 
    <web-resource-collection> 
    <web-resource-name>Manual Deployment</web-resource-name> 
    <url-pattern>/html/undeploy</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
    <role-name>manager-gui</role-name> 
    <role-name>undeploy</role-name> 
    </auth-constraint> 
</security-constraint> 

請注意,您也將不得不修改<web-resource-collection>的,以便具有任何適當角色的用戶(例如那些只具有「部署」角色的用戶)可以訪問GUI本身,以便獲得上述配置的功能。

+0

看起來不錯,我會試試看看我得到了什麼。謝謝! – ohseekay

相關問題