第 6 章 EJB 应用程序安全性
6.1. 安全身份 复制链接链接已复制到粘贴板!
6.1.1. 关于 EJB 安全身份 复制链接链接已复制到粘贴板!
EJB 可以指定在其他组件上调用方法时要使用的身份。这是 EJB 安全身份,也称为调用身份。
默认情况下,EJB 使用自己的调用者身份。身份也可以设置为特定的安全角色。当您想构建分段安全模型时,可以利用特定的安全角色,例如,将一组组件仅限制对内部 EJB 的访问。
6.1.2. 设置 EJB 的安全身份 复制链接链接已复制到粘贴板!
EJB 的安全身份通过安全配置中的 <security-identity> 标签指定。如果没有 <security-identity> 标签,则默认使用 EJB 的调用者身份。
示例:将 Enterprise JavaBeans 的安全身份设置为与 Its Caller 相同
本例将 EJB 进行的方法调用的安全身份设置为与当前调用者的身份相同。如果没有指定 <security-identity> 元素声明,则此行为是默认设置。
<ejb-jar>
<enterprise-beans>
<session>
<ejb-name>ASessionBean</ejb-name>
...
<security-identity>
<use-caller-identity/>
</security-identity>
</session>
...
</enterprise-beans>
</ejb-jar>
示例:将 Enterprise JavaBeans 的安全身份设置为特定角色
要将安全身份设置为特定角色,请在 < 标签。
security-identity> 标签中使用 ><run-as > 和 <role-name
<ejb-jar>
<enterprise-beans>
<session>
<ejb-name>RunAsBean</ejb-name>
...
<security-identity>
<run-as>
<description>A private internal role</description>
<role-name>InternalRole</role-name>
</run-as>
</security-identity>
</session>
</enterprise-beans>
...
</ejb-jar>
默认情况下,在使用 <run-as> 时,会为传出调用分配一个名为 anonymous 的主体。要分配不同的主体,请使用 <run-as-principal>。
<session>
<ejb-name>RunAsBean</ejb-name>
<security-identity>
<run-as-principal>internal</run-as-principal>
</security-identity>
</session>
您还可以在 servlet 元素中使用 <run-as> 和 <run-as-principal> 元素。