Shiro缓存(十三)
使用缓存,可以解决每次访问请求都查数据库的问题。第一次授权后存入缓存。
缓存流程
shiro中提供了对认证信息和授权信息的缓存。shiro默认是关闭认证信息缓存的,对于授权信息的缓存shiro默认开启的。主要研究授权信息缓存,因为授权的数据量大。
用户认证通过。
该 用户第一次授权:调用realm查询数据库
该 用户第二次授权:不调用realm查询数据库,直接从缓存中取出授权信息(权限标识符)。
-------------------------------------使用ehcache缓存框架------------------------------
添加Jar包:
配置cacheManager
注入securityManager
classpath下配置shiro-ehcache.xml
到这里就可以使用缓存了,用户登进去一次之后访问系统不会每次都查询数据库查询权限
------------------------------------------------缓存清-空--------------------------
如果用户正常退出,缓存自动清空。
如果用户非正常退出,缓存自动清空。
如果修改了用户的权限,而用户不退出系统,修改的权限无法立即生效。
需要手动进行编程实现:
在权限修改后调用realm的clearCache方法清除缓存。
正常开发时要放在service中调用。
在service中,权限修改后调用realm的清空缓存方法。
在realm中定义clearCached方法:
// 清除缓存public void clearCached() {PrincipalCollection principals = SecurityUtils.getSubject().getPrincipals();super.clearCache(principals);}
测试清除缓存controller方法:
转载于:https://www.cnblogs.com/qlqwjy/p/7257653.html
Shiro缓存(十三)相关推荐
- SpringBoot + Shiro 缓存记住密码
一般来讲,记住密码的基本处理,就是把用户的一些基本信息(密码)存入浏览器的Cookie,下次登录的时候优先验证Cookie,后端做处理:以此来实现记住密码的功能!使用shiro自带的RememberM ...
- shiro缓存管理时报错java.lang.ClassCastException: com.xxx.User cannot be cast to com.xxx.User
一.异常 java.lang.ClassCastException: com.px.myshiro.domain.User cannot be cast to com.px.myshiro.domai ...
- Shiro缓存使用Redis、Ehcache、自带的MpCache实现的三种方式实例
链接:https://www.cnblogs.com/zfding/p/8536480.html 转载于:https://www.cnblogs.com/116970u/p/11169192.html
- Shiro框架:缓存、session会话、自定义FormAuthenticationFilter、RemenberMe
上篇的地址:https://blog.csdn.net/a745233700/article/details/81350191 一.Shiro缓存--cacheManager: 针对上一篇授权的时候频 ...
- Shiro使用redis作为缓存(解决shiro频繁访问Redis)
一个开源项目,实现了redis作为缓存 缓存用户的权限 和 session信息,还有两个功能没有修改,一个是用户并发登录限制,一个是用户密码错误次数.本篇中几个类 也是使用的开源项目中的类,只不过是拿 ...
- 学习Spring Boot:(十九)Shiro 中使用缓存
前言 在 shiro 中每次去拦截请求进行权限认证的时候,都会去数据库查询该用户的所有权限信息, 这个时候就是有一个问题了,因为用户的权限信息在短时间内是不可变的,每次查询出来的数据其实都是重复数据, ...
- Shiro教程_2 Shiro+SpringBoot+Mysql+Redis(缓存)
源代码 https://gitee.com/fakerlove/Shiro Shiro+SpringBoot+Mysql+Redis(缓存) 1. 添加依赖 <?xml version=&quo ...
- Shiro框架学习笔记、整合Springboot、redis缓存
本笔记基于B站UP主不良人编程 目录 1.权限的管理 1.1什么是权限管理 1.2什么是身份认证 1.3什么是授权 2.什么是Shiro 3.Shiro的核心架构 3.1 S核心内容 4.shiro中 ...
- 使用Redis缓存Shiro授权认证信息,搭建集群权限系统
应用如果做负载均衡,集群间session需要共享,如果session没有共享,用户登录系统以后session保存在登录的应用里面,其他应用里面没有session,没有登陆状态,访问会失败.下面介绍一个 ...
最新文章
- [Java基础]IO流概述和分类
- [codevs1039]数的划分
- vc中如何将一个工程的资源复制到另外一个工程?
- 连接路由器后电脑连不上网_电信光纤猫与无线路由器连接怎么设置【图文教程】...
- 当数据处理做不到实时,应该怎么办?
- ajax传递timestamp,解决ajax请求自动增加时间戳问题
- android ExpandableListView
- BatchPreparedStatementSetter,用法
- VC++多线程--进程间通信
- pjproject编译方法与相关错误解决
- 利用Eclipse的TaskList功能进行任务管理
- 机器人技术创新与实践旧版本大纲
- 芯烨 Xprinter XP-DT108A 打印机驱动
- 在Word2019中不能插入公式的解决办法
- php的入门是html5,h5自学教程:6个适合初学者的零基础html5入门自学教程推荐
- Mysql-错误处理: Found option without preceding group in config file
- MotionEvent 事件解读
- 计算机英语中poke什么意思,poke one是什么意思
- 球半足球分析,巴西甲:布拉干RB VS 博塔弗戈 7月5日
- DataFrame创建数据
热门文章
- 遗传算法(Genetic Algorithm)
- kasp技术原理_KASP基因型测定技术在各个学科的应用实践(内附官方重要资料)...
- vue修改config后怎么生效_梦幻西游 金银锦盒修改后资金怎么攥 可以考虑跑商
- gitblit无法启动服务
- Linux移植随笔:让内核支持nor flash
- tomcat启动 报tomcat org.apache.catalina.LifecycleException
- 【Flink】Flink 源码之OperatorChain
- 【FLink】Flink 1.9 升级到 1.12.4 无配置页面 无日志
- 【Elasticsearch】 海量 分词器 在线地址 与文档
- 95-30-050-java.util.ArrayList:Vector