如何在 .html 文件中使用 Keycloak 将 thymleaf 与 Spring Security 一起使用?

Posted

技术标签:

【中文标题】如何在 .html 文件中使用 Keycloak 将 thymleaf 与 Spring Security 一起使用?【英文标题】:How can I use thymleaf with spring security, using Keycloak inside the .html files? 【发布时间】:2018-08-21 19:51:05 【问题描述】:

我使用keycloakSpring BootThymeleaf 进行身份验证和授权。

我正在尝试保护某些区域,例如,如果用户具有角色 ROLE_TEC,我必须隐藏视图的某些部分,因此我正在执行以下操作:

<li class="nav-item dropdown" sec:authorize="hasRole('ROLE_TEC')">
//some html
</li>

我使用的用户具有该角色,但我看不到该页面。 为什么?

我是否必须为 keycloak 或 Spring 安全性添加任何有关 thymeleaf 的配置?

编辑

如果我使用: &lt;span sec:authentication="authorities"&gt;&lt;/span&gt;

我得到这个:

[KeycloakRolerole='TEC', KeycloakRolerole='USER']

【问题讨论】:

【参考方案1】:

我认为这是解决方案:

<li class="nav-item dropdown" sec:authorize="hasAuthority('TEC')">

【讨论】:

【参考方案2】:

试试这个

<li class="nav-item dropdown" th:if="$#authorization.expression('hasRole(''ROLE_TEC'')')"
//some html
</li>

【讨论】:

以上是关于如何在 .html 文件中使用 Keycloak 将 thymleaf 与 Spring Security 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 keycloak 的 ftl 文件中包含 React js 文件?

如何在 nextjs 中使用 keycloak?

高可用 Keycloak,K8s

如何将领域文件导出到 keycloak docker 容器中?

如何在 Keycloak .ftl 模板中加载用户数据?

如何在 Flutter 中使用 KeyCloak