`
noble510520
  • 浏览: 56196 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JSESSIONID与SESSION

 
阅读更多

用spring security的时候遇到了一个很诡异的问题:

已经登录的用户,而且没有标记remember-me,在重启服务器之后还会显示已经登录状态

这就严重啦,这样子如果要在session中储存用户的信息,以后反复拿出来用的话,这个session在用户登录的时候set用户信息,那重启服务器之后,session中没有这个字段了,但是还是登录了,这就使得有的场景中得不到用户信息

解析一下发送的请求会发现,登录了之后每一个请求都会带有一个cookies,JSEESIONID:"xxxxxxxx"

这个JSESSIONID是服务器给每个用户定义的唯一的ID标识,用这个ID号就可以在SESSION容器中找到请求用户的SESSION了

所以当清空浏览器cookies了之后,就需要重新登录了(因为服务器没有接收到JSESSIONID,也就不能判断用户是否登录)

解决方案:

  1. 在<security:http>里面添加disable-url-rewriting="true"属性,是为了不让URLappend了JSESSIONID
  2. 同时在<security:logout>里面加上invalidate-session="true"delete-cookies="JSESSIONID" 目的是为了,用户退出的时候清空session以及删除JSESSIONID的cookies


查看原文:http://139.129.55.235/2016/05/30/jsessionid%e4%b8%8esession/
分享到:
评论

相关推荐

    tomcat修改jsessionid在cookie中的名称

    这表明默认情况下,如果没有显式设置系统属性 `org.apache.catalina.SESSION_COOKIE_NAME`,那么`SESSION_COOKIE_NAME` 的值将为 “JSESSIONID”。 ##### 2. Tomcat 6.x/7.x 源码解析 在Tomcat 6.x 和 7.x 中,...

    android获取jsessionId和发送jsessionId

    在Android开发中,与服务器进行交互是常见的任务,而`jsessionId`是Web应用程序中用于跟踪用户会话的一种机制。本文将详细讲解如何在Android客户端获取`jsessionId`以及如何在后续请求中发送`jsessionId`,以保持...

    IFrame中Session丢失的解决办法

    在探讨“IFrame中Session丢失的解决办法”这一主题时,我们首先需要理解Session与IFrame的基本概念及其在Web开发中的交互方式。Session是Web应用中用于存储用户特定信息的一种机制,它允许开发者在用户的会话期间...

    一个服务器搭多个tomcat导致session丢失,或者同一个IP不同端口,多个应用的session会冲突解决方法

    经过资料查找,发现问题是因为:IP相同认为是同一个域,接收了B的set-cookie指令,把对应的cookie内容覆盖了,其中包括jsessionid,造成A的session丢失。 如果IP不同,则不会发生这个问题。IP相同的两个session对应的...

    Tomcat7+Redis+Session 负载之后session 共享 tomcat jar包

    4. **测试与验证**:部署应用后,可以通过切换服务器观察Session是否能正确共享。如果一切配置正确,用户在不同服务器之间切换时,其Session信息应能保持一致,不会出现登录状态丢失的情况。 通过以上步骤,我们...

    jsessionid存在的问题及其解决方案

    在Web开发中,`jsessionid`是一个常见的概念,它关联到Java服务器会话(Session)的管理。本文将深入探讨`jsessionid`存在的问题以及相应的解决方案,并结合提供的`DisableUrlSessionFilter.java`和`web.xml`文件来...

    一篇优秀Session讲解

    Session是一种用于维护客户端与服务器之间交互状态的技术,它能够跟踪用户的活动并保存用户数据,从而使得网站能够在多次请求之间保持一致的状态。下面将详细介绍Session的相关知识点。 #### 一、Session概念 1. *...

    Session共享 tomcat7+redis的session共享实现

    - tomcat-redis-session-manager1.2.jar:这是一个Tomcat的Session Manager实现,它与Redis交互,处理Session的存储和检索。 2. **配置Tomcat**:将这三个jar文件放入Tomcat的lib目录下,确保Tomcat启动时能够加载...

    java实现多次HttpURLConnection共享session

    // 解析cookieHeader,例如:JSESSIONID=123456; Path=/; HttpOnly // 使用CookieManager的CookiePolicy接受所有Cookie cookieManager.getCookieStore().add(null, parseCookie(cookieHeader)); } ``` 4. 共享...

    java后台请求http并保持Session

    connection.setRequestProperty("Cookie", "JSESSIONID=" + sessionId); ``` 2. **POST请求**: - 对于POST请求,除了设置请求方法为POST外,还需要写入请求体。例如,使用`java.io.OutputStream`写入数据。 ```...

    spring-session实现session共享

    通过Spring-Session与Redis的配合,我们可以轻松地在分布式环境中实现Session的共享,让单点登录成为可能。这不仅提高了用户体验,也简化了系统的身份验证流程,降低了运维复杂度。在实际开发中,可以根据具体需求...

    理解session机制

    服务器将Session ID作为Cookie发送给浏览器,浏览器在后续请求中会自动将这个Cookie(通常是名为JSESSIONID的Cookie)一起发送回去,使得服务器能够根据Session ID找到对应的Session数据。 3. **Cookie的限制**: ...

    session与cookie.doc的区别

    例如,上面提到的JSESSIONID,就是一个典型的Session Cookie,存储在浏览器内存中,不会写入硬盘。 3. **Persistent Cookie**:设置了一个过期日期,即使浏览器关闭,也会在下次用户访问同一网站时重新发送。这种...

    cookie_session知识点

    当服务器找不到客户端的jsessionid或者对应的Session过期或已被销毁,服务器会创建新的Session对象。 2. **创建时机**: - 第一次请求时,如果请求头中没有jsessionid,服务器会创建新Session。 - 如果客户端提交...

    使用session保持登陆状态

    当用户通过用户名和密码成功验证身份后,服务器会在内存中创建一个与该用户关联的session对象,存储用户的标识(如用户ID)和其他相关信息。这个session ID通常会被发送到客户端(通常是浏览器),并以cookie的形式...

    session介绍

    如果客户端禁用了Cookie,服务器则可能通过在URL后面附加Session ID(如`http://example.com/page?jsessionid=ID`)或者使用隐藏表单字段来传递Session ID。 - **有效期**:Session通常有一个预设的有效期,如30...

    session共享方案(tomcat8+redis共享session)

    本文将深入探讨一种实现方式——使用Tomcat8与Redis相结合的Session共享方案。该方案旨在确保用户在集群中的任意一台服务器上登录后,其Session信息能够在其他服务器上无缝访问,从而提供一致的用户体验。 首先,...

    Session页面之间 传值

    #### 知识点五:Session与Cookie的关系 虽然Session数据不直接存储在客户端(浏览器),但Session的标识符(通常是通过Cookie)会随每个HTTP请求一起发送到服务器。这意味着客户端必须支持Cookie才能正常使用...

    session的实现方式

    )用以表示此次“会话”,同时将与该 Session 相对应的 SessionID 以 Cookie 的方式发送给客户端。 当客户端再次请求该页面(应用程序)时,会自动将此 Cookie 通过请求信息带到服务器端。因此,但你刷新上一次的...

    javaWeb_Session(实现用户一段时间自动登录)

    Cookie cookie = new Cookie("JSESSIONID", session.getId()); cookie.setMaxAge(60 * 60 * 24 * 7); // 7天 response.addCookie(cookie); ``` 2. **检测Session有效性**:服务器接收到请求时,检查Cookie中的...

Global site tag (gtag.js) - Google Analytics