关于shiro的haspermission标签三重权限验证失效

最近改项目bug,用到了shiro权限,当时测试出一个bug,就是关于shiro权限失效的问题,记录一下Bug
在这里插入图片描述
如图所示,此时名称为aa:bb:cc的权限做判断,如果登录用户拥有此权限,selectDepartment应为true
否则为false,这时候就有一个问题,登录用户没有拥有权限,但是aa:bb:cc的权限判断为true。
在这里插入图片描述
贴上完整的页面权限判断,可以看见有aa:bb:xx和aa:bb:cc两个权限判断

这时候应该知道一个问题,就是shiro的权限判断不是根据字符串的,而是通过集合的包含关系判断的
而且通过debug发现权限的判断走的并不是aa:bb:cc或者aa:bb:xx,而是aa:bb,debug的具体位置在realm类的isPermitted方法,更加证明了权限的判断是根据包含关系来的(忘记说了,项目测试中登录的角色有aa:bb这个权限),总而言之就是坑。
误区来了,公司大佬说的是根据严格的字符串判断的,可能有什么误解吧,因为根据字符串判断的话就不会出现这个问题!

这是遇到一个坑,记录一下,每天一坑!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值