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>
相关推荐
北城以北8888几秒前
SpringBoot--Redis基础知识
java·spring boot·redis·后端·intellij-idea
橘子1326 分钟前
Linux线程——一些概念(七)
java·redis·缓存
Alsn8631 分钟前
28.IDEA 专业版创建 Spring Boot 项目并打包为 jar 运行
spring boot·intellij-idea·jar
无心水43 分钟前
爆款实战!Vue3+Spring Boot+MySQL实现电商商品自动分类系统(含三级类目管理+规则兜底)
spring boot·mysql·分类·vue3商品分类·spring boot电商系统·三级类目管理·商品自动分类
qq_12498707531 小时前
基于springboot的幼儿园家校联动小程序的设计与实现(源码+论文+部署+安装)
java·spring boot·后端·spring·微信小程序·小程序
后端小张1 小时前
【Java 进阶】深入理解Redis:从基础应用到进阶实践全解析
java·开发语言·数据库·spring boot·redis·spring·缓存
野生技术架构师1 小时前
SpringBoot+Elasticsearch实现高效全文搜索
spring boot·elasticsearch·jenkins
陌路202 小时前
redis 发布订阅功能
数据库·redis·缓存
Angletank2 小时前
SpringBoot中ORM组件通过JAP组件的使用
spring boot·后端·orm·jpa
白宇横流学长2 小时前
基于SpringBoot实现的零食销售商城设计与实现【源码+文档】
java·spring boot·后端