【问题标题】:Purpose of roles tags in tomcat-users.xml?tomcat-users.xml 中角色标签的用途?
【发布时间】:2013-02-19 01:13:40
【问题描述】:

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

对于 Tomcat 7 的 XAMPP 实例,我想出了如何配置我的 tomcat-users.xml 文件以允许我访问 Tomcat Web 应用程序管理器和 Tomcat 虚拟主机管理器。更具体地说,以下启用上述访问:

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

请注意,这个成功的 XML sn-p 中没有任何 &lt;role /&gt; 标记。这就是我的问题的症结所在:我一生都无法弄清楚 role 标签的目的是什么。

在学习如何配置访问权限的过程中,我阅读了大量文档和论坛帖子,但它们似乎都在循环:一个可以定义角色,然后角色在他们自己看来并没有真正定义任何有用的东西(?)

例如,这是 tomcat-users.xml 文件和许多论坛帖子“解释”角色使用中反复出现的插图。

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

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

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

干杯,谢谢,
莱利
旧金山机场

【问题讨论】:

  • 真的没关系。这个文件只是一个玩具。您应该使用 LDAP 或数据库来保存重要的用户和角色,以及自定义领域。

标签: tomcat configuration tomcat7


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    据我了解,您(可以)定义角色:

    • 因为它为您提供了更多的灵活性,例如添加描述和实例。 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】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2019-05-01
        • 1970-01-01
        • 2013-05-07
        • 2011-06-04
        • 1970-01-01
        • 2015-01-24
        • 2013-10-09
        • 2011-05-09
        • 1970-01-01
        相关资源
        最近更新 更多