[英]Symfony 2 event listener - on authentication fail / firewall listener
因此,我可以执行一个简单的请求侦听器:
public function onKernelRequest(GetResponseEvent $event)
{
$request = $event->getRequest();
//etc.
并在services.yml中:
listener.my_request_listener:
arguments:
- "@translator"
class: MyBundle\EventListener\RequestListener
tags:
-
event: kernel.request
method: onKernelRequest
name: kernel.event_listener
-
event: kernel.response
method: onKernelResponse
name: kernel.event_listener
我现在要做的是检测身份验证是否失败(使用Symfony2的内置安全组件)。 我已完成所有安全设置,但是我需要检测安全性何时失败。 像这样:
public function onKernelAuthFail(GetAuthenticationFailEvent $event) {
//authentication failed, so action can be performed here before it redirects
}
我已经看到了这一点: http : //api.symfony.com/2.3/Symfony/Component/Security/Http/Firewall/ListenerInterface.html并谈到了“防火墙”侦听器,但我只是不明白该怎么做。 我敢打赌,这只是一行代码之类的东西。
看一下DefaultAuthenticationFailureHandler
类。 它应该在Symfony\\Component\\Security\\Http\\Authentication
。 这是身份验证失败时Symfony使用的默认侦听器。
但是您可以自己编写并使用它,方法是将其添加到security.yml
如下所示:
firewalls:
firewall_name:
form_login:
failure_handler: your.service.id
这是对security.yml配置的完整参考: http : //symfony.com/doc/current/reference/configuration/security.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.