Shiro之Authenticatingcache(获取认证缓存原理)

一、创建过程:

1、初始化

2、判断Authenticatingcache开启缓存,且Authenticatingcache为空

原理:

cache = getAuthenticationCacheLazy();

该方法可以调用cachemanager创建

且可以通过名字创建

二、调用流程

1、authenticatingcache获取缓存

核心:

2、进入authenticatingrealm,传入的是token,查看有没有该信息,

注意:

1、在此处判断了,如果从缓存中获取数据为空

1、则调用的是doGetAutenTicationInfo(toke):该方法为实现realm中重写的查询数据库的方法

2、当获取到了数据,

token不为空,info不为空,

token转换k  username

Object key = getAuthenticationCacheKey(token);

将其存入缓存中

info为doGetAutenTicationInfo(toke)创建的对象

SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo(fsConsumerInfo,

   fsConsumerInfo.getPassword(), credentialsSalt, getName());

3、注意:

密码验证:

缓存中获取数据失败,进入缓存中之后进行密码的比对

方法:

assertCredentialsMatch(token, info);

3、继续获取缓存,并判断是否开启使用使用缓存,若是没有缓存,且开启了缓存,交个cachemanager创建缓存

4、最终获取到缓存

5、扩展缓存配置

2、开启   true

1、配置缓存:

方法1、在realm中重写set方法

方法2、在shiroconfi中直接使用set配置

方法3、推荐设置名字交个cachemanager创建,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值