sessionID一直变化。
1. 第一种出现是在一个项目里面这里叫A项目,需要嵌入另外一个项目这里叫B项目,通过iframe (IE会出现)
通过iframe引入 B项目 因为B项目里面有登录拦截,所以在A项目里面会请求登录一下,可是只要一请求B项目,就一直停留在请登录
调试后发现每次请求都会产生一个全新的sessionid,所以才会一直出现请重新登录的界面。问题是找到了(ps:只要可以登录,到时候通过iframe就可以引入自己需要的B项目页面了)要怎么解决呢?
百度了以后发现,IE会丢失iframe中的cookie,而session其实就是基于cookie的,客户端在第一次与服务器进行会话时,会分配给客户端sessionid保存在cookie中,然后在后面的请求中,会带上cookie, 现在IE会丢失iframe中的cookie,所以服务器会重新分配给客户端sessionid ,所以会提示一直需要登录
所以只要设置一下p3p就可以了。
P3P(Platform for Privacy Preferences)正是一种可以提供这种个人隐私保护策略,一般浏览器都支持P3P协议。P3P header允许跨域访问隐私数据,从而可以跨域set-cookie成功
我是在B项目的拦截器里面加了一个p3p协议设定的代码
HttpServletResponse res = (HttpServletResponse) ServletActionContext.getResponse();
res.setHeader("P3P","CP=CAO PSA OUR");
2.第二种是出现在外网访问的地方,第二种出现的情况是基于第一种,就是我们的A项目和B项目本来是在内网部署的,然后需要给领导看,叫网管把我们这两个项目的地址给映射到外网了。登录A项目的时候,一直提示,请重新登录。
一调试,还是一样的问题,sessionid一直在变化,那这个是什么原因呢?
后面百度得知:因为我们的A项目和B项目映射到外网以后是ip一致,然后端口不同而已,这样子会造成session冲突
IP相同认为是同一个域,接收了B的set-cookie指令,把对应的cookie内容覆盖了,其中包括sessionid,造成A的session丢失。 如果IP不同,则不会发生这个问题。IP相同的两个session对应的cookie是一样的,而不幸的是sessionID就保存在cookie中,这样先访问A,再访问B的时候,B的sessionid会覆盖A的sessionid。这个事情没办法解决,所以不能弄两个端口,要弄两个外网ip。都是cookie出现的问题,它不会区分端口,造成这多个站点不断的覆盖前面的,从而造成session的丢失
转载:http://blog.csdn.net/rendeyishi/article/details/53894643
sessionID一直变化。相关推荐
- ajax跨域时使得后台的sessionid不断地的变化,以及layui表格支持跨域的方法,java
java+ajax跨域sessionid不断变化 由于实现一个功能,需要实现一个在过滤器中使用session的程序, 结果在前端使用ajax访问后台时,后台一直不能获取session存的值,导致了某一 ...
- HttpContext.Current.Session.SessionID相关问题及备忘
今天Tony提到说我们系统中会利用如下代码来判断用户是否过期. if (string.IsNullOrEmpty(UserContext.ConnectionSessionId)) {LogUIFac ...
- ASP.net session 使用总结(2)
Session又称为会话状态,是Web系统中最常用的状态,用于维护和当前浏览器实例相关的一些信息.举个例子来说,我们可以把已登录用户的用户名放在Session中,这样就能通过判断Session中的某个 ...
- 大型网站系统架构实践(五)深入探讨web应用高可用方案
从上篇文章到这篇文章,中间用了一段时间准备,主要是想把东西讲透,同时希望大家给与一些批评和建议,这样我才能有所进步,也希望喜欢我文章的朋友,给个赞,这样我才能更有激情,呵呵. 由于本篇要写的内容有点多 ...
- web容器获取SSL指纹实现和ByPass
前言 前段时间对SSL指纹的获取实现很感兴趣,从表面到深入再到实现让我更加深刻理解SSL设计. 本篇介绍: SSL指纹在web容器(Kestrel)下如何获取,并实现一个Middleware来很方便集 ...
- Weblogic Session复制策略与方式
在Weblogic中,HttpSession Replication的方式是通过在weblogic.xml中的session- descriptor的定义persistent-store-type来实 ...
- [转载]手工安全测试方法修改建议
转载自: Web安全测试(一)-手工安全测试方法&修改建议 1.XSS(Cross-Site Script)跨站脚本攻击 XSS(Cross-Site Script):跨站脚本攻击. 它指的是 ...
- Nginx+tomcat+memcached缓存共享session
Nginx+tomcat+memcached缓存共享session session 的序列化方案官方推荐的有 4 种: 1. java serialization 2. msm-kryo-serial ...
- weblogic 12C集群环境下的session复制
做过weblogic集群环境的人应该都清楚,要想实现session同步,必须满足两个条件:第一,在weblogic.xml里面增加session同步相关的代码:第二,所有放入session的类都要序列 ...
最新文章
- web前端干货:详细了解JS前端开发框架都有哪些
- R语言set.seed函数的意义及实战
- linux下文件夹的创建、复制、剪切、重命名、清空和删除命令
- 【组合数学】递推方程 ( 常系数线性非齐次递推方程 的 非齐次部分是 多项式 与 指数 组合方式 | 通解的四种情况 )
- 鞋带的超炫系法-真是门艺术[转载]
- c语言计算机二级改错题类型,C语言计算机二级改错题
- php 常用的日期函数,常用php日期函数总结
- 字符串格式化成时间格式_JAVA | 常用的日期/时间格式化方式
- jQuery10个重要问题梳理
- mumu模拟器android调试,如何使用网易mumu模拟器调试安卓程序?
- 采用大规模或超大规模集成电路的计算机,采用大规模或超大规模集成电路的计算机属于_____计算机。...
- IP是什么?动态IP和静态IP有什么区别?
- 软件测试的发展前景怎么样 做软件测试有前途吗
- springboot+农机装备生产车间物料配送车辆调度管理系统 毕业设计-附源码181710
- oracle返回0001错误,ORACLE 异常错误处理
- 无法连接到internet 小黄叹号长时间不消失的问题
- Error: `fsevents` unavailable (this watcher can only be used on Darwin)
- Windows设置本地DNS域名解析Hosts文件的方法
- android 电话表情,歪,小人打电话表情包完整版下载
- Python之利用PyPDF2库实现对PDF的删除和合并
热门文章
- android:stretchcolumns=quot;*quot;,详解Android TableLayout中stretchColumns、shrinkColumns的用法...
- MPEG2与MPEG4在视频编码的简单比较
- 【金融】财务管理公司金融 (二) 财务分析
- ceph存储---无法删除pool
- 激光雷达(一)——知名激光雷达公司
- Cadence OrCAD Capture复用参考设计时保持参考设计编号不变的情况下自动编号的方法
- java中数据类型字符串_Java数据类型-基本数据类型
- emui11鸿蒙更新名单,华为emui11系统什么时候可以升级_emui11更新名单
- 配置文件夹右键菜单的打开方式
- Java中的对象数组