本文最后更新于:星期五, 三月 20日 2020, 7:00 晚上

介绍

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 链接


SpringBoot 编程

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!

Springboo 实现 html 热部署
2020 软件工程作业 02

 目录