XX系统登录之后,偶尔在用户那会出现这个现象:
登录的逻辑是这样的:
登陆主
界面之后,在主界面html执行到最后的时候,使用
windows.open打开一个弹出窗口,去
服务器取一些需要的
数据。
但是偶尔用户那会出现弹出窗口又定位到登陆窗口了(
summer中使用filter对请求过滤,发现没有登陆的话会重新定位到登陆窗口)。
这里明明是的刚登陆的程序,却出现没有登陆的现象。。这个现象在用户那一直就存在,一直也没找到原因。
今天在和三期应服推广人员的沟通中无意了解到,用户习惯使用给登陆界面建立一个桌面快捷方式,一般操作如下:
在ie地址栏输入“http://localhost:8080/spxt”,这个时候请求完成之后定位到了登陆
页面,但是ie地址栏已经变成
“http://localhost:8080/spxt/common/summer/jsp/login/register03.jsp;jsessionid=CA0CA7E455535994E523B01357B42214”
此时直接在这个ie窗口登陆是没有
问题的。而用户一般都是在这个页面点右键,选择创建快捷方式,
这个时候就有一个问题,用户的快捷方式超
链接实际上指向的是后面那个带有jsessionid的很长很长的url。
如果此时从桌面点击这个超链接的快捷方式打开ie进行登陆,就很容易复现文章开始的那个截图现象了,如果我修改快捷方式属性,把超链接的
sessionid去掉就没有问题了。(这里描述不是很准确,比如重启一次tomcat的话就又不会复现了)。
后来在后台打印每次使用的sessionid,发现如果从快捷方式登陆的话,真正的登录session就是jsessionid所代表的那个session,而后来ajax
请求的是和服务器新建了连接,发现session没有登陆信息就定位到登陆页面了。
这里在服务器端“可能”是产生两个session的概念:一个是本次真正登录的session;另外是一个空的session。而在ajax异步请求的时候,
实际上用的就是后面这个空的session,这样发现没有登陆就重新定位到登陆页面了?
后面原因的分析完全是自己的猜测,具体望大家指教一下:)
解决问题可以这样:1、帮用户把那个快捷方式的jsessionid去掉。
2、写一个filter,对于是登陆请求的,把jsessionid去掉。
ps:以上问题对于收藏夹存在同样问题。
看了帖子终于明白jsessionid是怎么来的了~多谢
在struts的org.apache.struts.action.RequestProcessor.processForwardConfig()中找到了如下代码:
response.sendRedirect(response.encodeRedirectURL(uri));
不过感觉一般情况还是不要去掉jsessionid比较好,对于特殊情况的需要特殊去掉,基本还是利大于弊。
分享到:
相关推荐
NULL 博文链接:https://mysun.iteye.com/blog/413836
android获取jsessionId和发送jsessionId
tomcat修改jsessionid在cookie中的名称
重定义URL 使其直接进去网页 不用登录 用于:邮件链接直接进入网站
Set-Cookie: JSESSIONID=8AB51DC4244907FD9EBB063C7FD73CBA; Path=/; HttpOnly 解决此类cookie暴露项目路径问题
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.... * LIABLE FOR ANY DIRECT, ...
经过资料查找,发现问题是因为:IP相同认为是同一个域,接收了B的set-cookie指令,把对应的cookie内容覆盖了,其中包括jsessionid,造成A的session丢失。 如果IP不同,则不会发生这个问题。IP相同的两个session对应的...
之前上传了一个通过Flash实现多...方法二:在application(ServletContext)里保存一个session管理器HashMap:sessionId---sessionRef,这样可以在所有的servlet/jsp里调用,这需要在url里将sessionId以参数形式传递,如...
IFrame中Session丢失的解决办法
一.服务器端获取Session对象依赖于客户端携带的Cookie中的JSESSIONID数据。...在 Session1Servlet中,使用response.encodeURL(url) 对超链接路径拼接 session的唯一标识 // 当点击 的时候跳转到 sess
VMware Tanzu发布安全公告,公布了一个存在于Spring Framework中的反射型文件下载(Reflected File Download,RFD)漏洞CVE-2020-5421。CVE-2020-5421 可通过jsessionid路径参数,绕过防御RFD攻击的保护。先前针对RFD...
s2-013 实战 鸡肋 (要不然这工具也不会丢出来了 最好你自己打个环境来测一下 免得你以为工具不能用) 触发条件 1 s2 架构 2 使用了s2的 a标签 3 includeParams=all <s:a includeParams="all">k8team 在ie下看到的...
一个基于vitamio的视频播放器,自己的毕设作品。实现本地播放,和网络视频播放。还有本地音乐播放功能
上某培训班的servlet笔记 Session 功能的实现依赖cookie URL 重写: 就是把原来送往客户端页面中的所有URL,重新编写. 怎么重新编写 String newURL=... session id 不再通过请求头中传送,而是直接放在URL中
避免可能会绕过CVE-2015-5211对RFD攻击的保护,具体取决于通过使用jsessionid路径参数使用的浏览器。
Nginx Tomcat 集群的Session 复制,解决了,集群情况下的session复制问题。
获得请求头的各种参数信息jsp代码: ...获取接受客户提交信息的页面: /004.jsp 接受客户提交信息的长度: -1 ...获取头文件中指定头名字的全部值的一个枚举: JSESSIONID=7278C051AADA7370A6DB7492CDD13984
1、vue开发后台管理项目,登录后,请求数据每次session都不一致,后台返回未登录,处理方法打开main.js设置: // The Vue build version to load with the `import` command // (runtime-only or standalone) has ...
一、属性说明: 1 secure属性 ...也就是说两个属性,并不能解决cookie在本机出现的信息泄漏的问题(FireFox的插件FireBug能直接看到cookie的相关信息)。 二、实例 项目架构环境:jsp+servlet+applet
当客户端首次请求访问服务器时,服务器先在客户端存放包含该客户的相关信息的Cookie,以后客户端每次请求访问服务器时,都会在HTTP请求数据中包含Cookie,服务器解析HTTP请求中的Cookie,就能由此获得关于客户的相关...