所以我可以执行一个简单的请求监听器:
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并谈到了“防火墙”监听器,但我就是不明白该怎么做. 我敢打赌这只是一行代码之类的。