shiro权限校验源码分析

开门见山

如角色超级管理员有权限  user,但是没有 user:insert,user:edit权限

可见源码,shiro会通过":"把用户的权限字符串split,如:user:insert,得到List<String>  ==  [user,insert],如下图

这里的perms代表的是用户的所有权限,为经过split之后的权限,permission为当前要校验的权限,如下图

校验权限时,比如校验的是user:insert,用户拥有权限user,for循环第一层,user比对user,通过,执行i++,for循环第二层,由于getParts().getsize -1 < i 条件成立(用户权限user,split之后,只有user这个字符串),所以返回true,权限校验通过

说明了,如果用户user权限,user下的其它权限,如:user:insert,user:edit  都会拥有,如下图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值