Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.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实现AuthenticationListener_Java_Spring_Security - Fatal编程技术网

Java Spring实现AuthenticationListener

Java Spring实现AuthenticationListener,java,spring,security,Java,Spring,Security,我对创建authenticationFailureHandler感到非常沮丧。正是这种设置让我心烦。当用户输入错误的登录凭据时,我无法启动处理程序。我想这是因为我错误地声明了bean,但是现在谁知道呢 我有以下课程: public class AuthenticationListener implements AuthenticationFailureHandler { @Override public void onAuthenticationFailure(HttpServl

我对创建authenticationFailureHandler感到非常沮丧。正是这种设置让我心烦。当用户输入错误的登录凭据时,我无法启动处理程序。我想这是因为我错误地声明了bean,但是现在谁知道呢

我有以下课程:

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。