2013-02-19 57 views
12

在Tomcat 7 的tomcat-users.xml中文件,什麼目的由<role />代碼投放?tomcat-users.xml中角色標籤的用途?

對於Tomcat 7的XAMPP情況下,我已經找到了如何配置我的的tomcat-users.xml中文件,允許我來訪問的Tomcat Web應用程序管理器Tomcat的虛擬主機管理。更具體地講,下面讓上述訪問:

<tomcat-users> 
    <user username="uname" password="pword" roles="manager-gui,admin-gui"/> 
</tomcat-users> 

注意什麼XML的這次成功的片段不是任何<role />標籤。這是我的問題的癥結所在:我不能爲我的生命搞清楚什麼目的角色標籤是爲了服務。

在追求學習如何配置訪問的,我讀過大量的文檔和論壇帖子的,但他們似乎都在走了一圈:可以定義角色,但隨後角色真的不似乎自己定義了任何有用的東西(?)

例如,下面是在tomcat-users.xml文件中以及在衆多論壇帖子中「解釋」角色使用的重複圖。

<tomcat-users> 
    <role rolename="tomcat"/> 
    <user username="uname" password="pword" roles="tomcat"/> 
</tomcat-users> 

好了,所以在這個「解釋」一作用元素定義角色名屬性等於tomcat的,那麼用戶元素包含角色屬性,它定義爲用戶的角色tomcat的。重點是什麼?

問另一種方式,因爲在角色元素角色名 attrbute定義tomcat的角色= tomcat的做什麼,到底是什麼?特別是相對於我的工作定義用戶其中經理桂管理貴定義角色,使的Tomcat Web應用程序管理器Tomcat的虛擬主機管理訪問。

乾杯&感謝,
萊利
SFO

+1

這其實並不重要:

例如,經理桂在tomcat的經理應用程序定義。這個文件只是一個玩具。您應該使用LDAP或數據庫來保存嚴重的用戶和角色以及自定義Realm。 – EJP 2014-01-12 06:18:38

回答

3

從我瞭解你(能)定義角色:

  • ,因爲它給你更多的靈活性,例如添加說明的用於實例。 GUI可以使用這些信息。

    <role rolename="customer" description="Customer of Java WebService"/> 
    
  • 可以重新映射或角色,後來在一個特定的servlet組

    <security-role-ref> 
        <role-name>cust</role-name> 
        <role-link>bankCustomer</role-link> 
    </security-role-ref> 
    

請記住,我不是一個Tomcat的專家,所以我希望真正的專家可以細化這個答案。

3

使用該<role .../>元件在tomcat-users.xml是可選的。 Tomcat的構建從<role .../>元素和從用戶的roles="..."屬性命名角色的角色列表。

使用<role .../>元素的好處是,你可以聲明一套完整的支持角色,您可以包括描述角色說明屬性。

順便說一句,tomcat-users.xml還支持,儘管它們沒有在實施例中所示基團一般通過默認使用Tomcat。組是一組角色,然後可以分配給用戶。

2

問另一種方式,考慮到角色元素中的角色名稱attrbute定義了tomcat,角色= tomcat確實做了什麼?特別是與我的工作用戶定義相比,manager-gui和admin-gui定義了啓用Tomcat Web應用程序管理器和Tomcat虛擬主機管理器訪問的角色。

角色/安全約束在應用描述符web.xml中定義。

<security-constraint> 
<web-resource-collection> 
    <web-resource-name>HTML Manager interface (for humans)</web-resource-name> 
    <url-pattern>/html/*</url-pattern> 
</web-resource-collection> 
<auth-constraint> 
    <role-name>manager-gui</role-name> 
</auth-constraint> 
</security-constraint> 
<security-role> 
<description> 
    The role that is required to access the HTML Manager pages 
</description> 
<role-name>manager-gui</role-name> 
</security-role>