我在JSF2 Web应用程序中使用了Spring Security 3。
我有一个提供会话超时的安全规则:
<session-management invalid-session-url="/faces/paginas/autenticacion/login.xhtml?error=1" />
这样,当会话过期,用户点击任何链接时,他都会被重定向到登录页面。在这个页面中,我检查错误参数,并向用户显示一条消息,说明会话已过期。
但我有两个问题:
(1) 当我第一次启动应用程序时(它试图显示主页),我会被重定向到登录页面,说会话已过期。我认为发生这种情况可能是因为你第一次运行应用程序时,会话是一个新的会话,而Spring Security可能"认为"他已经过期(不区分新会话和超时)。
(2) 如果匿名用户的会话已过期(尚未通过身份验证),我也会重定向到登录页面超时。我不希望未通过身份验证的用户出现这种行为,我只想检查通过身份验证用户的超时情况。
我该如何解决这两个问题?
提前谢谢。
您希望对过期会话使用expired-session-url
属性,而不是invalid-session-url
。它们代表两种不同的东西。