検索

5.3. プロバイダー実装の登録

download PDF

プロバイダーは、JAR ファイルを providers ディレクトリーにコピーするだけでサーバーに登録されます。

Keycloak が提供していない別の依存関係が追加で必要な場合は、それを providers ディレクトリーにコピーします。

新しいプロバイダーまたは依存関係を登録した後、Keycloak を、最適化なしの start コマンドまたは kc.[sh|bat] build コマンドで再構築する必要があります。

注記

プロバイダーの JAR は、分離されたクラスローダーにロードされないため、組み込みのリソースまたはクラスと、競合するリソースまたはクラスをプロバイダーの JAR に含めないでください。特に、application.properties ファイルを含めるか、commons-lang3 依存関係をオーバーライドすると、プロバイダーの JAR が削除された場合に自動ビルドが失敗します。競合するクラスが含まれている場合、サーバーの起動ログにパッケージ分離の警告が表示されることがあります。すべての組み込みの lib jar がパッケージ分離の警告ロジックによってチェックされるわけではありません。そのため、推移的な依存関係をバンドルまたは含める前に、lib ディレクトリーの JAR をチェックする必要があります。競合が発生した場合は、問題のあるクラスを削除するか再パッケージ化することで解決できます。

競合するリソースファイルがあっても、警告は表示されません。JAR のリソースファイルのパス名が、そのプロバイダーに固有のものであることを確認してください。または、次のような方法で、"install root"/lib/lib/main ディレクトリー配下の JAR の内容に some.file が存在するかどうかを確認してください。

find . -type f -name "*.jar" -exec unzip -l {} \; | grep some.file

削除されたプロバイダーの JAR に関連する NoSuchFileException エラーが原因でサーバーが起動しない場合は、次を実行します。

./kc.sh -Dquarkus.launch.rebuild=true

これにより、Quarkus がクラスローディング関連のインデックスファイルを強制的に再構築します。その後、最適化なしの start または build を例外を出さずに実行できるはずです。

5.3.1. プロバイダーの無効化

プロバイダーを無効化するには、プロバイダーの enabled 属性を false に設定します。たとえば、Infinispan ユーザーキャッシュプロバイダーを無効にするには、以下を使用します。

bin/kc.[sh|bat] build --spi-user-cache-infinispan-enabled=false
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.