- store the old session
- invalidate the old session
- generate a new session
- copy the data of the old session into the new session
public class RenewSessionValve implements Valve{
public void invoke(Request request, Response response)
throws IOException, ServletException {
// check for the login URI, only after a login
// we want to renew the session
if (req.getRequestURI().
contains("/portal/j_security_check")) {
// step 1: save old session
Session oldSession = req.getSessionInternal(true);
SavedRequest saved = (SavedRequest) oldSession.
getNote(Constants.FORM_REQUEST_NOTE);
// step 2: invalidate old session
req.getSession(true).invalidate();
req.setRequestedSessionId(null);
req.clearCookies();
// step 3: create a new session and set it to the request
Session newSession = req.getSessionInternal(true);
req.setRequestedSessionId(newSession.getId());
// step 4: copy data pointer from the old session
// to the new one
if (saved != null) {
newSession.setNote(Constants.FORM_REQUEST_NOTE, saved);
}
}
}
}
reference: http://www.koelnerwasser.de/?p=11
分享到:
相关推荐
在Android开发中,与服务器进行交互是常见的任务,而`jsessionId`是Web应用程序中用于跟踪用户会话的一种机制。本文将详细讲解如何在Android客户端获取`jsessionId`以及如何在后续请求中发送`jsessionId`,以保持...
在Web开发中,`jsessionid`是一个常见的概念,它关联到Java服务器会话(Session)的管理。本文将深入探讨`jsessionid`存在的问题以及相应的解决方案,并结合提供的`DisableUrlSessionFilter.java`和`web.xml`文件来...
### Tomcat中修改JSessionID在Cookie中的名称 在Tomcat服务器中,默认情况下,用于传递会话标识(即JSessionID)的Cookie名称为“JSESSIONID”。有时,出于安全考虑或其他需求,我们可能需要自定义这个名称。本文将...
重定义URL 使其直接进去网页 不用登录 用于:邮件链接直接进入网站
### UrlFilter过滤jsessionId知识点解析 #### 一、概述 在Java Web开发中,`jsessionId`是服务器为了区分不同的用户会话而分配的一个唯一标识符。它通常会被添加到URL中或者通过Cookie传递。然而,在某些情况下,...
然而,这种处理办法治标不治本,当用户第一次访问的时候,Cookie 还是会记录原 Path 属性,之后的再次访问,属性会被容器置换。 2. 从容器本身解决 从容器本身解决的思路是通过配置容器的设置来处理问题。例如,...
作为纯后端开发码农,每次接口开发完的调试很重要,因此每次重复的手动获取登陆状态Token或者直接放行就太麻烦了。 APIFox提供了前置操作,可以很方便的自动获取登录状态,节省大量重复劳动时间。
"使用session保持登陆状态"这个主题就是关于如何在用户成功登录后,通过服务器端的session技术来维持其在线状态,直到用户主动退出或者session过期。下面我们将深入探讨这个话题。 首先,我们了解什么是session。...
我们将讨论两种常见的模拟登陆策略:基于表单提交的模拟登陆和基于Cookie的模拟登陆。 一、基于表单提交的模拟登陆 1. 分析登陆页面:首先,我们需要分析CSDN的登陆页面HTML源代码,找到用户名和密码输入框以及...
本主题将深入探讨如何使用HttpClient4库进行百度和58同城的模拟登陆操作。HttpClient4是一个强大的Java库,它提供了丰富的功能来执行HTTP请求,非常适合进行网页交互。 首先,我们来了解HttpClient4的基本用法。...
当用户成功登录后,服务器会在用户的HTTP会话中存储一个唯一的标识符,如JSESSIONID,用来跟踪用户的状态。 3. **跨域共享会话**: - 对于Web应用,我们可以使用Cookie或者JWT(JSON Web Tokens)来实现跨域共享...
这里,`$cookie_JSESSIONID`表示根据用户cookie中的JSESSIONID来确定服务器,`consistent`则确保哈希算法的稳定性。 **session共享的优势** 1. **高可用性**: Redis提供了复制和哨兵监控等机制,增强了session数据...
避免可能会绕过CVE-2015-5211对RFD攻击的保护,具体取决于通过使用jsessionid路径参数使用的浏览器。
有些网页需要你登录之后才...Cookie名称和值可以由服务器端开发自己定义,对于JSP而言也可以直接写入jsessionid,这样服务器可以知道该用户是否合法用户以及是否需要重新登录等。 2、之后我们要获取到用户正常登录的c
源码中可能会包含如何从请求中提取JSESSIONID,如何在不同浏览器间转换,以及如何重新设置cookie的代码示例。 5. **工具支持**: - 在进行这类操作时,开发者工具是必不可少的。例如,Chrome的开发者工具可以查看...
如:A,B两个服务,在浏览器中登录访问A后,当前打开的浏览器上在开一个选项卡访问B服务后,回过来点击访问A时session丢失,需要重新登录A才可以访问。经过资料查找,发现问题是因为:IP相同认为是同一个域,接收了B...
这涉及到HTTP会话cookie或JSESSIONID。 7. **安全性**:密码存储应使用加密技术,例如哈希函数,确保即使数据库被泄露,用户密码也无法轻易被还原。 8. **异常处理**:程序中应包含适当的异常处理机制,以捕获和...
用户登录后,Spring Security会在用户的浏览器上设置一个JSESSIONID cookie。 9. **异常处理**: - 对于可能出现的异常,如用户名不存在或密码错误,可以定义全局的ExceptionHandler方法,返回定制的错误页面。 ...
Nginx Tomcat 集群的Session 复制,解决了,集群情况下的session复制问题。
当客户端首次请求访问服务器时,服务器先在客户端存放包含该客户的相关信息的Cookie,以后客户端每次请求访问服务器时,都会在HTTP请求数据中包含Cookie,服务器解析HTTP请求中的Cookie,就能由此获得关于客户的相关...