首先需要提醒的是,Thymeleaf Extras模块不是Thymeleaf核心的一部分(因此遵循自己的版本模式),但得到了Thymeleaf团队的全力支持。
所以最重要的是要引入Thymeleaf Extras模块,从官方的Github仓库可以看出不同版本Spring Security和Thymeleaf要使用对应的Thymeleaf Extras版本,Spring Security 5要用thymeleaf-extras-springsecurity5、Spring Security 6要用thymeleaf-extras-springsecurity6,2.1.3.RELEASE版本对应Thymeleaf 2.1.2+、3.0.4.RELEASE版本对应Thymeleaf 3.0.10+。
使用Spring Boot 2+的就用Spring Security 5要用thymeleaf-extras-springsecurity5,使用Spring Boot 3+的就用Spring Security 6要用thymeleaf-extras-springsecurity6。
造成sec:authorize等标签无效的问题主要是Thymeleaf Extras模块的版本对不上,所以,前端页面可加可不加命名空间,也不用在SecurityFilterChain过滤器中做特殊配置,最重要的是要能看到引入的依赖包。
针对所有版本
<html xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
thymeleaf-extras-springsecurity5
<html xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity5">
thymeleaf-extras-springsecurity6
<html xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity6">
从Maven Repository可以看到目前Thymeleaf Extras Springsecurity 5和6最新版本都是3.1.2.RELEASE,最后附上Maven和Gradle两个版本引入Thymeleaf Extras Springsecurity的方法,当然还有thymeleaf-extras-springsecurity4、thymeleaf-extras-springsecurity3等,详情访问Thymeleaf Extras仓库。
//Maven版
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity6</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
//Gradle版
implementation "org.thymeleaf.extras:thymeleaf-extras-springsecurity6:3.1.2.RELEASE"
展开阅读全文
上一篇: Oracle发布JDK 21正式版