我正在使用自定义主题来实现我的 keycloak 重置密码功能。这是我的方法
在路径
/opt/keycloak/themes
中创建一个文件夹,命名为myTheme
在
myTheme
文件夹下我创建了一个email
文件夹
在电子邮件文件夹内,我有
messages
文件夹和 theme.properties
文件
theme.properties
文件有内容 -
父=基础
导入=通用/keycloakb
在
messages
文件夹内我有messages_en.properties
包含内容的文件
passwordResetSubject=我的自定义密码恢复 因为我只想更新电子邮件主题
但是当我执行这个时,我收到一个错误
KC-SERVICES0026:无法发送密码重置电子邮件: org.keycloak.email.EmailException:无法模板电子邮件
原因:org.keycloak.theme.FreeMarkerException:处理失败 模板文本/密码重置.ftl
我从您提供的信息中可以识别出的唯一错误是您的
theme.properties
文件中的拼写错误。
您的文字如下:
parent=base
import=common/keycloakb
请注意,它应为(
b
后不带keycloak
):
parent=base
import=common/keycloak
我按照此处的指南重新创建了您的示例:https://www.keycloak.org/docs/latest/server_development/#creating-a-theme
并提出了以下结构:
themes/
- mytheme/
- email/
- theme.properties
- messages/
- messages_en.properties
theme.properties
的内容:
parent=base
import=common/keycloak
messages_en.properties
的内容
passwordResetSubject=My password recovery
然后重现示例:
--spi-theme-static-max-age=-1 --spi-theme-cache-themes=false --spi-theme-cache-templates=false
启动 keycloak,如文档中所述,以防止任何主题缓存正如预期的那样,我收到了一封包含我的自定义主题的电子邮件。