我想在 Symfony2 中扩展 DefaultAuthenticationFailureHandler。
我不想替换它,只是扩展它。
我基本上想挂接故障处理程序,因此如果满足条件而不是像故障处理程序那样重定向,我可以执行不同的操作。
我想我需要将其作为一项服务来做。
我在 services.yml 中有这个
extend.auth.fail:
class: MyBundle\Bundle\AuthenticationFailure
在 security.yml 中:
security:
firewalls:
secure_area:
pattern: ^/admin
form_login:
login_path: login
check_path: login_check
failure_handler: extend.auth.fail
在 AuthenticationFailure.php 中
namespace Symfony\Component\Security\Http\Authentication;
class AuthenticationFailure extends DefaultAuthenticationFailureHandler
{
public function onAuthenticationFailure(Request $request, AuthenticationException $exception)
{
//do something here instead
}
}
...但我收到此错误:
FatalErrorException: Compile Error: Declaration of Symfony\Component\Security\Http\Authentication\AuthenticationFailure::onAuthenticationFailure() must be compatible with that of Symfony\Component\Security\Http\Authentication\AuthenticationFailureHandlerInterface::onAuthenticationFailure() in /var/symfony/src/MyBundle/Bundle/AuthenticationFailure.php line 18