【问题标题】:Browsersession timeout浏览器会话超时
【发布时间】:2018-09-19 21:05:06
【问题描述】:

对不起,奇怪的标题,但我不知道我的问题出在哪里。

我正在开发一个受 Spring Security 保护的 Spring-Boot 应用程序。它通过一个名为 JSESSIONID 的 cookie 来识别用户,该 cookie 在“会话”结束时过期(我不知道会话是什么意思。)

我有一些用户登录,使用该应用程序几分钟,让浏览器选项卡打开几个小时并尝试重用该应用程序,但他们不再被服务器识别并且必须重新验证。

关于问题的根源,我有两个想法。

    1234563 /p>
  1. cookie 仍然包含在请求中,但后端忘记了该会话(可能是因为可配置的超时)

我回家了,你可以帮我找出问题所在,最好的办法是对其进行调整。

【问题讨论】:

    标签: tomcat spring-boot firefox spring-security session-cookies


    【解决方案1】:

    根据我从您的问题中了解到的情况,我认为您需要在 spring-boot 应用程序中配置会话管理。

    Remember-me 身份验证是一种在会话之间记住用户身份的解决方案。当用户使用 remember-me 选项登录到应用程序时,Spring Security 向浏览器发送一个 cookie。此 cookie 在浏览器端存储特定时间段。下次用户登录应用时,Spring Security 会检查并验证存储的 cookie,如果 cookie 有效则自动登录。

    Spring Security 提供了两种实现 remember-me 的方法 -

    基于哈希的令牌方法 - 在这种方法中,用户名、过期时间、密码和私钥被哈希并作为令牌发送到浏览器。

    持久令牌方法 - 在这种方法中,使用数据库或其他持久存储机制来存储生成的令牌。

    尝试谷歌如何实现这些,你会得到大量的资源。

    还有一点,您还需要在 application.properties 中设置会话超时属性并根据您的要求进行配置。

    server.session.timeout=# time in seconds
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-27
      • 1970-01-01
      • 2013-08-11
      • 2011-08-13
      • 2012-02-11
      • 2014-02-21
      • 2015-04-23
      相关资源
      最近更新 更多