介绍
Thymeleaf的sec:authorize标签可以在前端做权限控制
如:在用户界面显示登陆 还是注销,就得判断用户是否登陆
如果未登录
如果登陆了
除此之外,他还可以取出security中的用户名
导包
在导包之前先注意下版本问题
如果你用的spring-boot-starter-security版本是 x.y.z.RELEASE
那么你在整合时用的thymeleaf-extras-springsecurityx
比如我用的是
<spring-security.version>5.2.2.RELEASE</spring-security.version>
那么我的maven中就要导如5的包
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity5</artifactId>
</dependency>
同时html标签也得导入命名空间
<html lang="en" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity5">
使用
判断是否登陆
<div sec:authorize="!isAuthenticated()">
<a>没登录 ,显示登陆按钮</a>
</div>
<!--登陆了显示注销-->
<div sec:authorize="isAuthenticated()">
<a>登陆,显示注销</a>
</div>
已登陆,获取用户的用户名和角色
<div sec:authorize="isAuthenticated()">
您已经登陆 <span sec:authentication="name"></span>
<br>
角色 <span sec:authentication="principal.authorities"></span>
</div>
已登陆,根据用户的权限展示对应的内容
还可以根据用户的权限,决定是否显示dom
<a th:href="@{/.../...}" sec:authorize="hasRole('power2')"
class="layui-btn">SVP</a>
意思是: 如果用户的权限是 power2 那么 显示这个a链接
如果对你有帮助,请给我点个赞吧~