搜索

3.2. 使用虚拟安全域保护 Jakarta Enterprise Beans 应用程序

download PDF

您可以使用 elytron-oidc-client 子系统创建的虚拟安全域来保护 Jakarta Enterprise Beans,当 Jakarta Enterprise Beans 都位于与调用它的 Servlet 的同一部署中时,以及它们位于不同部署中时。

如果 Jakarta Enterprise Beans 位于与 Servlet 调用的同一部署中,则不需要将安全身份从 Servlet 流传输到 Jakarta Enterprise Beans。

按照以下步骤将安全身份从 Servlet 流传输到位于不同部署的 Jakarta Enterprise Beans。

先决条件

  • 您已保护了使用 OpenID Connect (OIDC)供应商调用 Jakarta Enterprise Beans 的应用程序。
  • 您已创建了 Jakarta Enterprise Beans 来保护。

流程

  1. 创建一个 virtual-security-domain 资源引用 WAR,其中包含通过 OIDC 保护的 Servlet 或包含使用 OIDC 保护的子部署的 EAR。

    语法

    /subsystem=elytron/virtual-security-domain=<deployment_name>:add()

    Example

    /subsystem=elytron/virtual-security-domain=simple-ear-example.ear:add()

  2. 在引用虚拟安全域资源的 Jakarta Enterprise Beans 应用中添加 org.jboss.ejb3.annotation.SecurityDomain 注解,以保护应用。

    语法

    @SecurityDomain("<deployment_name>")

    Example

    ...
    @SecurityDomain("simple-ear-example.ear")
    @Remote(RemoteHello.class)
    @Stateless
    public class RemoteHelloBean implements RemoteHello {
    
      @Resource
      private SessionContext context;
    
      @Override
      public String whoAmI() {
        return context.getCallerPrincipal().getName();
      }
    
    }

    如果您从带有 OIDC 的 Servlet 安全调用此 Jakarta Enterprise Beans,则 whoAmI () 返回的主体将与从 OIDC 供应商获取的 Servlet 的主体匹配。

  3. 部署 Jakarta Enterprise Beans。

    Example

    $ mvn wildfly:deploy

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.