描述:

客户项目通过spring-session-redis实现分布式会话共享,部署至 TongWeb7 企业版后,偶发会话失效,用户被强制跳转回登录页面

排查:

抓包与日志观测发现:异常请求(如错误页、异常跳转请求)会优先使用 TongWeb 容器原生StandardSession,携带容器默认JSESSIONID.

解决:

项目以 WAR 包外置部署至 TongWeb 时,除基础SpringBootServletInitializer容器启动适配类外,需新增会话初始化类接管容器原生 Session,如下图所示:

import org.springframework.session.web.context.AbstractHttpSessionApplicationInitializer;

// 无需任何方法实现,父类自动执行注册逻辑
public class SessionInitializer extends AbstractHttpSessionApplicationInitializer {}

说明:该类会在容器启动阶段优先注册 Spring 会话过滤器,强制 TongWeb 全部请求走 Redis 分布式会话,彻底接管容器原生HttpSession,规避两套会话并存冲突

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐