tomcat-users.xml中角色标记的用途?

时间:2013-02-19 01:13:40

标签: tomcat configuration tomcat7

在Tomcat 7 tomcat-users.xml 文件中,<role />标记的用途是什么?

对于Tomcat 7的XAMPP实例,我已经找到了如何配置 tomcat-users.xml 文件以允许我访问 Tomcat Web应用程序管理器 Tomcat Virtual Host Manager 。更具体地说,以下内容使上述访问成为可能:

<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>

好的,所以在这个“解释”中, role 元素定义 rolename 属性等于 tomcat ,然后 user < / em>元素包含 roles 属性,该属性将用户的角色定义为 tomcat 。有什么意义?

问另一种方法,假设在 role 元素中, rolename attrbute定义 tomcat roles = tomcat 到底是什么?特别是与 的工作用户定义相比较,其中 manager-gui admin-gui 定义了启用 Tomcat Web应用程序管理器的角色 AND Tomcat Virtual Host Manager 访问。

干杯&amp;谢谢,
莱利
SFO

3 个答案:

答案 0 :(得分: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专家,所以我希望真正的专家可以改进这个答案。

答案 1 :(得分:3)

<role .../>tomcat-users.xml元素的使用是可选的。 Tomcat根据<role .../>元素和用户roles="..."属性中指定的角色构建角色列表。

使用<role .../>元素的好处是您可以声明完整的受支持角色集,并且可以包含描述角色的描述属性。

除此之外,tomcat-users.xml也支持组,尽管它们未在默认情况下随Tomcat发布的示例中显示。组是可以分配给用户的角色集。

答案 2 :(得分:2)

  

问另一种方式,鉴于在角色元素中,rolename attrbute定义了tomcat,roles = tomcat做了什么,究竟是什么?特别是与我的工作用户定义相比较,manager-gui和admin-gui定义了支持Tomcat Web应用程序管理器和Tomcat Virtual Host Manager访问的角色。

角色/安全性约束在应用程序描述符 web.xml 中定义。

例如, manager-gui 在tomcat manager 应用程序中定义:

-Xms<size>        set initial Java heap size
-Xmx<size>        set maximum Java heap size
-Xss<size>        set java thread stack size