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