Spring Security权限注解@PreAuthorize通俗讲解

本文详细阐述了后端接口权限与前端展示控制的分离原则,强调后端接口权限不受前端菜单布局影响,只需确保权限字符串在用户权限范围内。用户登录获取权限后,前端根据权限显示相应按钮。同时,介绍了前端如何根据后端返回的权限列表动态控制界面元素的显示。总结了权限验证的核心在于后端接口权限字符串与用户权限的匹配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面:后端就是后端,后端接口权限和前端可以想成没有任何关系,千万不要被所谓的路由、所谓的那些按钮、权限标识在哪个菜单下所迷惑(只要保证接口权限字符串在用户菜单权限下即可,除此之外,在哪个菜单或按钮都行)!(后端的我们就用接口测试工具测试,所以不要被前端界面的这些东西所迷惑)
在这里插入图片描述图1
简单举例子说,后端有这么一个接口,图2,这个权限标识不一定非得放在图1所示的菜单下才起作用。比如admin用户拥有所有菜单的权限,那么你将test: one:testForm:list放到任何一个菜单下,用户admin都可以访问这个list接口,但是不能放到某个用户没有权限的菜单下。再换种说法就是,当一个用户登录的时候,会获得该用户能看到的菜单权限,只要你的接口权限标识在这个用户能看到的菜单下(任何一个地方),那么你带着这个用户的token用postman测试后端list接口,就可以访问,如图3所示,相反则不行。
在这里插入图片描述
图2
在这里插入图片描述
图3
补充知识点:
在这里插入图片描述
图4
图4有三个权限字符串,是或的关系,也就是说,你的用户token(该用户所拥有的菜单)里边有这三个权限字符串的任何一个都可以访问queryById接口。
前端权限讲解(后续看了看前端,最终的补充)
将后端传回的permissions存到本地缓存,将前端的权限字符串遍历对比本地缓存的permissions列表,若存在,则显示该前端按钮,若不存在,则不显示。说白了,不管是后端接口的权限还是前端按钮的权限都是在和数据库做对比,菜单只是起到了限制用户permissions数量。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海是倒过来的天呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值