検索

5.2. 利用可能なプロバイダーの利用

download PDF

プロバイダーの実装では、Red Hat build of Keycloak で利用可能な他のプロバイダーを使用できます。既存のプロバイダーは通常、KeycloakSession を使用して取得できます。これは、セクション SPI の実装 で説明されているように、プロバイダーで利用できます。

Red Hat build of Keycloak には 2 つのプロバイダータイプがあります。

  • 単一実装のプロバイダータイプ - Red Hat build of Keycloak ランタイムで、1 つのプロバイダータイプのみアクティブに実装できます。

    たとえば HostnameProvider は、Red Hat build of Keycloak で使用されるホスト名を指定し、そのホスト名が Red Hat build of Keycloak サーバー全体で共有されます。そのため、Red Hat build of Keycloak サーバーでアクティブになるこのプロバイダーの実装は 1 つだけです。サーバーランタイムに複数のプロバイダー実装が利用できる場合は、それらのいずれかをデフォルトとして指定する必要があります。

たとえば、以下のようなものです。

bin/kc.[sh|bat] build --spi-hostname-provider=default

default-provider の値として使用される default は、特定のプロバイダーファクトリー実装の ProviderFactory.getId() が返す ID と一致する必要があります。コードでは、keycloakSession.getProvider(HostnameProvider.class) のようにプロバイダーを取得します。

  • 複数実装のプロバイダータイプ - Red Hat build of Keycloak ランタイムで複数の実装を利用し、一緒に動作させることができるプロバイダータイプです。

    たとえば、EventListener プロバイダーは、利用可能で登録された複数の実装を持つことができます。これは、特定のイベントがすべてのリスナー (jboss-logging、sysout など) に送信できることを意味します。コードでは、たとえば session.getProvider(EventListener.class, "jboss-logging") のように、プロバイダーの指定したインスタンスを取得することができます。前述のように、このプロバイダータイプのインスタンスは複数存在する可能性があるため、第 2 引数にプロバイダーの provider_id を指定する必要があります。

    プロバイダー ID は、特定のプロバイダーファクトリー実装の ProviderFactory.getId() が返す ID と一致する必要があります。プロバイダーの種類によっては、第 2 引数に ComponentModel を指定することで取得できるものもありますし、KeycloakSessionFactory を指定しなければならないものもあります (Authenticator など)。将来的に非推奨となる可能性があるため、この方法で独自のプロバイダーを実装することは推奨できません。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.