用的Nigix  后面挂了二个Tomcat是springMVC  session存在Redis的项目

但是上线以后反应A用户添加数据,变成B用户的,网上查的方案如下:

解决方案,nginx提供proxy_hide_header的指令,可以去掉相关的响应头信息在nginx.conf文件添加以下配置:

proxy_hide_header Set-Cookie;

server {
listen ;
server_name www.abc.com; #charset koi8-r; #access_log logs/host.access.log main; location / {
proxy_pass http://www.abc.com;
proxy_hide_header Set-Cookie;
}
}

另外,由于j2ee应用可能默认在用户第一次访问时,重写链接,加上jsessionid=...,也会导致串会话,

需要在web.xml中加上:

<tracking-mode>COOKIE</tracking-mode>

  <session-config>
<session-timeout></session-timeout>
<tracking-mode>COOKIE</tracking-mode>
</session-config>

另外附加一下session-conifg配置详情

在许多情况下,都可以在Java EE中直接使用HTTP会话,不需要添加显示地配置。不过可以在部署描述符中配置它们,并且出于安全地目的也应该配置。在部署描述符中使用<session-config>标签配置会话。
样例

<session-config>
<session-timeout>30</session-timeout>
<cookie-config>
<name>JSESSIONID</name>
<domain>example.org</domain>
<path>/shop</path>
<comment>
<!-- some information -->
</comment>
<http-only>true</http-only>
<secure>false</secure>
<max-age>1800</max-age>
</cookie-config>
<tracking-mode>COOKIE</tracking-mode>
<tracking-mode>URL</tracking-mode>
<tracking-mode>SSL</tracking-mode>
</session-config>

了解会话属性组

所有<session-config>和<cookie>中的标签都是可选的,但如果使用了这些标签,那么必须按照本例中的顺序添加到部署描述符中(除了被忽略的标签)。标签<session-timeout>指定了会话在无效之前,可以保持不活跃状态的时间,以分钟为单位。如果该值小于等于0,那么会话将永远也不过期。
<tracking-mode>用于表示容器应该使用哪种技术追踪会话ID,它的合法值有:
   URL----容器将只在URL中内嵌会话ID 。不使用cookie或SSL会话ID。这种方式非常不安全。
   COOKIE -----容器将使用会话cookie追踪会话ID 。该技术非常安全。
   SSL ----容器将使用SSL会话ID作为HTTP会话ID。该方法是最安全的方式,但要求使用的所有请求都必须是HTTPS请求。
可以为<tracking-mode>配置多个值,表示容器可以使用多种策略。
只有在追踪模式中使用了COOKIE时,才可以使用<cookie-config>标签。
 通过标签<name>可以自定义会话cookie的名字。默认值为JSESSIONID
标签<domain>和<path>对应着cookie的Domain和Path特性。Web容器已经设置了正确的默认值,因此通常不需要自定义它们。
标签<comment>将在会话ID cookie中添加Comment特性,在其中可以添加任意文本。这通常用于解释cookie的目的,并告诉用户网站的隐私策略。
标签<http-only>和<secure>对应着cookie的HttpOnly的Secure特性,它们的默认值都是假
最后一个标签<max-age>指定了cookie的Max-Age特性,用于控制cookie何时过期。默认情况下,cookie没有过期日期,这意味着它将在浏览器关闭时过期。可以自定义该值,单位为秒(<session-timeout>以分钟为单位)。

最新文章

  1. php程序员绝不能违背的安全铁则
  2. java使用代理 html2canvas 截屏 将页面内容生成图片
  3. 二叉查找树 C++实现(含完整代码)
  4. WHY数学图形可视化工具(开源)
  5. [Ubuntu] Ubuntu DNS服务器配置
  6. mysql 截取字符
  7. R语言实战读书笔记1—语言介绍
  8. JavaScript网站设计实践(七)编写最后一个页面 改进表单
  9. 2014.9.15HTML
  10. WLAN和WIFI的区别
  11. C语言常用的宏
  12. javascript有用小技巧—实现分栏显示
  13. 谈CSS模块化【封装-继承-多态】
  14. VR全景智慧城市:360全景市场需要背景及其优势~
  15. MySQL innodb_table_monitor 解析
  16. .net core 2.x - docker(for windows)-linux配置及项目+SqlServer发布
  17. Ubuntu 16.04安装MySQL(5.7.18)
  18. 取消svn关联文件夹
  19. Github ——转
  20. Redis学习---基础学习[all]

热门文章

  1. 车联网APP,安全设施薄弱的山寨品
  2. C# Dictionary增加的方法
  3. Python通用函数实现数组计算
  4. SparkStreaming wordCountDemo基础案例
  5. LVM 在线扩容磁盘(ubuntu 14.04 server)
  6. 密度峰值聚类算法(DPC)
  7. Pwn-pwn-100
  8. vue阻止事件冒泡和默认事件
  9. 用一个例子说明oracle临时表,创建过程,
  10. 工具资源系列之给 windows 虚拟机装个 windows