搜索

6.3. 注册供应商实现

download PDF

注册供应商实施的方法有两种。在大多数情况下,最简单的方法是使用 Red Hat Single Sign-On 部署器方法,因为这可为您处理多个依赖项。它还支持热部署和重新部署。

另一种方法是将 作为模块部署。

如果您要创建自定义 SPI,则需要将其部署为模块,否则我们推荐使用 Red Hat Single Sign-On deployer 方法。

6.3.1. 使用 Red Hat Single Sign-On deployer

如果您将供应商 jar 复制到 Red Hat Single Sign-On standalone/deployments/ 目录中,则您的供应商将自动部署。热部署也可以正常工作。此外,您的供应商 jar 与在 JBoss EAP 环境中部署的其他组件类似,它们可以使用 jboss-deployment-structure.xml 文件等功能。您可以通过此文件来设置对其他组件的依赖项,并加载第三方 jars 和模块。

供应商 jar 也可以包含在其他可部署单元中,如 EAR 和 WAR。使用 EAR 进行部署实际上使得使用第三方 jar 非常容易,因为您可以将这些库放在 EAR 的 lib/ 目录中。

6.3.2. 使用模块注册供应商

流程

  1. 使用 jboss-cli 脚本或手动创建文件夹创建一个模块。

    1. 例如,要使用 jboss-cli 脚本添加事件监听程序 sysout 示例供应商,请执行:

      KEYCLOAK_HOME/bin/jboss-cli.sh --command="module add --name=org.acme.provider --resources=target/provider.jar --dependencies=org.keycloak.keycloak-core,org.keycloak.keycloak-server-spi"
    2. 或者,您可以在 KEYCLOAK_HOME/modules 中手动创建模块,并添加您的 jar 和 module.xml

      例如,创建 KEYCLOAK_HOME/modules/org/acme/provider/main 文件夹。然后,将 provider.jar 复制到此文件夹,并使用以下内容创建 module.xml

      <?xml version="1.0" encoding="UTF-8"?>
      <module xmlns="urn:jboss:module:1.3" name="org.acme.provider">
          <resources>
              <resource-root path="provider.jar"/>
          </resources>
          <dependencies>
              <module name="org.keycloak.keycloak-core"/>
              <module name="org.keycloak.keycloak-server-spi"/>
          </dependencies>
      </module>
  2. 使用 Red Hat Single Sign-On 注册此模块,方法是编辑 standalone.xmlstandalone-ha.xmldomain.xml 的 keycloak-server 子系统部分,并将它添加到提供程序:

    <subsystem xmlns="urn:jboss:domain:keycloak-server:1.2">
        <web-context>auth</web-context>
        <providers>
            <provider>module:org.keycloak.examples.event-sysout</provider>
        </providers>
        ...

6.3.3. 禁用供应商

您可以通过在 standalone.xmlstandalone-ha.xmldomain.xml 中将 provider 的 enabled 属性设置为 false 来禁用供应商。例如,禁用 Infinispan 用户缓存提供程序添加:

<spi name="userCache">
    <provider name="infinispan" enabled="false"/>
</spi>
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.