6.2. 使用可用供应商


在提供程序实施中,您可以使用 Red Hat Single Sign-On 中提供的其他提供程序。现有提供程序通常使用 KeycloakSession 来检索,该提供程序可供您的供应商使用,如 实施 SPI 一节中所述

Red Hat Single Sign-On 有两个供应商类型:

  • 实施供应商类型 - 红帽单点登录 运行时只能实施特定提供程序类型的单一主动实施。

    例如 HostnameProvider 指定 Red Hat Single Sign-On 使用的主机名,并可为整个 Red Hat Single Sign-On 服务器共享该主机名。因此,这个提供程序对于 Red Hat Single Sign-On 服务器只能有一个有效实施。如果有多个提供程序实施可供服务器运行时使用,则需要将其中一个提供程序实施指定为默认的实施。

例如:

<spi name="hostname">
    <default-provider>default</default-provider>
    ...
</spi>
Copy to Clipboard Toggle word wrap

默认值用作 default -provider 的值,必须与特定 provider factory.getId ()的 ProviderFactory.getId () 返回的 ID 匹配。在代码中,您可以获取提供程序,如 keycloakSession.getProvider (HostnameProvider.class)

  • 多种实施供应商类型 - Those 是供应商类型,允许多个实施可用并在 Red Hat Single Sign-On 运行时中协同工作。

    例如,EventListener 供应商允许有多个可用的实施并注册,这意味着特定的事件可以发送到所有监听程序(jboss-logging、sysout 等)。在代码中,您可以获取提供程序的指定实例,如 session.getProvider (EventListener.class, "jboss-logging")。您需要指定提供程序的 provider_id 作为第二个参数,因为这里可能会有多个此提供程序类型的实例,如下所述。

    提供程序 ID 必须与特定供应商工厂实施的 ProviderFactory.getId () 返回的 ID。某些提供程序类型可以通过使用 ComponentModel 作为第二个参数来检索,一些(如 Authenticator)甚至需要通过 KeycloakSessionFactory 的使用来检索。不建议以这种方式实施自己的供应商,因为将来可能会被弃用。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部