shiro学习(8)——缓存cache+会话session

5.15 shiro缓存

 

针对上边授权频繁查询数据库,需要使用shiro缓存。

 

  ​​​​​​​​​​​​​​5.15.1 缓存流程

 

shiro中提供了对认证信息和授权信息的缓存。shiro默认是关闭认证信息缓存的,对于授权信息的缓存shiro默认开启的。主要研究授权信息缓存,因为授权的数据量大。

 

用户认证通过。

该 用户第一次授权:调用realm查询数据库

该 用户第二次授权:不调用realm查询数据库,直接从缓存中取出授权信息(权限标识符)。

 

 

  5.15.2 使用ehcache

   5.15.2.1 添加Ehcache的jar包

 

​​​​​​​   5.15.2.2 配置cacheManager

 

 

 

​​​​​​​  5.15.2.3 shiro-ehcache.xml

 

​​​​​​​​​​​​​​   5.15.2.4 缓存清空

 

如果用户正常退出,缓存自动清空。

 

如果用户非正常退出,缓存自动清空。

 

如果修改了用户的权限,而用户不退出系统,修改的权限无法立即生效。

需要手动进行编程实现:

在权限修改后调用realm的clearCache方法清除缓存。

下边的代码正常开发时要放在service中调用。

在service中,权限修改后调用realm的方法。

在realm中定义clearCached方法:

 

//清除缓存

public void clearCached() {

PrincipalCollection principals = SecurityUtils.getSubject().getPrincipals();

super.clearCache(principals);

}

 

 

测试清除缓存controller方法:

 

​​​​​​​​​​​​​​ 5.16 sessionManager

 

和shiro整合后,使用shiro的session管理,shiro提供sessionDao操作 会话数据。

配置sessionManager

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值