【发布时间】:2014-10-20 17:48:37
【问题描述】:
是否可以在 Spring Security 中关闭 HTTP 会话超时?
从这个answer我看到可以像这样在web.xml中修改HTTP会话超时:
<session-config>
<session-timeout>10</session-timeout>
</session-config>
但我没有从 Spring Security 手册中找到如何禁用超时。
从这个answer我看到Spring Security在内部使用了一个javax.servlet.http.HttpSession,根据这个manual page可以通过调用setMaxInactiveInterval(0)方法将其设置为永不过期。
因此,应该可以通过获取 HttpSession(如答案中的 here 所示)并将 maxInactiveInterval 更改为 0 来更改会话超时。我的问题是,如果我会在用户第一次这样做之后登录后,HttpSession中的变化是否会持续存在(即在下一个请求中,HttpSession中的变化是否仍然存在?)
是否可以像这样在 web.xml 中禁用会话超时?
<session-config>
<session-timeout>0</session-timeout>
</session-config>
还有一个问题,Spring Security 中默认的 HTTP 会话超时是多少?
【问题讨论】:
-
你真的不想这样做。它们可以持续数年,并且一直占用资源。设置一个不会给用户带来不便的大超时时间。我用了 8 个小时,但我怀疑由于资源消耗的原因,我不得不将它减少到 4 个。
-
感谢您的评论,我没有考虑到这一点。八小时对我来说应该足够了。
标签: java spring http spring-security