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/haoxianrui/p/7868958.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步