3.4. 迁移主题
如果您创建了自定义主题,则必须将这些主题迁移到新服务器。另外,对内置主题的任何更改可能需要反映在自定义主题中,具体取决于您自定义的方面。
流程
-
将自定义主题从旧服务器
主题
目录复制到新服务器主题
目录。 使用以下部分来迁移模板、消息和样式。
- 如果您自定义了 Migration Changes 中列出的任何更新模板,请将模板与基础主题进行比较,以检查您需要应用的任何更改。
- 如果自定义消息,您可能需要更改键或值或添加额外的消息。
- 如果您自定义任何风格且您要扩展 Keycloak 主题的红帽构建,请查看风格的更改。如果您要扩展基础主题,您可以跳过这一步。
3.4.1. 迁移模板
如果您自定义任何模板,请查看新版本以决定更新自定义模板。如果您进行了较小的更改,您可以将更新的模板与自定义模板进行比较。但是,如果您进行了许多更改,请考虑将新模板与自定义模板进行比较。此比较将向您显示您需要进行哪些更改。
您可以使用 diff 工具比较模板。以下屏幕截图比较了 Login 主题和示例自定义主题中的 info.ftl
模板:
登录模板和自定义登录模板的更新版本
此比较显示,第一次更改(Hello world!!
)是自定义状态,而第二个更改(如果 pageRedirectUri
)是基础主题的更改。通过将第二个更改复制到自定义模板,您已成功更新您的自定义模板。
在替代方法中,以下屏幕截图将旧安装中的 info.ftl
模板与新安装中更新的 info.ftl
模板进行比较:
从旧安装和更新的 Login 主题模板登录主题模板
此比较显示在基本模板中更改的内容。然后您可以手动对修改的模板进行相同的更改。由于这种方法更为复杂,因此只有在第一个方法不可行时才使用此方法。
3.4.2. 迁移消息
如果您添加了对其他语言的支持,则需要应用上面列出的所有更改。如果您还没有添加了对其他语言的支持,您可能不需要更改任何内容。只有在您更改了主题中的受影响的消息时才需要进行更改。
流程
- 对于添加的值,请查看基本主题中的消息值,以确定是否需要自定义该消息。
- 对于重命名的密钥,请在自定义主题中重命名密钥。
- 对于更改的值,请检查基础主题中的值以确定您是否需要更改自定义主题。
3.4.3. 迁移风格
您可能需要更新您的自定义样式,以反映对内置主题中样式所做的更改。考虑使用 diff 工具将旧服务器安装与样式表的更改进行比较。
例如:
$ diff RHSSO_HOME_OLD/themes/keycloak/login/resources/css/login.css \ RHSSO_HOME_NEW/themes/keycloak/login/resources/css/login.css
检查更改并确定它们是否影响您的自定义样式。