【问题标题】:Keycloak theme variablesKeycloak 主题变量
【发布时间】:2020-08-26 09:56:05
【问题描述】:

在 Keycloak 的基本模板中,有多个变量示例,可在 Freemarker 模板中访问。例如,在文件中: https://github.com/keycloak/keycloak/blob/master/themes/src/main/resources/theme/base/login/login.ftl

有字段:

properties.kcFormGroupClass

realm.rememberMe

url.registrationUrl

这些哈希是在哪里定义的?我在文档中发现的唯一内容是我可以访问:

${some.system.property} - for system properties

${env.ENV_VAR} - for environment variables

但我找不到 f.e.网址选项。我想显示用户尝试访问的地址。

【问题讨论】:

    标签: keycloak freemarker


    【解决方案1】:

    所有这些实体都是在页面呈现期间为 Freemarker 模板引擎提供的 Java 类的实例。您可以在 keycloak github repo 中搜索相应的类。通常他们都命名为 %Something%Bean 例如LoginBean、ClientBean、UrlBean。

    看这里: https://github.com/keycloak/keycloak/blob/10.0.1/services/src/main/java/org/keycloak/forms/login/freemarker/model/RealmBean.java

    【讨论】:

    • 谢谢。只是为了结束这个问题 - 是否可以显示用户试图访问的地址?我检查了所有登录表单,但找不到这样的字段。根 url 也足以满足我的显示目的,但我正在检查它是一个私有属性。
    • 至少知道哪些 bean 可用于哪些模板真的很有帮助。
    • @thelr 我相信您可以查看上面目录中的 FreeMarker 提供程序。这些 bean 应该简单地导入,例如:github.com/keycloak/keycloak/blob/master/services/src/main/java/…github.com/keycloak/keycloak/blob/master/services/src/main/java/…
    • @JoshThunar AFAIR 我通过实现自定义 EmailTemplateProvider 明确添加了 IP 地址信息(远程/本地地址)作为 freemarker 属性(实际上我扩展了默认值)。我从 Keycloak Context 对象中获得的 URL/IP 信息。
    • 谢谢,对于这个解决方案,我使用了一个小脚本stackoverflow.com/questions/61748844/…
    猜你喜欢
    • 2019-11-01
    • 2018-08-30
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    • 2018-06-01
    • 2020-08-28
    • 2021-02-13
    • 2020-06-11
    相关资源
    最近更新 更多