2008年5月13日星期二

用Servlet生成验证码后session失效问题

在使用Servlet生成验证码时,在JSP中无法取得存放在session中的验证码的正确结果进行比对。经跟踪,发现在Servlet和JSP中的session id不同。百思不得其解,最后用HttpAnalyzer捕捉HTTP包进行分析,发现每个请求中的session ID不同,进而发现是由于准备在系统中使用JForum的单点登录SSO而设置了cookie的原因。

//JFroum SSO Cookie
Cookie cookie = new Cookie("jforumUserInfo",
                            (String) session.getAttribute("UserLogon"));
cookie.setMaxAge(-1);
response.addCookie(cookie);

删除上述的代码段,重启Web App。并清空浏览器的缓存和cookies,问题解决。

没有评论:

发表评论