在哪些方面可以在Java EE中定义会话超时的时间?我正在寻找超越明显的方法,例如在web.xml或HttpSession.setMaxInactiveInterval()中设置会话超时。
我目前正在审查Java EE应用程序,但是找不到与会话超时定义相关的任何内容。 Web应用程序位于Weblogic中。我假设由于没有会话超时定义,会话将永不过期。
答案 0 :(得分:4)
当您正在寻找如何在Weblogic中超时的会话时,我可以添加
在TimeoutSecs
中 weblogic.xml
或在注销时检查会话被session.invalidate()
杀死的代码中的任何一点。
顺便说一下,它不会是无限的。
在Weblogic上,web.xml中的默认值(如果未指定值)是使用weblogic.xml中的TimeoutSecs
值,defaults to 3600 secs即60分钟
答案 1 :(得分:1)
与Spring无关:
response.setHeader("Set-Cookie", cookiestring);
自己控制cookie。它是控制会话超时的expires
属性。这会覆盖任何servletcontainer或web.xml
默认值,但无论如何都可以由HttpSession#setMaxInactiveInterval()
覆盖。
在servletcontainer级别配置默认值。例如,在Tomcat中,maxInactiveInterval
元素的<session-timeout>
属性。无论如何,web.xml
中的{{1}}和Java代码中的<manager>
都可以覆盖此内容。
更新:
如果未指定,则将使用servletcontainer管理的默认超时。这通常是30分钟(对于Tomcat和克隆来说也是如此)。这样会话将在客户端在会话中发送的最后一个请求后30分钟到期。此外,当客户端关闭并重新打开浏览器实例或清除cookie时,将创建一个新会话(旧会话将在默认的30分钟超时后过期)。