- 浏览: 98504 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (112)
- java (112)
- [书目20081126]转型:用对策略,做对事 (1)
- [转]c# winform 绘制圆角窗体 (1)
- Idiot's Note Four: 循环中continue和“if ”的细节注意 (1)
- ActiveMQ中消息游标 (1)
- http://sourceforge.net 打不开的解决办法 (1)
- 常用命令收集(系统设置) (1)
- jsessionid 问题分析 (1)
- JSP 页面不能解析EL表达式。 (1)
- SQLServer的备份语句 (1)
- Struts2 jQuery Plugin Showcase 学习笔记 (1)
- Razor view engine 基础语法 (1)
- 44个 灵感来自于“大自然”的网站设计(上) (1)
- 菜单多国语言化遇到的问题 (1)
- Mysql查看当前连接数 (1)
- Libgdx之旅-----LuaTutorial (1)
- 一些经典的BLOG (1)
- How do I prevent builds between multiple changes to the workspace? (1)
- RAP常用技巧 (1)
- Android常用类库包介绍 (1)
- 如何让新人尽快融入项目团队 (1)
- SharpDevelop (1)
- 生成PDF文件的Java库iText (1)
- 将Java包程序转换为Exe可执行文件 (1)
- hibernate hql 多个一查询 (1)
- 将视频放到网页上续 RM VS ASF (1)
- 程序员如何自我超越 (1)
- j2me实现手机通讯录的备份与还原 (1)
- Websphere 命令行部署与管理应用 (1)
- StackOverflow的404错误页面 (1)
- WM_CONCAT 函數的用法 (1)
- MyEclipse打jar包 (1)
- 通用分頁存儲過程. (1)
- 采用并行计算发挥多核CPU的威力 (1)
- mxgraph 之 增加对齐标线 等对graph的相关设置 (1)
- EJB中的@ejb注解 (1)
- UTMP分析 (1)
- .nET2.0小技巧 (1)
- spring security 和 struts 的filter顺序问题 (1)
- Session和Cookie的深入研究 (1)
最新评论
-
zhengyong7232:
<init-param> <param- ...
spring编码过滤器 -
emilyzhanghong:
你好:
请教下.你这里说的 B的war包中包含X的class ...
Maven中如何配WAR依赖WAR和JAR的多模块项目结构 -
jiangcs520:
好赞
程序员如何自我超越 -
wodentt:
看不懂....
将Java包程序转换为Exe可执行文件 -
student_stu:
...
jsessionid 问题分析
jsessionid 问题分析
Posted on 2011-09-02 16:33 疯狂 阅读(1547) 评论(2) 编辑 收藏
这几天为了测试人员测试,就把一个tomcat应用整个拷贝了一份,改了下端口一个8080,一个8081,上下文也一样,结果出问题了:页面登陆验证码死活验证不过去,最后跟踪了下后台发现,登陆界面请求时生成验证码并将验证码放入session里面,这个session的id和验证时从获取验证码的session的的id不一样,那验证的时候由于session不一样,获取验证码肯定为空,最终验证失败。
根据一般的流程,浏览器首次发出请求的时候服务端会在response信息里面给出:
Set-Cookie: JSESSIONID=0000yLsny8JFy4nLxDelrrq9Lx1:-1; Path=/test (这里假设服务器生成的sessionid为0000yLsny8JFy4nLxDelrrq9Lx1,应用上下文为test)要求浏览器设置浏览器会话cookie,下次请求的时候在request头信息里面附带:
Cookie: JSESSIONID=0000yLsny8JFy4nLxDelrrq9Lx1:-1 服务器以此来判断是否统一客户端发出的请求。
而跟踪我们的应用发现第一次浏览器发出请求后,服务端response信息为:
Set-CookieJSESSIONID=C7A2EB23B029226E6279448D1CFD6207; Path=/test
第二次发出请求的时候整个会话信息为:
响应头信息原始头信息:
Set-Cookie: JSESSIONID=AD54301B809A7D7BBF909F10B4C838AA; Path=/test
请求头信息原始头信息:
Cookie JSESSIONID=4DF629829C6E18953117AB66777ED2CA
浏览器虽然第二次请求带过去的JSESSIONID并不是第一次设置(C7A2EB23B029226E6279448D1CFD6207),并且服务端又发出了新的Set-Cookie命令和JSESSIONID。
最终才想起还有另一个tomcat应用的copy修改了本次的cookie session 里面的JSESSIONID值,
正好跟踪到信息为:
Set-Cookie JSESSIONID=4DF629829C6E18953117AB66777ED2CA; Path=/test (这一次请求影响)
Cookie JSESSIONID=C7A2EB23B029226E6279448D1CFD6207(原应用的JSESSIONID)
通过查看火狐浏览器里面两个应用在同一个主机(localhost)下面只存了一份名为JSESSIONID的cookie值,结果导致互相影响。
现在tomcat下的一个办法就是两个应用其中一个修改下上下文,例如一个是test,另一个是test1 ,这样由于cookie的路径(path)在同一个级别下名称不一样将不会互相影响。
浏览器判断cookie的应该根据主机,路径,名称来判断,通常根据目录层级不同作用域也不同,例如:
比如浏览器现有三个cookie, path分别为 "/", "/test", "/test/mgr" 则请求 "/test/other/action.do"时,第1个cookie和第2个cookie会被发给服务端,第三个不会。
此时浏览器请求头信息里面的session有可能为多个,但名称都一样如:
Cookie: JSESSIONID=8810E51861891187708C53A1805951A1;JSESSIONID=0000yLsny8JFy4nLxDelrrq9Lx1:-1
这个时候也是出现问题的时候,服务器有可能出现jsessionid不一致的情况,
一个明显的问题在websphere下由于默认的cookie session的path为/ 如图:
这个时候如果同一台主机或者ip下部署其他应用,如果都是用JSESSIONID作为key的话,由于/的作用域大,其他的应用将受到影响,首先websphere自己会受到影响,经过测试websphere的每一次请求如下:
Set-Cookie: JSESSIONID=0000yLsny8JFy4nLxDelrrq9Lx1:-1; Path=/
然后后面多次出现信息如下:
相应
Set-Cookie: JSESSIONID= 0000IsxSqg75ELW4C0Y3YCaRgab:-1; Path=/
请求
Cookie:
JSESSIONID=8810E51861891187708C53A1805951A1(这个为tomcat的);JSESSIONID=0000yLsny8JFy4nLxDelrrq9Lx1:-1
遇到这种异常情况,请大家从cookie的domain,path,作用域的知识分析下,然后就应该能解决这些问题了,适当的修改下cookie的key名称,和path。
这里给看下百度的明显和其他的不一样用的是(baiduid作为key):
~完~
发表评论
-
Session和Cookie的深入研究
2012-02-08 14:42 798Session和Cookie的深入研究 作者:孙鑫 ... -
spring security 和 struts 的filter顺序问题
2012-02-08 12:03 1038使用spring security3 和struts2 ... -
.nET2.0小技巧
2012-02-04 15:09 763<div class="pos ... -
UTMP分析
2012-02-03 10:34 830[size=small;]分析引擎包含:<br& ... -
EJB中的@ejb注解
2012-02-02 12:24 957(本文是转载其他人的技术文章,觉得说得挺浅显易懂,特借 ... -
mxgraph 之 增加对齐标线 等对graph的相关设置
2012-02-02 11:49 1627graph.setConnectable(tru ... -
采用并行计算发挥多核CPU的威力
2012-02-01 09:24 737<p><strong>< ... -
通用分頁存儲過程.
2012-01-11 13:29 799MSSQL中要想分頁只能借助 row_number() ... -
MyEclipse打jar包
2011-12-28 14:43 976<span style="font-f ... -
WM_CONCAT 函數的用法
2011-12-28 12:09 942<span style="font-f ... -
StackOverflow的404错误页面
2011-12-21 17:28 864<span style="color: ... -
Websphere 命令行部署与管理应用
2011-12-21 11:44 950<span style="color: ... -
j2me实现手机通讯录的备份与还原
2011-12-20 13:44 966现在用的手机用了4年半了,其中摔过n次,但是从没坏过, ... -
程序员如何自我超越
2011-12-19 13:24 635<span style="font-f ... -
将视频放到网页上续 RM VS ASF
2011-12-17 15:59 892发现网页上包含RM视频文件的一个致命弱点,那就是必须将 ... -
hibernate hql 多个一查询
2011-12-15 16:49 945Session s=sessionFactory.ge ... -
将Java包程序转换为Exe可执行文件
2011-12-14 10:39 839<p class="MsoNorma ... -
生成PDF文件的Java库iText
2011-12-14 09:44 744<p class="MsoNo ... -
SharpDevelop
2011-12-13 14:54 1195SharpDevelop是一个DotNet平台下的免费 ... -
如何让新人尽快融入项目团队
2011-12-13 10:54 742刚进公司的新人,从心理上要有个从学校到公司的转变的过 ...
相关推荐
### Tomcat中修改JSessionID在Cookie中的名称 在Tomcat服务器中,默认情况下,用于传递会话标识(即JSessionID)的Cookie名称为“JSESSIONID”。有时,出于安全考虑或其他需求,我们可能需要自定义这个名称。本文将...
下面对该类进行详细的分析: 1. **实现Filter接口:** - `Filter`接口定义了三个方法:`init(FilterConfig config)`、`doFilter(ServletRequest request, ServletResponse response, FilterChain chain)` 和 `...
例如,在某些 Web 应用程序中,如果 Cookie 中的路径属性设置为当前项目的路径,那么攻击者可以通过分析 Cookie 中的路径属性来获取项目路径,从而实施攻击。 解决思路 解决 Cookie 路径属性暴露问题有两种思路...
**一、现象分析** 当用户在一个域(例如,域A的9000端口应用CA)登录后,再访问另一个域(如域B的8000端口应用CB),返回原域A时可能会发现Session丢失。此外,如果应用CA内有链接直接跳转到应用CB,同样可能导致...
此时,应进行线程转储以分析问题。同时,启用完全调试日志模式,通过检查日志找出问题的根源。 1.2. Resin频繁重启 这可能是由于某种错误导致Resin不断崩溃。启用调试日志可以帮助识别导致重启的原因。 1.3. java....
- **分析Parameter Substitution日志**:查找参数的值是否按预期变化。 3. **使用SaveOffset解决特定问题**:当目标数据前后有干扰字符时,可以使用`SaveOffset`属性来指定从哪个位置开始保存数据。 **示例**:...
- JSessionID格式分析:JSessionID默认为会话标识符,可在weblogic.xml中自定义。其格式为`SessionId!PrimaryServerJVMHash!SecondaryServerJVMHash`,用于唯一识别每个会话及其对应的服务器实例。 #### 总结 面对...
3. **网络视频播放**:实现网络视频播放通常涉及到HTTP或RTSP协议的流媒体处理,可能还需要处理缓冲、加载进度显示等问题。Vitamio库在这方面提供了强大的支持,能够处理网络延迟和带宽限制,为用户提供流畅的观看...
**问题分析** 1. 当用户首次访问时,没有携带 session 信息,Nginx 使用轮询(round robin)策略将请求分发到某台 Tomcat。 2. Tomcat 服务器创建 session 并将其信息返回给客户端。 3. 客户端再次请求时,Nginx ...
### flex 利用FileReference上传firefox报2038错误 ...通过上述分析和讨论,我们可以看出在处理Flex应用中的文件上传问题时,需要综合考虑多个方面的影响因素,并采取适当的措施来解决实际遇到的问题。
**问题分析** 登录前后Cookie不一致的问题可能由以下几个原因引起: 1. **Session ID冲突**:在用户登录过程中,服务器可能会分配一个新的Session ID,但客户端的Cookie仍然持有旧的Session ID。 2. **Cookie更新...
**问题分析** 在Android中,使用HttpURLConnection时,如果没有正确处理Cookie,服务器就无法识别连续的请求来自同一会话。通常情况下,Web浏览器会自动处理Cookie,但在Android应用中,开发者需要手动处理这一过程...
通过分析上述文档内容,我们可以了解到以下几点关于PHP、session、跨域iframe嵌套以及IE浏览器兼容性问题的解决方法: 1. **跨域iframe与session问题**: 当一个网站的登录页面被别的网站使用iframe嵌入后,登录...
在本文中,我们将深入...了解这些原理对于优化Web应用性能、处理会话管理问题以及确保用户安全性至关重要。在实际开发中,合理使用Session能够极大地提升用户体验,但也要注意避免Session过多导致的服务器资源消耗。
通过上述分析,我们可以看出HaProxy不仅能够有效地解决单一服务器负载过高的问题,还能够提供更加灵活的负载均衡策略和高可用性支持。无论是简单的基于cookie插入的方式还是基于现有会话标识的高级配置,都能够显著...
同时,为每个Tomcat实例配置独立的访问日志,便于追踪和分析问题。 这份"apache+tomcat集群配置文件和文档"将涵盖以上所有要点,指导你逐步配置和测试Apache+Tomcat集群。按照文档操作,你将能够构建出一个高效且...
##### 问题分析 - 在未登录的情况下,可以直接访问受保护的页面或功能,如部门管理、员工管理等。 - **解决方案**:通过会话管理和拦截器技术来实现登录校验。 ##### 会话跟踪技术 - **会话**:指用户与服务器之间...
Spring-Session 还提供了 RESTful API,不依赖于 Cookie,并且可以通过 Header 传递 JSESSIONID。 Spring-Session 的实现原理 Spring-Session 的实现原理可以分为以下几个步骤: 1. 自定义个 Filter,实现 ...
1. 日志记录:使用log4j或logback等日志框架记录用户登录活动,便于分析和排查问题。 2. 监控工具:集成如Spring Boot Actuator等监控工具,可以实时查看登录成功率、失败率以及异常情况。 3. 数据可视化:通过ELK...
还可以使用Apache的`mod_status`模块或第三方工具(如Nagios、Zabbix等)进行更详细的监控和性能分析,以便根据实际情况调整负载均衡策略。 综上所述,Apache 2.4实现负载均衡的关键在于正确配置和使用mod_proxy和...