春季安全会话超时

时间:2012-01-23 23:10:06

标签: session spring-security timeout

我在JSF2 webapp中使用Spring Security 3.

我有一个安全规则来提供会话超时:

<session-management invalid-session-url="/faces/paginas/autenticacion/login.xhtml?error=1" />

因此,当会话过期且用户点击任何链接时,他将被重定向到登录页面。在此页面中,我检查错误参数,并向用户显示一条消息,说明会话已过期。

但我有两个问题:

(1)当我第一次启动应用程序(它试图显示主页)时,我被重定向到登录页面,说会话已经过期。我认为这可能会发生,因为第一次运行应用程序时,会话是新的,Spring Security可能“认为”他已经过期(不区分新会话和超时)。

(2)如果匿名用户的会话已过期(尚未通过身份验证),我也会被重定向到登录页面超时。对于未经过身份验证的用户,我不希望出现此行为,我只想查看经过身份验证的用户的超时。

如何解决这两个问题?

提前谢谢。

1 个答案:

答案 0 :(得分:6)

您希望将expired-session-url属性用于过期的会话,而不是invalid-session-url。他们有两种不同的东西。