在 Keycloak 登录主题中获取 root url

Posted

技术标签:

【中文标题】在 Keycloak 登录主题中获取 root url【英文标题】:Get root url in Keycloak login theme 【发布时间】:2020-08-28 02:58:32 【问题描述】:

是否可以在 Keycloak 登录主题使用的 Freemaker 模板中获取根 url?我找到的最接近的是在客户端 bean 中:

keycloak-master\services\src\main\java\org\keycloak\forms\login\freemarker\model\ClientBean.java


public String getBaseUrl() 
  return ResolveRelative.resolveRelativeUri(session, client.getRootUrl(), client.getBaseUrl());

可以在 Freemaker tamplete 中调用:

$client.baseUrl

但是,client.getRootUrl() 本身并未暴露。是否可以在不更改服务源代码的情况下获取root url,只使用Keycloak主题中的Freemaker模板?

【问题讨论】:

【参考方案1】:

如果只是在页面中显示,请使用javascript,它将在客户端进行评估:

<label id="yourLabel">test</label>
<script>
  var root = window.location.origin;
  document.getElementById('yourLabel').innerhtml = root;
</script>

另请参阅:

Change label text using JavaScript How to extract the hostname portion of a URL in JavaScript

【讨论】:

以上是关于在 Keycloak 登录主题中获取 root url的主要内容,如果未能解决你的问题,请参考以下文章

在 keycloak 主题中更新密码时正在存储“这不是登录表单”

如何在 Kubernetes 上的 Keycloak Operator 部署中使用自定义主题?

在使用 Keycloak 保护的 web 应用程序中获取登录用户名

如何使用 Keycloak 在 Spring Boot 中获取当前登录用户?

在使用Keycloak保护的Web应用程序中获取登录用户名

Keycloak - spring boot - 外部登录网页