7

我有 Web 应用程序,其中我使用了 Spring 框架。对于并发会话控制,我使用了 spring 功能,一旦该用户登录到另一个会话,他/她的前一个会话将过期,只有 1 个登录会话将为 1 个用户维护。

现在在这种情况下,我收到此消息“此会话已过期(可能是由于同一用户尝试多个并发登录)。

但我在浏览器的完整白页上收到此消息。我希望这条消息只出现在我的登录屏幕上。

这是我为用户处理并发会话的 Spring Security xml 的一部分。

<security:session-management invalid-session-url="/login.jsp?error=sessionExpired" session-authentication-error-url="/login.jsp?error=alreadyLogin">
                    <security:concurrency-control max-sessions="1" error-if-maximum-exceeded="false" />
</security:session-management>

任何专门用于自定义此消息并将此消息重定向到所需 Web 应用程序页面的链接将不胜感激。

提前致谢。

4

2 回答 2

8

Original XML entry in spring-security.xml

<security:session-management session-authentication-error-url="/login.jsp?error=alreadyLogin">
                    <security:concurrency-control max-sessions="1" error-if-maximum-exceeded="false" />
</security:session-management>

Just You have to added following parameter in xml to redirect the Login expired action or invalid session url

expired-url="url value"

invalid-session-url="url value"

Modified XML entry

<security:session-management invalid-session-url="/login.jsp?error=sessionExpired" session-authentication-error-url="/login.jsp?error=alreadyLogin">
                    <security:concurrency-control max-sessions="1" expired-url="/login.jsp?error=sessionExpiredDuplicateLogin" error-if-maximum-exceeded="false" />
</security:session-management>
于 2012-04-30T04:53:38.107 回答
0

在 jar spring-security-core 中有 .properties 文件。

您需要使用应用程序中的自定义消息覆盖所需的属性。

于 2012-04-26T09:17:54.033 回答