【问题标题】:How can I load user data in a Keycloak .ftl template?如何在 Keycloak .ftl 模板中加载用户数据?
【发布时间】:2021-09-12 14:53:54
【问题描述】:

我有一个自定义的 login-update-password.ftl 文件。我想显示用户的名字和姓氏。在基本示例的模板文件中,我看到了${username},它让我可以显示用户名。但是当我做${firstname} 时,会发生以下情况:

12:25:46,752 ERROR [freemarker.runtime] (default task-3) Error executing FreeMarker template: freemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
==> firstname  [in template "login-update-password.ftl" at line 14, column 3]

当我执行${user.firstname} 时,会发生以下情况:

12:27:40,453 ERROR [freemarker.runtime] (default task-2) Error executing FreeMarker template: freemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
==> user  [in template "login-update-password.ftl" at line 14, column 3]

我调试了可用的变量,但似乎没有什么是我需要的。

<#list .data_model?keys as key>
  ${key}
</#list>
msg
execution
social
auth
isAppInitiatedAction
requiredActionUrl
message
locale
authenticatorConfigured
login
url
messagesPerField
client
realm
kcSanitize
scripts
properties
username

如何加载更多用户数据?

【问题讨论】:

    标签: keycloak freemarker


    【解决方案1】:

    尝试使用 getFirstName 方法代替 (user.firstname)。 例如:user.getFirstName()

    【讨论】:

    • 缺少用户变量。因此,当我尝试${user.firstname} 时,我收到与上述相同的错误。所以当我做${user.getFirstName()}时,我也会收到The following has evaluated to null or missing: ==&gt; user ....
    • 另外,如果${user.getFirstName()} 有效(是的,它没有),那么更好的形式是${user.firstName}(不是get()Name 是大写字母)。
    猜你喜欢
    • 2020-10-30
    • 2019-03-08
    • 2023-01-24
    • 2020-10-16
    • 2012-06-10
    • 1970-01-01
    • 2012-10-13
    • 1970-01-01
    • 2019-08-19
    相关资源
    最近更新 更多