第 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>
Copy to Clipboard Toggle word wrap

示例:将 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>
Copy to Clipboard Toggle word wrap

默认情况下,在使用 <run-as> 时,会为传出调用分配一个名为 anonymous 的主体。要分配不同的主体,请使用 <run-as-principal>

<session>
    <ejb-name>RunAsBean</ejb-name>
    <security-identity>
        <run-as-principal>internal</run-as-principal>
    </security-identity>
</session>
Copy to Clipboard Toggle word wrap
注意

您还可以在 servlet 元素中使用 <run-as><run-as-principal> 元素。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat