6.5. Elytron 与 ejb 子系统集成
从 JBoss EAP 7.1 开始,可以映射部署,使其安全性由 elytron 子系统来处理。如果部署引用映射的安全域,其安全性将由 Elytron 处理,否则其安全性将由旧版安全子系统来处理。此映射在 ejb 子系统中定义。
在 ejb 子系统内,从部署中引用的安全域名创建映射至引用的 Elytron security-domain。当为部署中的 Bean 配置映射的安全域名时,这表示 Elytron 应处理安全性。设置新的 Jakarta Enterprise Beans 安全拦截器而不是现有的拦截器。
新的 Jakarta Enterprise Beans 安全拦截器利用与调用关联的 Elytron SecurityDomain 获取当前的 SecurityIdentity 并执行以下任务:
-
建立运行主体。 -
为
run-as主体创建任何额外角色。 -
创建
run-as角色。 - 做出授权决策。
JBoss EAP 7.1 在 ejb 子系统 application-security-domains 中引入了新的管理资源。application-security-domains 元素包含应用安全域,应映射到 Elytron 安全域。
| 属性 | 描述 |
|---|---|
|
| 此属性引用部署中指定的安全域名称。 |
|
| 此属性是对应当使用的 Elytron 安全域的引用。 |
|
| 此属性启用使用 Jakarta 授权的授权。 |
|
| 这是一个运行时属性,它会列出所有当前引用 ASD 的部署。 |
|
|
当未定义传入的以
如果设置为
如果设置为 此属性为可选,默认值为 'true'。 |
您可以使用管理控制台或管理 CLI,在 ejb 子系统中配置 application-security-domain。如需更多信息,请参阅以下主题:
6.5.1. 使用管理控制台配置应用程序安全域 复制链接链接已复制到粘贴板!
- 访问管理控制台。如需更多信息,请参阅 JBoss EAP 配置指南 中的 管理控制台。
-
导航到 Configuration
Subsystems EJB,然后点 View。 - 选择 Security Domain 选项卡,并根据需要配置应用程序安全域。
6.5.2. 使用管理 CLI 配置应用安全域 复制链接链接已复制到粘贴板!
在以下示例中,MyAppSecurity 是部署中引用的安全域,App Domain 是 elytron 子系统中配置的 Elytron 安全域。
/subsystem=ejb3/application-security-domain=MyAppSecurity:add(security-domain=ApplicationDomain)
/subsystem=ejb3/application-security-domain=MyAppSecurity:add(security-domain=ApplicationDomain)
由于此命令,以下 XML 添加到服务器配置文件的 ejb 子系统中:
<application-security-domains>
<application-security-domain name="MyAppSecurity" security-domain="ApplicationDomain"/>
</application-security-domains>
<application-security-domains>
<application-security-domain name="MyAppSecurity" security-domain="ApplicationDomain"/>
</application-security-domains>
有关使用 Elytron 处理安全性的 Jakarta 企业 Beans 的简单工作示例,请参见 JBoss EAP 附带的 ejb-security 快速入门。