浏览器超时

时间:2018-04-10 09:41:02

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

很抱歉这个奇怪的标题,但我不知道我的问题源自何处。

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

我有一些用户登录,使用该应用程序几分钟,让浏览器标签打开几个小时,尝试重用该应用程序,但服务器不再识别它们,必须重新进行身份验证。< / p>

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

  1. 如果第一个请求发送几个小时后浏览器(在特殊情况下是firefox)忘记了cookie(可能是因为某种类型的超时)并且未将其包含在请求中或< / p>

  2. Cookie仍然包含在请求中,但后端忘记了该会话(可能是因为可配置的超时)

  3. 我在家,你可以帮助我找到问题,并在最好的情况下找到一种方法来调整它。

1 个答案:

答案 0 :(得分:0)

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

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

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

  

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

     

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

尝试谷歌如何实施这些,你会得到很多来源。

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

server.session.timeout=# time in seconds