Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring安全性:覆盖会话前显示警告_Java_Spring_Security_Session_Spring Security - Fatal编程技术网

Java Spring安全性:覆盖会话前显示警告

Java Spring安全性:覆盖会话前显示警告,java,spring,security,session,spring-security,Java,Spring,Security,Session,Spring Security,我已将最大并发会话数设置为1。 现在有2种情况我想处理是否存在活动会话(有人已经为该用户Id登录): 如果用户在同一浏览器上再次访问登录页面: 在这种情况下,他将直接登录 如果用户从不同的浏览器/客户端计算机登录:在这种情况下,需要显示错误“此用户的会话已处于活动状态。是否确实要覆盖会话?”。如果用户选择“是”,则错误将显示在上一个会话中(可以配置此“我知道”错误页面),如果用户选择“否”,则不会登录,上一个会话将持续 如何使用spring安全性实现这些用例?到目前为止,通过设置最大会话数和错误

我已将最大并发会话数设置为1。 现在有
2种情况
我想处理是否存在活动会话(有人已经为该用户Id登录):

  • 如果用户在同一浏览器上再次访问登录页面: 在这种情况下,他将直接登录

  • 如果用户从不同的浏览器/客户端计算机登录:在这种情况下,需要显示错误“此用户的会话已处于活动状态。是否确实要覆盖会话?”。如果用户选择“是”,则错误将显示在上一个会话中(可以配置此“我知道”错误页面),如果用户选择“否”,则不会登录,上一个会话将持续

  • 如何使用spring安全性实现这些用例?到目前为止,通过设置最大会话数和错误页,我已经能够找到并发会话的基本管理

    请帮忙


    谢谢。

    我想你差不多完成了。要在覆盖会话之前询问用户,请执行以下步骤

  • ConcurrentSessionFilter的expiredUrl属性应该到达一个页面,该页面提供了询问用户的UI(例如askUser.html)
  • askUser.html表单提交到另一个带有POST参数yes或no的url(例如/api/confirmSessionRewrite)
  • 在controller ConfirmSessionRewrite中,从会话注册表中删除用户或将其转发到登录页面

    sessionRegistry.removeSessionInformation(info.getSessionId())

  • 您必须修改配置,以便ConcurrentSessionFilter不会在/api/confirmSessionRewrite请求上运行。否则它将是一个循环