springsecurity-权限控制

一,**需求:

**用户没有登录的时候,导航栏上只显示登录按钮,用户登录之后,导航栏可以显示登录的用户信息及注销按钮!还有就是,比如admin这个用户,它只有 vip2,vip3功能,那么登录则只显示这两个功能,而vip1的功能菜单不显示!

二,实现

        1,导入依赖

         

 <dependency><groupId>org.thymeleaf.extras</groupId><artifactId>thymeleaf-extras-springsecurity4</artifactId><version>3.0.5.RELEASE</version></dependency>

    2,导入命名空间

xmlns:sec="http://www.thymeleaf.org/extras/spring-security"

   3,修改index页面

        

<div><!--如果未登录则显示以下内容--><div sec:authorize="!isAuthenticated()"><a class="btn btn-primary" th:href="@{/toLogin}">登陆</a></div><!--如果已登录则显示以下内容--><div sec:authorize="isAuthenticated()">用户名<p sec:authentication="name"></p>角色<p sec:authentication="principal.authorities"></p><a class="btn btn-primary" th:href="@{/logout}">注销</a></div>
</div>
<!--如果用户拥有这个角色,则显示该div内的内容,如果没有则不显示-->
<div class="div" sec:authorize="hasRole('vip1')"><a th:href="@{/level1/1}">level1-1</a><br/><a th:href="@{/level1/2}">level1-2</a>
</div>
<div class="div" sec:authorize="hasRole('vip2')"><a th:href="@{/level2/1}">level2-1</a><br/><a th:href="@{/level2/2}">level2-2</a>
</div>
<div class="div" sec:authorize="hasRole('vip3')"><a th:href="@{/level3/1}">level3-1</a><br/><a th:href="@{/level3/2}">level3-2</a>
</div>

4,Security配置

       

protected void configure(HttpSecurity http) throws Exception {http.authorizeRequests().and().formLogin() // 使用表单登录.loginPage("/login") // 指定登录页面.and().logout() // 配置注销.logoutUrl("/logout") // 注销路径.logoutSuccessUrl("/login?logout") // 注销成功后跳转的页面.and().csrf().disable();//关闭csrf功能}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/2615.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】C++的四种类型转换

一、C语言中的类型转换 在C语言中有两种类型转换&#xff0c;隐式类型转换和显示类型转换。 如果赋值运算符左右两侧类型不同&#xff0c;或者形参与实参类型不匹配&#xff0c;或者返回值类型与接收返回值类型不一致时&#xff0c;就需要发生类型转化。 隐式类型转换&#…

autodl私有云使用方法(成员端使用)

此时找管理员添加进团队&#xff0c;https://private.autodl.com/访问&#xff0c;登录账号。可以看到容器实例。 点击创建实例&#xff0c;根据所需创建。版本号不可以超过最高的CUDA支持&#xff0c;可以自己拉取镜像。 此处需要注意数据盘使用量&#xff0c;密切关注。存取传…

【WEB前端2024】开源元宇宙:乔布斯3D纪念馆-第10课-摆件的交互

【WEB前端2024】开源元宇宙&#xff1a;乔布斯3D纪念馆-第10课-摆件的交互 使用dtns.network德塔世界&#xff08;开源的智体世界引擎&#xff09;&#xff0c;策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎&am…

Erupt Framework:革命性的通用配置管理框架,零前端代码,急速开发通用管理系统

Erupt Framework&#xff1a;革命性的通用配置管理框架&#xff0c;零前端代码&#xff0c;急速开发通用管理系统 摘要 随着技术的快速发展&#xff0c;软件开发的效率和质量成为了企业竞争的关键因素。Erupt&#xff0c;作为一个低代码全栈框架&#xff0c;通过注解的方式动…

光透过率检测仪解析

TH-SGT1便携式隧道光透过率检测仪是一种用于快速、准确地测量隧道内光透过率的设备。它的主要特点是便携性和易用性&#xff0c;方便用户进行现场检测和监测。 这种检测仪通常结合了光电测量技术和现代便携式设计&#xff0c;使得用户可以在各种环境下方便地进行光透过率的测量…

Next实现 i18n 传递 locales 给 getStaticPaths

在 Next.js 中实现国际化&#xff08;i18n&#xff09;时&#xff0c;可以通过配置 next.config.js 文件来传递 locales 给 getStaticPaths 函数。下面是一个示例代码&#xff0c;演示如何在 next.config.js 中配置 locales&#xff0c;并在 getStaticPaths 中获取并使用这些 …

OpenCV如何实现拉普拉斯算子的离散模拟

返回:OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;OpenCV的Sobel 衍生品 下一篇 &#xff1a;OpenCV 如何实现边缘检测器 目标 在本教程中&#xff0c;您将学习如何&#xff1a; 使用 OpenCV 函数 Laplacian&#xff08;&#xff09; 实…

Yolov5 v7.0目标检测——详细记录环境配置、自定义数据处理、模型训练与常用错误解决方法(数据集为河道漂浮物)

1. Yolov5 YOLOv5是是YOLO系列的一个延伸&#xff0c;其网络结构共分为&#xff1a;input、backbone、neck和head四个模块&#xff0c;yolov5对yolov4网络的四个部分都进行了修改&#xff0c;并取得了较大的提升&#xff0c;在input端使用了Mosaic数据增强、自适应锚框计算、自…

C++ 二叉搜索树

文章目录 二叉搜索树的概念二叉搜索树的性质二叉搜索树的模拟实现封装框架添加操作查找操作删除操作 二叉搜索树的概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者是具有以下性质的二叉树: 若它的左子树不为空&#xff0c;则左子树上所有节点的值都…

PD虚拟机和Crossover软件有什么不同?谁更强大?

PD虚拟机&#xff08;Parallels Desktop&#xff09;和Crossover软件都是为Mac用户提供在macOS上运行Windows应用程序的能力&#xff0c;但它们在设计理念、功能和使用场景上存在一些差异。 PD虚拟机&#xff08;Parallels Desktop&#xff09;的特点&#xff1a; 1. 全面的虚…

MySQL中的并发控制,读写锁,和锁的粒度

MySQL中的并发控制&#xff0c;读写锁&#xff0c;和锁的粒度 并发控制的概述 在数据库系统中&#xff0c;并发控制是一种用于确保当多个用户同时访问数据库时&#xff0c;系统能够提供数据的一致性和隔离性的机制。MySQL支持多种并发控制技术&#xff0c;其中包括锁机制、多…

【论文笔记】设计一款针对情境障碍的视力减弱型文件浏览应用程序(上)

论文关键点 ps&#xff1a;这篇文章可以学习的内容比较多&#xff0c;笔记内容也比较丰富因此本次论文笔记会分为上下期 提出的问题: 不方便视觉障碍的情况下(通勤、走路、眼睛疲劳也算)会用text-speech 系统,但是这种听觉是线性的,不适合skim 推导出了融合听觉和视觉阅读模…

用友 GRP-U8 fastjson远程代码执行漏洞复现(XVE-2024-8863)

0x01 产品简介 用友GRP-U8R10行政事业内控管理软件是用友公司专注于国家电子政务事业,基于云计算技术所推出的新一代产品,是我国行政事业财务领域最专业的政府财务管理软件。 0x02 漏洞概述 用友 GRP-U8 R10系列版本 VerifyToken 接口存在低版本fastjson反序列化漏洞,未经…

class094 贪心经典题目专题6【左程云算法】

class094 贪心经典题目专题6【左程云算法】 前言版权推荐class094 贪心经典题目专题6最后 前言 2024-4-23 14:01:48 以下内容源自《【左程云算法】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客主页是https://…

用户请求经过哪些处理(公网)

DNS服务器之间协作&#xff1a; 递归DNS查询&#xff1a;用户的请求首先发送到递归DNS服务器。 查询根DNS服务器&#xff1a;递归DNS服务器查询根DNS服务器&#xff0c;以找到管理.com顶级域的TLD DNS服务器。 查询TLD DNS服务器&#xff1a;根DNS服务器响应带有TLD DNS服务器…

1079:计算分数加减表达式的值

1079&#xff1a;计算分数加减表达式的值 时间限制: 1000 ms 内存限制: 65536 KB 提交数:57499 通过数: 41720 【题目描述】 编写程序&#xff0c;输入n的值&#xff0c;求1/1−1/21/3−1/41/5−1/61/7−1/8...(−1)^n−1⋅1/n的值。 【输入】 输入一个正整数n。(1…

让php开发更优雅-ThinkPHP篇

前言 随着开发经验的增加&#xff0c;也伴随团队开发的积累&#xff0c;规范开发显得越来越重要&#xff0c;本文给大家提供一些ThinkPHP框架开发API接口的进阶思路和经验&#xff0c;让大家开发更加统一规范&#xff0c;代码看起来更加优雅。 1.更多使用第三方库。团队开发的…

centos7.6上安装mysql7.6 完整过程

安装过程&#xff1a; 参考&#xff1a;https://blog.csdn.net/qq_45103475/article/details/123151050 查找mysql [rootbogon ~]# whereis mysql mysql: /usr/lib64/mysql /usr/share/mysql 删除目录 [rootbogon ~]# rm -rf /usr/lib64/mysql [rootbogon ~]# whereis mysql m…

计算机服务器中了devicdata勒索病毒怎么处理,devicdata勒索病毒解密工具流程

随着网络技术的不断发展与应用&#xff0c;越来越多的企业离不开网络&#xff0c;通过网络可以开展各项工作业务&#xff0c;网络也为企业的生产运营提供各类极大便利&#xff0c;大大提高了生产效率&#xff0c;但网络在为企业提供便利的同时&#xff0c;也为企业的数据安全带…

AJAX——案例

1.商品分类 需求&#xff1a;尽可能同时展示所有商品分类到页面上 步骤&#xff1a; 获取所有的一级分类数据遍历id&#xff0c;创建获取二级分类请求合并所有二级分类Promise对象等待同时成功后&#xff0c;渲染页面 index.html代码 <!DOCTYPE html> <html lang&qu…