6.3. プロバイダー実装の登録
プロバイダー実装を登録する方法は 2 つあります。ほとんどの場合、最も単純な方法では、Red Hat Single Sign-On デプロイヤーアプローチを使用します。これは、多数の依存関係を自動的に処理します。また、ホットデプロイメントも再デプロイメントもサポートします。
別の方法として、モジュールとしてデプロイできます。
カスタム SPI を作成する場合は、これをモジュールとしてデプロイする必要があります。そうでない場合は、Red Hat Single Sign-On デプロイヤーアプローチの使用を推奨します。
6.3.1. Red Hat Single Sign-On デプロイヤーの使用 リンクのコピーリンクがクリップボードにコピーされました!
プロバイダー jar を Red Hat Single Sign-On の standalone/deployments/ ディレクトリーにコピーする場合は、プロバイダーが自動的にデプロイされます。ホットデプロイメントも機能します。さらに、プロバイダーの jar は、jboss-deployment-structure.xml ファイルなどの機能を使用できるように、JBoss EAP 環境にデプロイされた他のコンポーネントと同じように機能します。このファイルでは、他のコンポーネントの依存関係を設定し、サードパーティーの jar およびモジュールを読み込むことができます。
プロバイダー jar は EAR や WAR などの他のデプロイ可能なユニットにも含めることができます。これらのライブラリーを EAR の lib/ ディレクトリーに配置できるため、EAR をデプロイすると、サードパーティーの jar を使用するのが非常に簡単になります。
6.3.2. モジュールを使用したプロバイダーの登録 リンクのコピーリンクがクリップボードにコピーされました!
手順
jboss-cli スクリプトを使用してモジュールを作成するか、手動でフォルダーを作成します。
たとえば、
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"
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"Copy to Clipboard Copied! Toggle word wrap Toggle overflow または、
KEYCLOAK_HOME/modules内にモジュールを手動で作成し、jar とmodule.xmlを追加することもできます。たとえば、
KEYCLOAK_HOME/modules/org/acme/provider/mainフォルダーを作成します。次にprovider.jarをこのディレクトリーにコピーし、以下の内容でmodule.xmlを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
このモジュールを Red Hat Single Sign-On に登録するには、
standalone.xml、standalone-ha.xml、またはdomain.xmlの keycloak-server サブシステムセクションを編集してプロバイダーに追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.3.3. プロバイダーの無効化 リンクのコピーリンクがクリップボードにコピーされました!
プロバイダーを無効にするには、standalone.xml、standalone-ha.xml、または domain.xml でプロバイダーの enabled 属性を false に設定します。たとえば、Infinispan ユーザーキャッシュプロバイダーを無効にするには、以下を追加します。
<spi name="userCache">
<provider name="infinispan" enabled="false"/>
</spi>
<spi name="userCache">
<provider name="infinispan" enabled="false"/>
</spi>