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>
相关推荐
掉鱼的猫12 小时前
Spring Boot → Solon 注解迁移实战指南:一张对照表说清楚
java·spring boot
人活一口气1 天前
Spring Boot与AIGC的完美结合:从零搭建智能内容生成平台
java·spring boot·aigc
小七-七牛开发者3 天前
TokenPilot:让 LLM Agent 长会话成本降 60%+ 的上下文管理
缓存·agent·token·context·上下文·推理成本
java小白小4 天前
SpringBoot(01): 初识SpringBoot,从Spring的痛点说起
spring boot
用户3169353811834 天前
如何从零编写一个 Spring Boot Starter
spring boot
程序员晓琪5 天前
约定大于配置:基于 Java 包名自动生成 API 版本路由的最佳实践
java·spring boot·后端
Flittly5 天前
【AgentScope Java新手村系列】(11)中断与恢复
java·spring boot·spring
用户3521802454756 天前
🎆从 Prompt 到 Skill:让 Spring AI Agent 学会"装新技能"
人工智能·spring boot·ai编程
用户3521802454759 天前
当 Prompt 学会"热更新":Spring Boot × Nacos3 AI 实战
java·spring boot·ai编程
昵称为空C9 天前
手撸一个动态 SQL 执行引擎:不重启服务,在线增删改查任意数据库
spring boot·后端