Keycloak 设置密码重置的自定义主题会引发错误

问题描述 投票:0回答:1

我正在使用自定义主题来实现我的 keycloak 重置密码功能。这是我的方法

  1. 在路径

    /opt/keycloak/themes
    中创建一个文件夹,命名为
    myTheme

  2. myTheme
    文件夹下我创建了一个
    email
    文件夹

  3. 在电子邮件文件夹内,我有

    messages
    文件夹和
    theme.properties
    文件

  4. theme.properties
    文件有内容 -

    父=基础

    导入=通用/keycloakb

  5. messages
    文件夹内我有
    messages_en.properties
    包含内容的文件

    passwordResetSubject=我的自定义密码恢复 因为我只想更新电子邮件主题

但是当我执行这个时,我收到一个错误

KC-SERVICES0026:无法发送密码重置电子邮件: org.keycloak.email.EmailException:无法模板电子邮件

原因:org.keycloak.theme.FreeMarkerException:处理失败 模板文本/密码重置.ftl

keycloak
1个回答
0
投票

我从您提供的信息中可以识别出的唯一错误是您的

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

然后重现示例:

  1. 使用参数
    --spi-theme-static-max-age=-1 --spi-theme-cache-themes=false --spi-theme-cache-templates=false
    启动 keycloak,如文档中所述,以防止任何主题缓存
  2. 在领域设置 > 登录中启用“忘记密码”
  3. 使用电子邮件地址创建测试用户
  4. 触发忘记该测试用户的密码

正如预期的那样,我收到了一封包含我的自定义主题的电子邮件。

© www.soinside.com 2019 - 2024. All rights reserved.