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一直变化。相关推荐

  1. ajax跨域时使得后台的sessionid不断地的变化,以及layui表格支持跨域的方法,java

    java+ajax跨域sessionid不断变化 由于实现一个功能,需要实现一个在过滤器中使用session的程序, 结果在前端使用ajax访问后台时,后台一直不能获取session存的值,导致了某一 ...

  2. HttpContext.Current.Session.SessionID相关问题及备忘

    今天Tony提到说我们系统中会利用如下代码来判断用户是否过期. if (string.IsNullOrEmpty(UserContext.ConnectionSessionId)) {LogUIFac ...

  3. ASP.net session 使用总结(2)

    Session又称为会话状态,是Web系统中最常用的状态,用于维护和当前浏览器实例相关的一些信息.举个例子来说,我们可以把已登录用户的用户名放在Session中,这样就能通过判断Session中的某个 ...

  4. 大型网站系统架构实践(五)深入探讨web应用高可用方案

    从上篇文章到这篇文章,中间用了一段时间准备,主要是想把东西讲透,同时希望大家给与一些批评和建议,这样我才能有所进步,也希望喜欢我文章的朋友,给个赞,这样我才能更有激情,呵呵. 由于本篇要写的内容有点多 ...

  5. web容器获取SSL指纹实现和ByPass

    前言 前段时间对SSL指纹的获取实现很感兴趣,从表面到深入再到实现让我更加深刻理解SSL设计. 本篇介绍: SSL指纹在web容器(Kestrel)下如何获取,并实现一个Middleware来很方便集 ...

  6. Weblogic Session复制策略与方式

    在Weblogic中,HttpSession Replication的方式是通过在weblogic.xml中的session- descriptor的定义persistent-store-type来实 ...

  7. [转载]手工安全测试方法修改建议

    转载自: Web安全测试(一)-手工安全测试方法&修改建议 1.XSS(Cross-Site Script)跨站脚本攻击 XSS(Cross-Site Script):跨站脚本攻击. 它指的是 ...

  8. Nginx+tomcat+memcached缓存共享session

    Nginx+tomcat+memcached缓存共享session session 的序列化方案官方推荐的有 4 种: 1. java serialization 2. msm-kryo-serial ...

  9. weblogic 12C集群环境下的session复制

    做过weblogic集群环境的人应该都清楚,要想实现session同步,必须满足两个条件:第一,在weblogic.xml里面增加session同步相关的代码:第二,所有放入session的类都要序列 ...

最新文章

  1. web前端干货:详细了解JS前端开发框架都有哪些
  2. R语言set.seed函数的意义及实战
  3. linux下文件夹的创建、复制、剪切、重命名、清空和删除命令
  4. 【组合数学】递推方程 ( 常系数线性非齐次递推方程 的 非齐次部分是 多项式 与 指数 组合方式 | 通解的四种情况 )
  5. 鞋带的超炫系法-真是门艺术[转载]
  6. c语言计算机二级改错题类型,C语言计算机二级改错题
  7. php 常用的日期函数,常用php日期函数总结
  8. 字符串格式化成时间格式_JAVA | 常用的日期/时间格式化方式
  9. jQuery10个重要问题梳理
  10. mumu模拟器android调试,如何使用网易mumu模拟器调试安卓程序?
  11. 采用大规模或超大规模集成电路的计算机,采用大规模或超大规模集成电路的计算机属于_____计算机。...
  12. IP是什么?动态IP和静态IP有什么区别?
  13. 软件测试的发展前景怎么样 做软件测试有前途吗
  14. springboot+农机装备生产车间物料配送车辆调度管理系统 毕业设计-附源码181710
  15. oracle返回0001错误,ORACLE 异常错误处理
  16. 无法连接到internet 小黄叹号长时间不消失的问题
  17. Error: `fsevents` unavailable (this watcher can only be used on Darwin)
  18. Windows设置本地DNS域名解析Hosts文件的方法
  19. android 电话表情,歪,小人打电话表情包完整版下载
  20. Python之利用PyPDF2库实现对PDF的删除和合并

热门文章

  1. android:stretchcolumns=quot;*quot;,详解Android TableLayout中stretchColumns、shrinkColumns的用法...
  2. MPEG2与MPEG4在视频编码的简单比较
  3. 【金融】财务管理公司金融 (二) 财务分析
  4. ceph存储---无法删除pool
  5. 激光雷达(一)——知名激光雷达公司
  6. Cadence OrCAD Capture复用参考设计时保持参考设计编号不变的情况下自动编号的方法
  7. java中数据类型字符串_Java数据类型-基本数据类型
  8. emui11鸿蒙更新名单,华为emui11系统什么时候可以升级_emui11更新名单
  9. 配置文件夹右键菜单的打开方式
  10. Java中的对象数组