6.4. 远程访问 Jakarta Enterprise Beans


向客户端添加安全以远程调用 Jakarta 企业 Bean 的一种方式是使用安全域。安全域是用户名/密码对和用户名/角色对的简单数据库。术语也用于 Web 容器的上下文,其含义略有不同。

要针对 Jakarta Enterprise Beans 验证安全域中存在的特定用户名/密码对,请按照以下步骤执行:

  • 将新的安全域添加到域控制器或单机服务器。
  • 配置 wildfly-config.xml 文件,该文件位于应用程序的类路径中,如下例所示:

    <configuration>
       <authentication-client xmlns="urn:elytron:client:1.2">
          <authentication-rules>
             <rule use-configuration="default" />
          </authentication-rules>
          <authentication-configurations>
             <configuration name="default">
                <sasl-mechanism-selector selector="DIGEST-MD5" />
                <set-user-name name="admin" />
                <credentials>
                   <clear-password password="password123!" />
                </credentials>
             </configuration>
          </authentication-configurations>
       </authentication-client>
       <jboss-ejb-client xmlns="urn:jboss:wildfly-client-ejb:3.0">
          <connections>
             <connection uri="remote+http://127.0.0.1:8080" />
          </connections>
       </jboss-ejb-client>
    </configuration>
    Copy to Clipboard Toggle word wrap
  • 在使用新安全域的域或单机服务器上创建自定义远程连接器。
  • 将 Jakarta Enterprise Beans 部署到服务器组,该组配置为将配置集与自定义远程连接器搭配使用,如果您不使用受管域,则部署到您的单机服务器。

6.4.2. 添加新安全域

  1. 运行管理 CLI:

    执行 jboss-cli.shjboss-cli.bat 脚本并连接到服务器。

  2. 创建新的安全域本身:

    运行以下命令,在域控制器或单机服务器上创建一个名为 MyDomainRealm 的新安全域:

    对于域实例,使用以下命令:

    /host=master/core-service=management/security-realm=MyDomainRealm:add()
    Copy to Clipboard Toggle word wrap

    对于独立实例,使用以下命令:

    /core-service=management/security-realm=MyDomainRealm:add()
    Copy to Clipboard Toggle word wrap
  3. 创建名为 myfile.properties 的属性文件:

    对于单机实例,创建一个 EAP_HOME/standalone/configuration/myfile.properties 文件,并为域实例创建 EAP_HOME/domain/configuration/myfile.properties 文件。这些文件需要具有文件所有者的读取和写入权限。

    $ chmod 600 myfile.properties
    Copy to Clipboard Toggle word wrap
  4. 创建对存储有关新角色信息的属性文件的引用:

    运行以下命令,以创建指向 myfile.properties 文件的指针,该文件将包含与新角色相关的属性:

    注意

    属性文件不会由附带的 add-user.shadd-user.bat 脚本创建。它必须在外部创建。

    对于域实例,使用以下命令:

    /host=master/core-service=management/security-realm=MyDomainRealm/authentication=properties:add(path=myfile.properties)
    Copy to Clipboard Toggle word wrap

    对于独立实例,使用以下命令:

    /core-service=management/security-realm=MyDomainRealm/authentication=properties:add(path=myfile.properties)
    Copy to Clipboard Toggle word wrap

您的新安全域已创建好。将用户和角色添加到这一新域时,信息将存储在独立于默认安全域的文件中。您可以使用自己的应用程序或程序来管理此新文件。

注意

在使用 add-user.sh 脚本将用户添加到 application-users.properties 以外的非默认文件时,您必须向其传递参数 --user-properties myfile.properties,否则它将尝试使用 application-users.properties

6.4.3. 将用户添加到安全域

  1. 运行 add-user 脚本。打开一个终端,并将目录更改到 EAP_HOME/bin/ 目录。如果您在红帽企业 Linux 或任何其他类 UNIX 操作系统上,请运行 add-user.sh。如果您在 Windows Server 上,请运行 add-user.bat
  2. 选择是否添加管理用户或应用程序用户。对于这个过程,键入 b 来添加应用程序用户。
  3. 选择要添加用户的域。默认情况下,唯一可用的域是 ApplicationRealm。如果您添加了自定义域,您可以改为将用户添加到该域。
  4. 出现提示时,键入用户名、密码和角色。出现提示时,键入所需的用户名、密码和可选角色。通过键入 yes 或键入 no 以取消更改 验证您的选择。更改写入到安全域的每个属性文件中。

6.4.4. 安全域和安全域之间的关系

重要

若要通过安全域保护 Jakarta Enterprise Beans,他们必须使用配置为从安全域检索用户凭据的安全域。这意味着域需要包含 Remoting 和 RealmDirect 登录模块。通过 @SecurityDomain 注释来分配安全域,该注释可应用于 Jakarta Enterprise Beans。

其他 安全域从底层安全域检索用户和密码数据。如果 Jakarta Enterprise Beans 没有 @SecurityDomain 注释,但 Jakarta Enterprise Beans 包含任何其他安全相关注释,则此安全域是默认域。

底层 http-remoting 连接器 (供客户端用于建立连接)决定了使用哪个安全域。有关 http-remoting 连接器 的更多信息,请参阅 JBoss EAP 配置指南中 的关于删除 子系统 的更多信息。

可以通过这种方式更改默认连接器的安全域:

/subsystem=remoting/http-connector=http-remoting-connector:write-attribute(name=security-realm,value=MyDomainRealm)
Copy to Clipboard Toggle word wrap

默认情况下,EJB2 和 Jakarta Enterprise Beans3 Beans3 Beans3 Bean 的远程方法调用(RMI)的网络流量不会被加密。在需要加密的实例中,可以使用安全套接字层(SSL),以便加密客户端和服务器之间的连接。使用 SSL 还增加了允许网络流量遍历某些防火墙的好处,具体取决于防火墙配置。

警告

红帽建议显式禁用 SSLv2、SSLv3 和 TLSv1.0,以便在所有受影响的软件包中明确禁用 TLSv1.1 或 TLSv1.2。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat