Java 使用Spring Security限制并发会话并向用户提供适当的消息

Java 使用Spring Security限制并发会话并向用户提供适当的消息,java,spring-mvc,spring-security,Java,Spring Mvc,Spring Security,我想限制我的第二次会话,同时同一用户尝试从不同的计算机登录。 以下是我的Spring安全代码: 现在,我可以使用它限制并发会话,但我无法向用户提供适当的消息,如:“用户已从不同的计算机登录”。实现或扩展身份验证失败处理程序,例如SimpleRuthenticationFailureHandler public class CustomFailureHandler extends SimpleUrlAuthenticationFailureHandler { @Override public

我想限制我的第二次会话,同时同一用户尝试从不同的计算机登录。 以下是我的Spring安全代码:



现在,我可以使用它限制并发会话,但我无法向用户提供适当的消息,如:“用户已从不同的计算机登录”。

实现或扩展身份验证失败处理程序,例如SimpleRuthenticationFailureHandler

public class CustomFailureHandler extends SimpleUrlAuthenticationFailureHandler {

@Override
public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response,
        AuthenticationException exception) throws IOException, ServletException {
    setDefaultFailureUrl("/loginfailed.jsp?status=" + "YOUR CUSTOM MESSAGE HERE");
    super.onAuthenticationFailure(request, response, exception);
}
}

实现或扩展身份验证失败处理程序,例如SimpleRuthenticationFailureHandler

public class CustomFailureHandler extends SimpleUrlAuthenticationFailureHandler {

@Override
public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response,
        AuthenticationException exception) throws IOException, ServletException {
    setDefaultFailureUrl("/loginfailed.jsp?status=" + "YOUR CUSTOM MESSAGE HERE");
    super.onAuthenticationFailure(request, response, exception);
}
}

这解决了我的问题。但现在我面临一个问题,比如,如果用户关闭浏览器或关闭计算机而不注销,那么同一用户就不能从任何其他机器登录。用户需要从同一台机器登录。任何帮助都将不胜感激。在客户端捕获窗口的卸载事件,并从那里点击注销URL。因此,每次用户关闭浏览器时,他都会先注销。这解决了我的问题。但现在我面临一个问题,比如,如果用户关闭浏览器或关闭计算机而不注销,那么同一用户就不能从任何其他机器登录。用户需要从同一台机器登录。任何帮助都将不胜感激。在客户端捕获窗口的卸载事件,并从那里点击注销URL。因此,每次用户关闭浏览器时,他都会先注销。