jboss-web.xml 中的 <principal-name> 在哪里定义

where is <principal-name> from jboss-web.xml defined

我们使用 JBoss 并且在我们的应用程序中有一个 jboss-web.xml 配置文件。它包含条目,例如

<security-role>
    <role-name>anz_beleg_detail</role-name>
    <principal-name>APP-UKVLEI_AENDERUNG</principal-name>
    <principal-name>APP-UKVLEI_AUSKUNFT</principal-name>
    <principal-name>APP-UKVLEI_EINGABE</principal-name>
    <principal-name>APP-UKVLEI_FREIGABE</principal-name>
</security-role>

principal-name 到底是什么?它在哪里定义?在哪里指定登录用户的主体名称?

在 JBoss Application Server v5.0 及更高版本中,可以将在安全域级别派生的角色映射到部署中包含的其他角色(例如在 EAR 级别)。

地图提供者: org.jboss.security.mapping.providers.DeploymentRolesMappingProvider

配置:

<application-policy name="some-sec-domain">  
<authentication>  
...  
</authentication>  
<mapping>  
   <mapping-module code="org.jboss.security.mapping.providers.DeploymentRolesMappingProvider"  
                   type="role"/>  
</mapping>  
...  
</application-policy>  

现在可以有部署级别的角色映射了,如下:

在jboss.xml或jboss-web.xml中,你可以有这样的东西:

 <assembly-descriptor>
    ...
    <security-role>
      <role-name>Support</role-name>
      <principal-name>Mark</principal-name> 
      <principal-name>Tom</principal-name>
    </security-role>
    ...
  </assembly-descriptor>

在正常情况下,这被视为向 here

中所述的 RunAsIdentity 添加角色

如果您使用 DeploymentRolesMappingProvider 在您的安全域配置中包含此映射配置元素,您实际上是在强制将角色的额外解释添加到此特定部署的特定主体(war,ear, ejb-jar 等)。

参考guide