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

tomcat-users.xml中角色标记的用途?,tomcat,configuration,tomcat7,Tomcat,Configuration,Tomcat7,在Tomcat 7 Tomcat-users.xml文件中,标记的作用是什么 对于Tomcat 7的XAMPP实例,我已经了解了如何配置Tomcat-users.xml文件,以允许我访问Tomcat Web应用程序管理器和Tomcat虚拟主机管理器。更具体地说,以下内容支持上述访问: <tomcat-users> <user username="uname" password="pword" roles="manager-gui,admin-gui"/> </t

在Tomcat 7 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片段中没有的是任何
标记。这就是我问题的关键:我一辈子都搞不清楚角色标签的作用是什么

为了学习如何配置访问权限,我阅读了大量的文档和论坛帖子,但它们似乎都是一个循环:一个人可以定义角色,但角色本身似乎并没有定义任何有用的东西(?)

例如,下面是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到底做了什么?特别是与我的工作用户定义相比,where manager gui和admin gui定义了启用Tomcat Web应用程序管理器Tomcat虚拟主机管理器访问的角色

干杯,谢谢,
赖利

SFO

据我所知,您(可以)定义角色:

  • 因为它给了您更多的灵活性,例如添加一个描述。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专家,所以我希望真正的专家能够完善这个答案。

Tomcat users.xml中使用
元素是可选的。Tomcat从
元素和用户的
角色=“…”
属性中命名的角色构建角色列表

使用
元素的好处是,您可以声明支持的角色的完整集合,并且可以包括描述角色的description属性

另一方面,
tomcat users.xml
也支持组,尽管默认情况下tomcat附带的示例中没有显示组。组是可以分配给用户的角色集

换一种方式问,鉴于role元素中rolename属性定义了tomcat,roles=tomcat到底做了什么?特别是与我的工作用户定义相比,where-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>

HTML管理器界面(适用于人类)
/html/*
管理器gui
访问HTML管理器页面所需的角色
管理器gui

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