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>