登陆后会经常提示登陆超时,重新登陆

article/2025/11/11 16:05:38

问题:项目在部署到服务器后,一登录,就会跳出系统,提示登录超时。

1.用户未登录 2.用户登录在线超时 3.session中记录的用户id和动作传递的用户id不同(非本人操作)

解决:创建sessionListener,通过监听来确定session的创建和销毁。

发现:别人访问本机的项目没有问题,访问非本机的项目时,出现了bug,session第一次访问创建了一个,然后销毁再创建一个新的,和另外一个session。

通过sessionListener,打印日志发现一次访问,创建了3个session,这样就导致了session不一致的原因,通过注释掉一个拦截器后,session顺利变成1个create,1个destroy,再一个create。

  上网查看了tomcat下session丢失的原因,有以下几种:1.跨域访问。2.使用多台tomcat服务器进行负载均衡,未进行session复制操作导致session丢失。3.未对session进行持久化操作。逐一分析如下:

通过查看日志发现,被拦截时session中的内容为空,故被拦截跳转回登录页面。但是在这之间,并无程序如session.invalidate()让session失效的操作,且session并没有超时,故基本可判定是session丢失的情况。

 上网查看了tomcat下session丢失的原因,有以下几种:1.跨域访问。2.使用多台tomcat服务器进行负载均衡,未进行session复制操作导致session丢失。3.未对session进行持久化操作。逐一分析如下:

    1.跨域访问。所谓跨域访问,即如果在A网站中,我们希望用Ajax来获得B网站中的特定内容,如果A网站与B网站不在同一个域当中,则会出现跨域访问的情况。对于多个子系统的项目而言,多次通过浏览器进行跨域访问,会引起session不一致和session丢失的情况。解决跨域而导致的session丢失的情况处理参考《跨域,跨服务器调用的时候session丢失的问题总结》。由于本项目未采用跨域访问,故排除这种可能性。

     2.使用多台tomcat服务器实现负载均衡导致的session丢失。当使用tomcat服务器进行负载均衡时,如果不对session共享,会出现session唯一的情况,同样会导致session丢失。这就需要各服务器做到session同步,也就是所谓的session复制。Session复制,指的是集群环境下,多台应用服务器之间同步session,确保session保持一致,同时保持session中的内容一致,对外透明,就像一台应用服务器一样。对于这种情况的避免session丢失的处理参考《Apache+Tomcat负载均衡 session复制》。在项目当中,并未使用多台tomcat服务器实现负载均衡,故同样可以排除这种情况导致的session丢失。

     3.session未做持久化操作导致丢失。在客户端每个用户的Session对象存在Servlet容器中,如果Tomcat服务器重起/当机的话该session就会丢失,而客户端的操作应为session的丢失而造成数据丢失,而且当前用户访问量巨大,每个用户的Session里存放大量的数据的话,那么就很占用服务器大量的内存,从而是服务器的性能受到影响。因此,需要对session进行持久化操作。持久化操作的方法参见文章《tomcat session持久化》。在本项目中,session丢失的情况是出现在项目运行的过程中,而不是tomcat重启的时候,因此,可以排除是由于没有做持久化操作而导致的session丢失。

 经过上述分析,排除了可能导致session丢失的几种主要情况。这再一次让我感觉无计可施。而项目验收时频繁出现用户登出系统的情况又让这个问题的解决迫在眉睫。正当一筹莫展的时候,从一次偶尔的交谈中得知,服务器在搭建的过程中,并非直接使用tomcat,而是使用了apache作为代理服务器,转发请求至后台的tomcat服务器,会不会是由于代理的原因导致的呢?通过查阅资料发现,tomcat中的应用contex路径为 /portal,而外部访问context路径为 /,JSESSIONID的值从浏览器经过反向代理到达tomcat时,由于cookie内外路径不一致,导致tomcat每次重写设置JSESSIONID的值,导致session丢失的现象。在apache的000-default.conf中需要通过ProxyPassReverseCookiePath指令做一个路径映射,如下图:

以上是对应的可能性。

引用文章:https://blog.csdn.net/dinghaoseu/article/details/50499600


http://chatgpt.dhexx.cn/article/JxJfSCLw.shtml

相关文章

AI人工智能之科研论文搜索集锦

AI人工智能之科研论文搜索集锦 前言2023.06.19 补充了在Arxiv下载论文的Latex文件的方法,见第3节的Example 2!!! 1. Google学术搜索2. Google搜索3. Arxiv#Example 1:#Example 2: 4. Github#Example&#x…

中科院学术专用版GPT Academic项目实现

【写在最前】要完成GPT 学术优化 (GPT Academic)这个项目需要一些值得注意的地方: chatGPT账户有余额且未过期!!!有代理工具(类似Clash) 1、代码克隆 https://github.com/binary-husky/gpt_academic 根据…

【3】SCI易中期刊推荐——人工智能领域(中科院1区)

💖💖>>>加勒比海带,QQ2479200884<<<💖💖 🍀🍀>>>【YOLO魔法搭配&论文投稿咨询】<<<🍀🍀 ✨✨>>>学习交流 | 温澜潮生 | 合作共赢 | 共同进步<<<✨✨ 📚📚>>>人工智能 | 计算机视觉…

【22】核心易中期刊推荐——人工智能与识别图像处理与应用

🚀🚀🚀NEW!!!核心易中期刊推荐栏目来啦 ~ 📚🍀 核心期刊在国内的应用范围非常广,核心期刊发表论文是国内很多作者晋升的硬性要求,并且在国内属于顶尖论文发表,具有很高的学术价值。在中文核心目录体系中,权威代表有CSSCI、CSCD和北大核心。其中,中文期刊的数…

2021年最新中科院人工智能领域顶级期刊及顶级会议

以上是人工智能 计算机 科学 类 顶级期刊。 《 如果我的分享对您有用&#xff0c;欢迎点赞和收藏》。谢谢各位客官 下面是 国际顶级会议 A类 CVPR: Computer Vision and Pattern Recognition (240) NIPS&#xff1a;Advances in Neural Information Processing (169) ICML&…

一、尚医通上传医院接口

文章目录 一、上传医院接口1、集成mongodb1.1添加依赖1.2添加配置 2、添加医院基础类2.1 添加model2.2 添加Repository2.3 添加service接口及实现类2.4 添加controller 3、上传医院3.1 接口数据分析3.2 添加service接口3.3 添加repository接口3.4 添加controller接口3.5 添加帮…

安科瑞AWT100无线数据采集通信终端

安科瑞AWT100无线数据采集通信终端 安科瑞 崔丽洁

佳信客服全渠道接入手册

包括网页、微信、app、微博、邮箱、字节小程序等几种常见渠道接入配置&#xff0c;今天手把手教你如何配置。 网页渠道插入配置和使用 企业可以通过在web网站或微官网植入网页插件代码&#xff0c;让您的客户可以通过web网站和微官网的“联系客服”按钮&#xff0c;与企业客服…

NC与单一窗口数据对接丨外贸软件

在国际贸易通关过程中&#xff0c;所涉及相关部门的信息管理&#xff0c;主要是以数字化流程系统为主&#xff0c;让每个部门业务的申请、办理、回复采用电子化和互联网化。由于每个环节部分的数据壁垒未打通&#xff0c;数据无法协同共享&#xff0c;导致在口岸通关的过程中&a…

小满OKKICRM和畅捷通T+接口打通对接实战

数据源平台:小满OKKICRM 小满科技一直以“人工智能大数据”为核心驱动力&#xff0c;并融入多年深耕CRM行业的经验&#xff0c;为外贸客户提供多场景的解决方案。凭借卓越的服务水准&#xff0c;小满科技先后斩获“年度最佳外贸SaaS服务商”、“2019杰出品牌形象奖”、“2020最…

【解决方案】HIKSDK/大华SDK/Ehome协议视频智能分析平台EasyCVR在文物古建筑智慧防火场景的应用

一、背景分析 多年来&#xff0c;传统的城市消防远程监控技术在社会消防安全管理工作中发挥了重要的作用&#xff0c;但随着国家消防法律法规的日趋健全和消防科技的日新月异&#xff0c;对现行城市消防远程监控建设提出了新的更高要求——“智慧消防”。 为规范文物古建筑安…

最新码支付源码+微信/支付宝/qq/秒挂支付/uid+三网监控+易支付H5接口 +聚合免签系统

&#xff08;码支付不支持虚拟主机&#xff09;强烈建议使用&#xff1a;[服务器]&#xff08;标准版、系统选Centos、其他配置默认即可后续可升级配置&#xff09;&#xff0c;刚入门选择最低配置或者活动机器均可。服务器环境要求的配置&#xff1a;PHP 7.3 Mysql 5.7 Sup…

2023微信支付对接全流程

简单说一下微信支付的几种类型的应用场景以及前提条件 官方文档&#xff1a;https://pay.weixin.qq.com/wiki/doc/apiv3/index.shtml 前提条件&#xff1a; 1.需要一个载体公众号或者小程序&#xff0c;公众号要是服务号不是订阅号。 2.小程序和公众号支付都要认证&#xff0…

java okhttp 线程池_基于OkHttp实现Java多线程下载方案分析与实现

说明 这篇文章主要是为了演示OkHttp和多线程的简单运用&#xff0c;利用多线程和HTTP断点续传的特性实现多线程下载。总体分为三种实现发难&#xff0c;并且实现了这三种方案。这里先说明&#xff0c;这只是一个Demo程序&#xff0c;为了快速实现功能&#xff0c;所以没有太多设…

抖音短视频seo矩阵系统源码开发搭建分享

一、 什么是账号矩阵&#xff1f; 抖音短视频seo矩阵系统源码开发搭建分享是通过不同平台不同账号之间建立联系&#xff0c;通过将同一品牌下不同平台不同账号的粉丝流量进行账号互通&#xff0c;根据平台不同的规则及内容&#xff0c;来输出企业及品牌信息&#xff0c;通过矩…

ChatGPT | 分割Word文字及表格,优化文本分析

知识库读取Word内容时&#xff0c;由于embedding切片操作&#xff0c;可能会出现表格被分割成多个切片的情况。这种切片方式可能导致“列名栏”和“内容栏”之间的Y轴关系链断裂&#xff0c;从而无法准确地确定每一列的数据对应关系&#xff0c;从而使得无法准确知道每一列的数…

有效利用数学学习资源,提高学习效率!

数学作为一门学科&#xff0c;具有重要的理论和实践应用价值&#xff0c;是许多高中生和大学生必修的课程。然而&#xff0c;许多学生在学习数学时会遇到各种各样的问题&#xff0c;例如难以理解概念、难以解决问题、学习效率低等。为了提高数学学习效率&#xff0c;学生可以利…

羽毛球知识

最近在网上看羽毛球拍&#xff0c;被球拍的名字搞得云里雾里&#xff0c;刚好趁机一边学习一边整理一下羽毛球的相关小知识 关于厂商 主要三大厂商 VICTOR 胜利(蓝厂)&#xff0c;YONEX尤尼克斯(绿厂),李宁(红厂) 关于选拍 球拍的选择可以参考中羽在线的这篇帖子 //不让放…

2022生成模型进展有多快?新论文盘点9类生成模型代表作

萧箫 发自 凹非寺量子位 | 公众号 QbitAI ChatGPT的出现&#xff0c;彻底将生成AI推向爆发。 但别忘了&#xff0c;AI生成模型可不止ChatGPT一个&#xff0c;光是基于文本输入的就有7种—— 图像、视频、代码、3D模型、音频、文本、科学知识…… 尤其2022年&#xff0c;效果好的…

大模型技术发展概述 - (一)

文本内容参考论文《A Survey of Large Language Models》 论文标题&#xff1a;A Survey of Large Language Models 论文链接&#xff1a;https://arxiv.org/pdf/2303.18223v10.pdf 因为这个论文内容太多了&#xff0c;所以我的文章分成几篇来展示&#xff01;目录如下&#x…