summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabien Potencier <fabien.potencier@gmail.com>2013-09-06 15:29:34 +0200
committerFabien Potencier <fabien.potencier@gmail.com>2013-09-06 15:53:58 +0200
commit97bcb8a6101547accf394f5aa4d6c34af9eda7f3 (patch)
tree72f3de70c26515b6f785e63c32b247b835576101
parent564be0f954e0aa17bd2f51f408380e1940de5cfc (diff)
downloadsymfony-security-97bcb8a6101547accf394f5aa4d6c34af9eda7f3.zip
symfony-security-97bcb8a6101547accf394f5aa4d6c34af9eda7f3.tar.gz
symfony-security-97bcb8a6101547accf394f5aa4d6c34af9eda7f3.tar.bz2
[Security] fixed a leak in the ContextListener
-rw-r--r--Http/Firewall/ContextListener.php4
1 files changed, 3 insertions, 1 deletions
diff --git a/Http/Firewall/ContextListener.php b/Http/Firewall/ContextListener.php
index 8c71876..81ccbdc 100644
--- a/Http/Firewall/ContextListener.php
+++ b/Http/Firewall/ContextListener.php
@@ -38,6 +38,7 @@ class ContextListener implements ListenerInterface
private $logger;
private $userProviders;
private $dispatcher;
+ private $registered;
public function __construct(SecurityContextInterface $context, array $userProviders, $contextKey, LoggerInterface $logger = null, EventDispatcherInterface $dispatcher = null)
{
@@ -65,8 +66,9 @@ class ContextListener implements ListenerInterface
*/
public function handle(GetResponseEvent $event)
{
- if (null !== $this->dispatcher && HttpKernelInterface::MASTER_REQUEST === $event->getRequestType()) {
+ if (!$this->registered && null !== $this->dispatcher && HttpKernelInterface::MASTER_REQUEST === $event->getRequestType()) {
$this->dispatcher->addListener(KernelEvents::RESPONSE, array($this, 'onKernelResponse'));
+ $this->registered = true;
}
$request = $event->getRequest();