se c: авторизация не работает - Spring Boot 2, Thymeleaf 3, Thymeleaf Spring Security 5, пакет интеграции - PullRequest
0 голосов
/ 22 апреля 2020

Я работаю с

  • Spring Boot 2.2.5
  • Thymeleaf 3.0.11
  • Thymeleaf Spring Security 5, 3.0.4 Release

Я использую следующие зависимости в моем pom. xml:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

<dependency>
    <groupId>org.thymeleaf.extras</groupId>
    <artifactId>thymeleaf-extras-springsecurity5</artifactId>
</dependency>

Версии распознаны, и соответствующие фляги включены в мой проект. Я также добавил дополнительное пространство имен модуля безопасности Thymeleaf к своим шаблонам:

<html xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">

Я реализовал аутентификацию и авторизацию на основе ролей с Hibernate и MySQL и вход / выход из системы, что, на мой взгляд, работает нормально .

Тег sec:authentication Thymeleaf Security Dialect работает нормально и также отображает правильные роли. Тег sec:authorize, кажется, также работает при вызове метода sec:authorize="isAuthenticated()". Однако я испытываю трудности при оценке роли пользователя в шаблонах, использующих sec:authorize="hasRole('...')" или th:if="${#authorization.expression('hasRole(''...'')')}". Мне кажется, что роли не могут быть оценены , хотя они правильно отображаются с использованием sec:authentication="principal.authorities".

Я суммировал свои подходы на тестовой странице, отображая следующий результат: showing image

Любая подсказка, где скрывается моя ошибка или недоразумение? Большое спасибо за вашу поддержку заранее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...