gpt4 book ai didi

java - sec :authorize does not work - Spring Boot 2, Thymeleaf 3、Thymeleaf Spring Security 5 集成包

转载 作者:行者123 更新时间:2023-12-01 17:17:08 26 4
gpt4 key购买 nike

我正在合作

  • Spring Boot 2.2.5
  • thymeleaf 3.0.11
  • Thymeleaf Spring Security 5 3.0.4 版本

我在 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>

版本已被识别,并且相应的 jar 已包含在我的项目中。我还在模板中添加了 Thymeleaf 安全模块的额外命名空间:

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

我已经使用 Hibernate 和 MySQL 以及登录/注销实现了基于角色的身份验证和授权,据我了解,这工作得很好。

Thymeleaf Security Dialect 的 sec:authentication 标签工作正常并且还显示正确的角色。在调用方法 sec:authorize="isAuthenticated()" 时,sec:authorize 标记似乎也能正常工作。但是,在评估模板中用户的角色时,我很挣扎,都使用 sec:authorize="hasRole('...')"th:if="$ {#authorization.expression('hasRole(''...'')')}"。我似乎无法评估角色尽管使用sec:authentication="principal.authorities"正确显示了它们。

我在测试页面上总结了我的方法,显示以下结果: showing image

有什么线索可以告诉我我的错误或误解隐藏在哪里吗?非常感谢您的提前支持。

最佳答案

经过更多研究,我解决了我的问题。将前缀 ROLE_ 添加到角色名称(在数据源中)后,一切正常。

关于java - sec :authorize does not work - Spring Boot 2, Thymeleaf 3、Thymeleaf Spring Security 5 集成包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61363242/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com