java - 如何在登录屏幕上重定向 Spring 安全并发 session 控制 'message'?

标签 java spring jakarta-ee spring-security spring-webflow

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

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

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

这是我的 spring security xml 的一部分,我在其中为用户处理了并发 session 。

<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 应用程序页面的链接将不胜感激。

提前致谢。

最佳答案

spring-security.xml 中的原始 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>

只需在 xml 中添加以下参数来重定向登录过期操作或无效 session url

expired-url="url 值"

无效 session url="url 值"

修改后的 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" expired-url="/login.jsp?error=sessionExpiredDuplicateLogin" error-if-maximum-exceeded="false" />
</security:session-management>

关于java - 如何在登录屏幕上重定向 Spring 安全并发 session 控制 'message'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10328290/

相关文章:

JavaConfig : The type javax. servlet.ServletContext 和 javax.servlet.ServletException 无法解析

java - 更快地查看代码结果的方法

java - ZipFile 中的 ZipFile

java - java中如何返回代码中的特定行?

java - spring MongoRepository 查询正则表达式

java - 如何在配置中将系统属性注入(inject)到静态bean中?

java - 以相同对象作为键值的映射

java - CommandLineRunner 中的依赖注入(inject)失败

java - 运行项目时出错

jakarta-ee - 服务层有必要吗?