shiro——授权原理(源码流程)

目录

 

1. 授权入口

2. 源码追踪


1. 授权入口

subject.isPermitted(url); 这就是入口,如果用户有这个url权限,那么就返回true,如果没有,则返回false。

2. 源码追踪

由于我们的Subject默认是由DelegatingSubject 类实现的,所以调用的是DelegatingSubject类的isPermitted(String url) 方法。

public boolean isPermitted(String permission) {
        return this.hasPrincipals() && this.securityManager.isPermitted(this.getPrincipals(), permission);
}

判断该用户是否有身份标识信息(多半是用户名、电话等等,能够唯一标识用户),如果没有,那肯定授权失败,用户无法访问url。如果有,就继续判断,this.securityManager.isPermitted(this.getPrincipals(), permission);

这里的securityManager 是我们的shiro配置文件中配置了的,本文是配置的DefaultSecurityManager类来实现的, 查看了DefaultSecurityManager类里面,并没有isPermitted方法,原来DefaultSecurityManager类继承了AuthorizingSecurityManage

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值