Я использую keycloak для аутентификации и авторизации с Spring Boot и Thymeleaf.
Я пытаюсь защитить некоторые области, например, если у пользователя есть роль ROLE_TEC, мне нужно скрыть некоторую часть представления, поэтому я делаю следующее:
<li class = "nav-item dropdown" sec:authorize = "hasRole('ROLE_TEC')">
//some html
</li>
Пользователь, которого я использую, имеет эту роль, но я не вижу эту часть страницы. Почему?
Должен ли я добавить какую-либо конфигурацию тимелеафа для keycloak или безопасности Spring?
РЕДАКТИРОВАТЬ
Если я использую:
<span sec:authentication = "authorities"></span>
Я получаю это:
[KeycloakRole{role='TEC'}, KeycloakRole{role='USER'}]
Попробуй это
<li class = "nav-item dropdown" th:if = "${#authorization.expression('hasRole(''ROLE_TEC'')')}"
//some html
</li>
Думаю, вот решение:
<li class = "nav-item dropdown" sec:authorize = "hasAuthority('TEC')">