email - Keycloak - 访问电子邮件模板中的上下文变量
问题描述
我正在使用keycloak 11.0.x
来自 dockerhub 的现成图像,所以我没有更改 java 代码,我只是配置图像并运行。我唯一修改的是executeActions.ftl
电子邮件模板,一切正常!我的电子邮件模板已更改,但我希望可以从此模板访问角色和组...以进行更多更改。
我从其他模板中知道我可以访问此模板中的几个变量/
方法,例如:link
、、、、、、、、等等。linkExpiration
realmName
requiredActions
linkExpirationFormatter(linkExpiration)
event.date
event.ipAddress
我发现了另外一个变量:user.attributes.xxxx
,但我不知道这里还有哪些其他变量。我克隆了当前的 keycloak 存储库,并开始分析代码,但我发现很难理解所有内容,因为我正在使用 python 编程。
在 stackoverflow 上,我还发现了类似这样的内容:<variable>.getClass().getDeclaredFields()
,并且此方法打印所有对象属性,它帮助我在开始时分析代码。
我还在模板中发现:
user
变量是ProfileBean
对象,它不包含组requiredActions
似乎在CachedUser
类中声明,但我无法访问此类中的其他变量user.attributes.xxxx
只是特别准备的常量,被添加到某处的上下文中- 编辑:我还发现几乎所有属性都添加到
FreeMarkerEmailTemplateProvider
类中,在这里我发现了更多类似locale
的:进步properties
msg
我相信上下文数据中的某处有很多变量,但我不知道它们是在哪里声明的,以及如何访问它们。我仍在分析代码,但决定在这里提问,因为这对于已经使用 keycloak 代码的人来说可能是显而易见的。
我将不胜感激任何帮助!谢谢!
解决方案
推荐阅读
- javascript - 关于使用 2 个函数比较日期的 JS 问题
- javafx - 当 Model 具有 JavaFX 属性时如何使用 ViewModel?
- ios - iOS - 模棱两可的布局
- java - 线程“主”java.lang.NoClassDefFoundError中的scala EPFL异常:javax/script/Compilable
- laravel - 奇怪的 assertJSON 行为
- java - 如何从 thymleaf 中的属性文件中读取值
- sql-server - SQL 变量只保留最后返回的结果
- python - 画布上的图像小部件 Tkinter
- spring-boot - 授权请求失败:java.lang.IllegalArgumentException:无效的客户端注册,ID:linkedin
- f# - 如何使用计算表达式中的自定义操作从构建器访问值