解决Spring Boot Security – Thymeleaf sec:authorize-url 标签不生效(排坑)

原文链接: http://auan.cn/java/1654.html

转载自:http://auan.cn/java/1654.html

总结:
我那个原因是引用 thymeleaf-extras-springsecurity4 时没有指定版本。后来指定了3.0.2.RELEASE就可以了。应该是版本兼容问题。
另外最新版的 springboot 2.1.x 也会有问题。建议用 2.0.x

 

用 SpringBoot + SpringSecurity + Thymeleaf 搭建了一个应用,发现 Thymeleaf sec:authorize-url 以及 sec:authorize="hasRole('ROLE_ADMIN')" 标签都不生效。
后来发现是 Maven 引入 thymeleaf-extras-springsecurity4 时没有指定版本号,直接使用是SpringBoot的版本。

解决方案:

在maven中把 thymeleaf-extras-springsecurity4 改成



    org.thymeleaf.extras
    thymeleaf-extras-springsecurity4
    3.0.2.RELEASE

然后 thymeleaf 模板中就可以这样使用了:

This content is only shown to authenticated users.
This content is only shown to administrators.
This content is only shown to users.
can see /admin
Logged user: Bob Roles: [ROLE_USER, ROLE_ADMIN]

后续又发现一个问题。在新版的springboot 2.1.x 中也会导致标签失效,暂时先用2.0.7及以下吧。

你可能感兴趣的:(springBoot)