shiro授权-记调试过程

根据张开涛老师的shiro教程学习过程中 感觉shiro授权这块有点绕 调试了十几遍 大概有个思路  记录一下

1.单元测试入口

2.subject().isPermitted("+user1+2")

 

.

3.根据格式选择传入需要判断的“+user1+2“权限解析器

4.将字符串解析成Permission对象

 得到传入判断的Permission对象如下

 

 5.接下来执行第2步的  isPermitted(principals, p)

6.获取授权信息  getAuthorizationInfo(principals)方法调用 ,先从缓存里找zhang这个用户的权限 如果没有  调用doGetAuthorizationInfo()方法获取授权信息

 7.这里给zhang这个角色添加权限  三个角度 (1.角色  2.Permission对象 3.字符串权限)

8.getAuthorizationInfo()得到info,调用isPermitted(Permission permission, AuthorizationInfo info) 

9.从授权信息info获取Permission权限集合(分别permission对象,字符串对象和角色包含的权限获取)

10. 将字符串权限,角色中权限解析成Permission对象

自定义角色权限解析器

 11.当授权信息里的全部解析为permission对象后 开始调用遍历授权信息里的权限调用perm.implies(permission)与传入需要判断的permission比对

 

 12.判断是否包含传入的权限  有匹配的话返回true 。至此,判断权限结束

 

转载于:https://www.cnblogs.com/bloghxr/p/7868958.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值