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>
相关推荐
致微2 小时前
Vue项目 bug 解决
前端·vue.js·bug
hxung4 小时前
springboot项目中常用的工具类和api
数据库·spring boot·后端
唐人街都是苦瓜脸4 小时前
SpringBoot的简单介绍
java·spring boot·后端
菜鸟起航ing4 小时前
【Java面试系列】Spring Boot微服务架构下的分布式事务处理与Seata框架实现原理详解 - 3-5年Java开发必备知识
java·spring boot·微服务·seata·分布式事务
xq5148634 小时前
Spring Boot 自动装配原理
java·spring boot·后端
网安小陈4 小时前
【网安】处理项目中的一些常见漏洞bug(java相关)
java·开发语言·数据库·安全·web安全·网络安全·bug
呆萌很4 小时前
基于 Spring Boot 瑞吉外卖系统开发(一)
spring boot
花心蝴蝶.5 小时前
初识Redis
数据库·redis·缓存
七月的尾巴←_←6 小时前
Java8+Spring Boot + Vue + Langchain4j 实现阿里云百炼平台 AI 流式对话对接
vue.js·spring boot·阿里云
小杨4047 小时前
springboot框架项目实践应用十六(nacos管理控制台)
spring boot·后端·spring cloud