12

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

对于 Tomcat 7 的 XAMPP 实例,我已经弄清楚如何配置我的tomcat-users.xml文件以允许我访问Tomcat Web Application ManagerTomcat 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元素定义了一个等于tomcat的rolename属性,然后user元素包含一个将用户角色定义为tomcat的角色属性。重点是什么?

以另一种方式问,鉴于在角色元素中,角色名称属性定义了tomcat角色= tomcat究竟做了什么?特别是与我的工作用户定义相比其中manager-guiadmin-gui定义了启用Tomcat Web 应用程序管理器Tomcat 虚拟主机管理器访问的角色。

干杯并感谢,
莱利
SFO

4

3 回答 3

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 专家,所以我希望真正的专家可以完善这个答案。

于 2013-11-26T15:57:33.227 回答
3

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

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

顺便说一句,tomcat-users.xml它也支持组,尽管在默认情况下与 Tomcat 一起提供的示例中没有显示它们。组是一组角色,然后可以分配给用户。

于 2013-11-27T10:13:25.880 回答
2

换一种方式问,鉴于在角色元素中,角色名称属性定义了tomcat,角色=tomcat 究竟做了什么?特别是与我的工作用户定义相比,manager-gui 和 admin-gui 定义了启用 Tomcat Web 应用程序管理器和 Tomcat 虚拟主机管理器访问的角色。

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

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

<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>
于 2015-08-07T07:02:17.860 回答