第6章 カスタムプロバイダーの移行
Red Hat Single Sign-On 7.6 と同様に、カスタムプロバイダーをデプロイメントディレクトリーにコピーすると、そのプロバイダーが Red Hat build of Keycloak にデプロイされます。Red Hat build of Keycloak では、プロバイダーを、削除された standalone/deployments
の代わりに providers
ディレクトリーにコピーします。追加の依存関係も providers
ディレクトリーにコピーする必要があります。
Red Hat build of Keycloak はカスタムプロバイダーに個別のクラスパスを使用しないため、追加の依存関係を含める場合には、より注意する必要があります。さらに、EAR
および WAR
パッケージ形式、および jboss-deployment-structure.xml
ファイルはサポートされなくなりました。
Red Hat Single Sign-On 7.6 はカスタムプロバイダーを自動的に検出し、Keycloak の実行中にカスタムプロバイダーをホットデプロイする機能もサポートしていましたが、この動作はサポートされなくなりました。また、providers
ディレクトリー内のプロバイダーまたは依存関係を変更した後は、ビルドを実行するか、自動ビルド機能を使用してサーバーを再起動する必要があります。
プロバイダーが使用する API によっては、プロバイダーに変更を加える必要がある場合もあります。詳細は、以下のセクションを参照してください。
6.1. Java EE から Jakarta EE への移行
Keycloak のコードベースが Java EE (Enterprise Edition) から Jakarta EE に移行したことに伴い、さまざまな点が変更されました。Jakarta EE 10 をサポートするために、たとえば以下の Jakarta EE 仕様がすべてアップグレードされました。
- Jakarta Persistence 3.1
- Jakarta RESTful Web Services 3.1
- Jakarta Mail API 2.1
- Jakarta Servlet 6.0
- Jakarta Activation 2.1
Jakarta EE 10 は、クラウドネイティブの Java アプリケーションを構築するシンプルかつ先進的な軽量のアプローチを提供します。この取り組みにおける主な変更点は、javax.*
から jakarta.*
への名前空間の変更です。この変更は、javax.security
、javax.net
、javax.crypto
など、JDK で直接提供される javax.*
パッケージには適用されません。
さらに、セッション/ステートレス Bean などの Jakarta EE API がサポートされなくなりました。