问题:导入thymeleaf-extras-springsecurity5后,前台获取不到角色。
<!--security-thymeleaf整合包--> <dependency> <groupId>org.thymeleaf.extras</groupId> <artifactId>thymeleaf-extras-springsecurity5</artifactId> <version>3.0.4.RELEASE</version> </dependency>
分析:thymeleaf-extras-springsecurity4和thymeleaf-extras-springsecurity5,存在版本问题,所以导入的命名空间也有区别。
解决:依赖版本为:thymeleaf-extras-springsecurity5时,命名空间应该为:
xmlns:sec="http://www.thymeleaf.org/extras/spring-security"
在获取角色时:应该用
<span sec:authentication="principal.authorities"></span>
而不是:
<span sec:authentication="principal.getAuthorities()"></span>
如果仍要用:thymeleaf-extras-springsecurity4版本
解决办法:降级springboot版本,2.0.9和2.0.7较为稳定。因为版本降级,所以项目其他位置的导入过的包也需要根据提示修改。
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.9.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent>
命名空间导入:
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4
此时获取角色:
<span sec:authentication="principal.getAuthorities()"></span>