菜鸟手把手学Shiro之shiro授权流程

2023-10-15,,

一.首先我们从整体去看一下授权流程,然后再根据源码去分析授权流程.如下图:

流程如下:

1、首先调用 Subject.isPermitted*/hasRole*接口,其会委托给 SecurityManager,而SecurityManager 接着会委托给 Authorizer;

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

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

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

二.从开发应用层角度

菜鸟手把手学Shiro之shiro授权流程的相关教程结束。

《菜鸟手把手学Shiro之shiro授权流程.doc》

下载本文的Word格式文档,以方便收藏与打印。