Keycloak 22.0.1 Docker镜像邮件双因素认证配置求助
解决Keycloak容器中base主题email目录缺失的问题
以下是具体操作步骤:
进入Keycloak容器
先通过命令进入运行中的Keycloak容器:docker exec -it <你的Keycloak容器名称> /bin/bash创建缺失的目录结构
容器内的base主题默认可能没有email相关子目录,手动创建所需路径:mkdir -p themes/base/email/html mkdir -p themes/base/email/text mkdir -p themes/base/email/messages复制邮件模板文件
从本地将模板文件复制到容器对应目录(如果已将文件传到容器内,直接使用容器内的文件路径即可):# 复制HTML模板 docker cp ./html/code-email.ftl <你的Keycloak容器名称>:/opt/keycloak/themes/base/email/html/ # 复制文本模板 docker cp ./text/code-email.ftl <你的Keycloak容器名称>:/opt/keycloak/themes/base/email/text/合并messages属性文件
- 先创建缺失的
messages_en.properties文件(如果不存在):touch /opt/keycloak/themes/base/email/messages/messages_en.properties - 将本地
messages/*.properties的内容追加到容器内的属性文件中:# 先把本地messages目录传到容器临时目录 docker cp ./messages/ <你的Keycloak容器名称>:/tmp/ # 追加内容到目标文件 docker exec -it <你的Keycloak容器名称> cat /tmp/messages/*.properties >> /opt/keycloak/themes/base/email/messages/messages_en.properties
- 先创建缺失的
重启Keycloak容器
完成文件操作后,重启容器使配置生效:docker restart <你的Keycloak容器名称>
额外建议
如果不想修改base主题(避免Keycloak升级时丢失自定义内容),可以创建自定义主题:
- 在
themes目录下新建自定义主题文件夹(比如my-2fa-theme) - 在该文件夹内创建
email/html、email/text、email/messages目录,放入模板和属性文件 - 在Keycloak控制台的Realm设置中,将主题切换为自定义主题
内容的提问来源于stack exchange,提问作者Abhishek Poddar
相关产品推荐
相关产品推荐

