【发布时间】:2013-07-04 18:49:36
【问题描述】:
所以我可以执行一个简单的请求监听器:
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 并谈到“防火墙”听众,但我就是不明白该怎么做。我敢打赌这只是一行代码之类的。
【问题讨论】: