shiro-redis

集群部署的落地实现之spring shiro redis 架构 第四篇 shiro session ShiroSessionManager 优化 频繁访问redis

点点圈 提交于 2020-08-20 08:25:06
本篇文章主要解决的问题是shiro session使用redis缓存存储后,由于shiro session的设计特点,导致浏览器端请求会非常频繁访问redis,这样就造成资源的浪费,以及系统性能的下降。主要体现在来 自浏览器的一个请求需要访问这个dao的update方法二十多次。这个是shiro框架本身session设计的原因造成的,每次请求过来都需要更新session内部的时间戳。这个需要对浏览器的请求做针对性的优化,也就是把session存放在request请求里面,这样访问的时候先访问request,极大减少直接访问redis次数。 import java.io.Serializable; import javax.servlet.ServletRequest; import javax.servlet.http.HttpServletRequest; import org.apache.shiro.session.Session; import org.apache.shiro.session.UnknownSessionException; import org.apache.shiro.session.mgt.SessionKey; import org.apache.shiro.web.session.mgt.DefaultWebSessionManager;

SpringBoot系列: SpringBoot Web项目中使用Shiro

↘锁芯ラ 提交于 2020-04-26 19:05:39
注意点有: 1. 不要启用 spring-boot-devtools, 如果启用 devtools 后, 不管是热启动还是手工重启, devtools总是试图重新恢复之前的session数据, 很有可能会导致session混乱. 2. 在配置 Shiro 的filterChainDefinitionMap时, 登陆的 url 也要使用 authc filter. 3. 自定义 Realm 类的 doGetAuthenticationInfo() 方法, 仅生成 AuthenticationInfo 对象, 不需要做密码验证. 密码验证步骤是在 Realm 父类的 assertCredentialsMatch() 方法完成. 这篇仅仅列了一些有关shiro不错的文章 ============================ 生产环境代码参考 ============================ 补习系列(6)- springboot 整合 shiro 一指禅 https://www.cnblogs.com/littleatp/p/9471950.html SpringBoot 整合 Redis 实现 Shiro 权限控制的集群 Session 共享 http://itechor.top/solo/articles/2018/11/09/1541749859183.html