3.4. テーマの移行
カスタムテーマを作成した場合は、そのテーマを新しいサーバーに移行する必要があります。また、カスタマイズした部分によっては、組み込みテーマへの変更をカスタムテーマに反映することが必要になる場合があります。
手順
-
カスタムテーマを古いサーバーの
themes
ディレクトリーから新しいサーバーのthemes
ディレクトリーにコピーします。 次のセクションを使用して、テンプレート、メッセージ、およびスタイルを移行します。
- 移行の変更 に挙げられている更新されたテンプレートのいずれかをカスタマイズした場合は、ベーステーマのテンプレートと比較して、適用する必要のある変更があるかどうかを確認します。
- メッセージをカスタマイズした場合は、キーまたは値を変更したり、追加のメッセージを追加したりする必要がある場合があります。
- スタイルをカスタマイズ済みで、Red Hat build of Keycloak のテーマを拡張する場合は、スタイルの変更を確認します。ベーステーマを拡張する場合は、この手順をスキップできます。
3.4.1. テンプレートの移行
テンプレートをカスタマイズした場合は、新しいバージョンを確認して、カスタマイズしたお使いのテンプレートを更新するかどうかを決定します。軽微な変更を加えた場合は、更新されたテンプレートとカスタマイズしたテンプレートを比較することを推奨します。ただし、多くの変更を加えた場合は、新しいテンプレートとお使いのカスタマイズしたテンプレートを比較することを検討してください。この比較により、どのような変更を加える必要があるかがわかります。
差分ツールを使用してテンプレートを比較できます。次のスクリーンショットは、Login テーマの info.ftl
テンプレートとカスタムテーマの例を比較したものです。
更新バージョンの Login テーマテンプレートとカスタムの Login テーマテンプレートの比較
この比較から、1 つ目の変更点 (Hello world!!
) はカスタマイズであり、2 つ目の変更点 (if pageRedirectUri
) はベーステーマの変更点であることがわかります。2 つ目の変更点をカスタムテンプレートにコピーすると、カスタマイズしたテンプレートが正常に更新されます。
別の方法として、次のスクリーンショットは、古いインストールの info.ftl
テンプレートと新しいインストールの更新された info.ftl
テンプレートを比較したものです。
古いインストールの Login テーマテンプレートと更新された Login テーマテンプレート
この比較から、ベーステンプレートの変更点がわかります。これをもとに、変更したテンプレートに同じ変更を手動で加えることができます。この方法はより複雑であるため、最初の方法が実行不可能な場合にのみ使用してください。
3.4.2. メッセージの移行
別の言語のサポートを追加した場合は、上記の変更点をすべて適用する必要があります。別の言語のサポートを追加していない場合は、何も変更する必要がない可能性があります。テーマ内の影響を受けるメッセージを変更した場合にのみ、変更を加える必要があります。
手順
- 追加された値は、ベーステーマのメッセージ値を確認し、メッセージをカスタマイズする必要があるかどうかを判断します。
- 名前が変更された鍵の場合は、カスタムテーマのキーの名前を変更します。
- 変更された値は、ベーステーマの値を確認して、カスタムテーマに変更を加えなければならないかどうかを判断します。
3.4.3. スタイルの移行
組み込みテーマのスタイルに加えた変更を反映するには、カスタムスタイルを更新する必要がある場合があります。差分ツールを使用して、古いサーバーインストールと新しいサーバーインストール間のスタイルシートの変更を比較することを検討してください。
以下に例を示します。
$ diff RHSSO_HOME_OLD/themes/keycloak/login/resources/css/login.css \ RHSSO_HOME_NEW/themes/keycloak/login/resources/css/login.css
変更を確認し、それらがカスタムスタイルに影響するかどうかを判断します。