Shiro 七 授权源码分析

1.首先调用Subject.isPermission*/hasRole*接口,其余委托给SecurityManager,而SecurityManager接着会委托给Authorizer。

2.Authorizer是真正的授权者,如果我们调用如isPermitted(“user:view”),其首先会通过PermissionResover把字符串转换成相应的permission实例。

3.在进行授权之前,其会调用相应的real获取subject相应的角色、权限用于匹配传入的角色、权限;

4.Authorization会判断Realm的角色/权限是否和传入的匹配,如果有多个realm。会委托给ModularRealmAuthorzer进行循环判断,如果匹配如isPermitted*、hasRole*会返回true,否则返回false表示授权失败。

发布了123 篇原创文章 · 获赞 29 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/m0_38044453/article/details/89920611