frame shiro 授权及原理简述

2023-05-22,,

shiro 授权模式

shiro采用的是rbac授权模式
rbac,基于角色的权限管理,谁扮演什么角色,被允许做什么事情。


shiro 授权流程


shiro 授权方式

1、编程式

通过写if/else授权代码块完成

Subject subject = SecurityUtils.getSubject();
if(subject.hasRole("admin")) {
// 有权限
} else {
// 无权限
}

2、注解式

通过在执行的java方法上放置相应的注解完成

如果主体里没有admin角色,不能进入方法
@RequiresRoles("admin")
public void hello() {
// 有权限
}

3、JSP标签式

<shiro:hasRole name="admin">
<!-- 有权限,这个按钮显示 -->
</shiro:hasRole>

shiro 授权流程分析

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表示授权失败。

frame shiro 授权及原理简述的相关教程结束。

《frame shiro 授权及原理简述.doc》

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