springboot +shiro 缓存用户退出bug

springboot +shiro 设置缓存后,自定义了sessionid,后加上了静态资源的版本控制,导致一个用户请求每一次缓存中就多一个缓存,原因: 在拦截器中设置了:

java 复制代码
HttpSession sessionInstance = request.getSession();

String staticVersion = String.valueOf(SystemConfig.SYSTEMINITTIME);

sessionInstance.setAttribute("version", staticVersion);

导致shiro管理器中缓存被莫名的清空了。使sissionid无限插入缓存中,用户就会被踢,强制下先,

解决办法一:将静态资源session.version的方式改为获取bean的方式,即将

javascript 复制代码
<script th:src="@{/global/js/core.min.js(v=${session.version})}"></script>

改为:

javascript 复制代码
<script th:src="@{/global/vendor/waves/waves.min.js(v=${@systemConfig.SYSTEMINITTIME})}"></script>

注意:此方法先将SystemConfig注册到springboot项目中,即注册这个bean:

java 复制代码
@Bean(name = "systemConfig")

public SystemConfig systemConfig(){

return new SystemConfig();

}

解决方法二:用request.setAttribute("version", staticVersion);html为:

javascript 复制代码
<script th:src="@{/global/vendor/waves/waves.min.js(v=${#request.getAttribute('session')})}"></script>
相关推荐
愿你天黑有灯下雨有伞1 分钟前
Spring Boot集成RabbitMQ终极指南:从配置到高级消息处理
spring boot·rabbitmq·java-rabbitmq
GEM的左耳返32 分钟前
Java面试全方位解析:从基础到AI的技术交锋
spring boot·微服务·java面试·互联网大厂·rag技术·ai面试·java技术栈
小王子102441 分钟前
Django缓存机制详解:从配置到实战应用
redis·缓存·django·rbac
Antonio9151 小时前
【Redis】Redis 数据存储原理和结构
数据库·redis·缓存
GEM的左耳返2 小时前
Java面试实战:从基础到架构的全方位技术交锋
spring boot·微服务·云原生·java面试·技术解析·ai集成
problc3 小时前
大模型API和秘钥获取地址
数据库·redis·缓存
Rover.x3 小时前
内存泄漏问题排查
java·linux·服务器·缓存
midsummer_woo3 小时前
基于spring boot的纺织品企业财务管理系统(源码+论文)
java·spring boot·后端
zc-code4 小时前
Spring Boot + @RefreshScope:动态刷新配置的终极指南
java·spring boot·后端
木宇(记得热爱生活)4 小时前
Qt GUI缓存实现
开发语言·qt·缓存