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

© 2025 Red Hat