Java Spring实现AuthenticationListener
我对创建authenticationFailureHandler感到非常沮丧。正是这种设置让我心烦。当用户输入错误的登录凭据时,我无法启动处理程序。我想这是因为我错误地声明了bean,但是现在谁知道呢 我有以下课程:Java Spring实现AuthenticationListener,java,spring,security,Java,Spring,Security,我对创建authenticationFailureHandler感到非常沮丧。正是这种设置让我心烦。当用户输入错误的登录凭据时,我无法启动处理程序。我想这是因为我错误地声明了bean,但是现在谁知道呢 我有以下课程: public class AuthenticationListener implements AuthenticationFailureHandler { @Override public void onAuthenticationFailure(HttpServl
public class AuthenticationListener implements AuthenticationFailureHandler {
@Override
public void onAuthenticationFailure(HttpServletRequest request,
HttpServletResponse response, AuthenticationException ae)
throws IOException, ServletException {
System.out.println("it gets to the authetificationListener");
}
}
在我的SecurityConfig中有以下声明:
@Bean
AuthenticationFailureHandler authenticationListener() {
System.out.println(":: :: It is instantiating a Authentication Failure Handler :: ::");
return new AuthenticationListener();
}
日志打印如下内容:::它正在实例化身份验证失败处理程序::“但不是“它将访问AuthenticationListener”。任何帮助都将不胜感激
最后,我希望捕获错误的凭据,以便将失败的尝试存储在数据库中,然后在一定数量后强制他们重置密码。您认为这将如何工作?仅仅注册一个bean是不够的,您需要让spring security意识到您拥有它,并且需要正确地连接它。其次,创建一个实现侦听s的
ApplicationListener
的bean可能更容易,而不是实现AuthenticationFailureListener
。那样的话,你只需要定义一个bean,你就可以从AuthenticationFailureEvent开始,它工作得很好,但我最终想要的是将它们重定向到密码更改页面,这似乎是不允许的。我对Spring完全不熟悉,所以细节会有所帮助。因此,如果我继续这样做,我如何让spring security意识到我拥有它?然后将侦听器连接到spring security,只需注册它就什么都不做了,它只会占用内存。您需要让spring安全过滤器知道您想要使用它。根据您使用的是什么,您可以使用
或loginForm()
来添加它。很抱歉,太早按enter键。请参阅上面我编辑的评论。我需要做什么才能将其连接到spring security。