shiro 认证和授权原理

本文详细解析了Shiro框架中的认证与授权过程。认证部分包括主体请求认证、安全管理器执行认证、通过ModularRealmAuthenticator及realm进行凭证对比等步骤。授权过程涉及通过ModularRealmAuthorizer执行授权,realm查询权限数据并进行权限串比对。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、认证原理

1、subject(主体)请求认真,调用subject.login(token)

2、SecurityManager (安全管理器)执行认证

3、SecurityManager通过ModularRealmAuthenticator进行认证。

4、ModularRealmAuthenticatortoken传给realmrealm根据token中用户信息从数据库查询用户信息(包括身份和凭证)

 

5realm如果查询不到用户给ModularRealmAuthenticator返回nullModularRealmAuthenticator抛出异常(用户不存在)

 

6realm如果查询到用户给ModularRealmAuthenticator返回AuthenticationInfo(认证信息)

 

7ModularRealmAuthenticator拿着AuthenticationInfo(认证信息)去进行凭证(密码 )比对。如果一致则认证通过,如果不致抛出异常(凭证错误)。

 

二、授权原理

 

1、对subject进行授权,调用方法isPermitted"permission"

 

2SecurityManager执行授权,通过ModularRealmAuthorizer执行授权

 

3ModularRealmAuthorizer执行realm(自定义的CustomRealm)从数据库查询权限数据调用realm的授权方法:doGetAuthorizationInfo

 

4realm从数据库查询权限数据,返回ModularRealmAuthorizer

 

5ModularRealmAuthorizer调用PermissionResolver进行权限串比对

 

6、如果比对后,isPermitted"permission"realm查询到权限数据中,说明用户访问permission串有权限,否则 没有权限,抛出异常。

 

转载于:https://www.cnblogs.com/zhangxianming/p/8656851.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值