如何在Spring Security中显示没有重定向的身份验证失败消息?
我可以找到类似的问题,例如How to display error message in my JSP page using spring security 2.0和Spring Security - Authentication Failure - Blank Message,其中描述的方法很糟糕。
我不喜欢使用 authentication-failure-url 属性。我需要的是在登录页面没有任何重定向和不使用会话的HTTP POST请求后显示错误消息。只需将错误变量放入登录模型即可。
答案 0 :(得分:1)
您应该在登录页面中执行与/j_spring_security_check
和j_username
的{{1}}的AJAX通话。
您必须编写自定义AuthenticationFailureHandler并将其插入UsernamePasswordAuthenticationFilter。setAuthenticationFailureHandler方法。以及自定义AuthenticationSuccessHandler和UsernamePasswordAuthenticationFilter。setAuthenticationSuccessHandler方法。
您的自定义AuthenticationSuccessHandler应返回true。您的自定义AuthenticationFailureHandler应返回false,您的Login Page AJAX回调应检查这些值并采取适当的登录操作。