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>
相关推荐
linmengmeng_131423 分钟前
【总结】MyBatis-Plus批量插入与清表的正确姿势
java·spring boot·mysql·mybatis
高级程序源23 分钟前
django大学生创新创业项目管理系统94923-计算机课程设计、毕业设计
javascript·vue.js·spring boot·后端·python·django·课程设计
暮雨哀尘2 小时前
JAVA基础练习(四):SpringBoot 实现简易登录功能
java·spring boot·eclipse·maven
wdfk_prog3 小时前
ROS教程10:从 gtest 到 rostest——Unit Test、Node 集成测试、rosbag 与 rqt 验证闭环
运维·缓存·docker·容器·ros
VXbishe4 小时前
【课程设计】基于SpringBoot的乡村政务服务系统的设计与实现-计算机毕设77011
javascript·vue.js·spring boot·python·php·课程设计·政务
vx_BS813306 小时前
【项目编号:project51381】Spring Boot 婚纱摄影管理系统:套餐预约、在线咨询、支付与客片展示的一站式业务实现
java·spring boot·eclipse·tomcat·mybatis
雪芽蓝域zzs6 小时前
第11节:分页查询(MyBatis 实现分页,后端最常用功能)
spring boot
计算机毕设定制辅导-无忧学长6 小时前
《基于SpringBoot的中学教师数字胜任力测评网站的设计与实现》
java·vue.js·spring boot·mysql·中学教师数字胜任力测评网站
小蒜学长6 小时前
基于Java的论坛数据可视化分析系统的设计与实现(代码+数据库+LW)
java·spring boot·后端·数据可视化·论坛系统