Symfony2-显示错误凭据错误


Symfony2 - Show bad credentials error

我一直在Symfony2中编写一个自定义身份验证提供程序。到目前为止一切正常,但当我输入错误的密码时,会收到一个内部服务器错误,显示:"LDAP身份验证失败"。

现在,这是我想要显示的消息,但我希望将其显示在我的登录表单上方,而不是引发内部服务器错误。在我的听众中,我有以下内容:

try {
        $authToken= $this->authenticationManager->authenticate($token);
        $this->securityContext->setToken($authToken);
        return;
} catch (AuthenticationException $failed) {
        throw new BadCredentialsException($failed->getMessage(), 0);
}

那么,有没有人可以告诉我,我需要做什么来向用户显示消息,而不是抛出内部服务器错误?

提前谢谢。

您可以在控制器中手动将错误添加到登录表单中。例如:

$form->get('username')
    ->addError(new FormError($message));

您应该有一个controler操作来捕获表单的相同路径以捕获异常。

在显示表单之前,将尝试身份验证过程。

您可以看到以下示例:https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Controller/SecurityController.php