summaryrefslogtreecommitdiffstats
path: root/Http/Firewall.php
diff options
context:
space:
mode:
Diffstat (limited to 'Http/Firewall.php')
-rw-r--r--Http/Firewall.php31
1 files changed, 16 insertions, 15 deletions
diff --git a/Http/Firewall.php b/Http/Firewall.php
index bd77f6d..bff88b9 100644
--- a/Http/Firewall.php
+++ b/Http/Firewall.php
@@ -11,11 +11,11 @@
namespace Symfony\Component\Security\Http;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
-use Symfony\Component\EventDispatcher\EventInterface;
-use Symfony\Component\EventDispatcher\Event;
use Symfony\Component\HttpKernel\HttpKernelInterface;
+use Symfony\Component\HttpKernel\Events;
+use Symfony\Component\HttpKernel\Event\GetResponseEventArgs;
use Symfony\Component\HttpFoundation\Request;
+use Doctrine\Common\EventManager;
/**
* Firewall uses a FirewallMap to register security listeners for the given
@@ -25,48 +25,49 @@ use Symfony\Component\HttpFoundation\Request;
* (a Basic authentication for the /api, and a web based authentication for
* everything else for instance).
*
- * The handle method must be connected to the core.request event.
- *
* @author Fabien Potencier <fabien@symfony.com>
*/
class Firewall
{
private $map;
+ private $evm;
+ private $currentListeners;
/**
* Constructor.
*
* @param FirewallMap $map A FirewallMap instance
*/
- public function __construct(FirewallMapInterface $map, EventDispatcherInterface $dispatcher)
+ public function __construct(FirewallMapInterface $map, EventManager $evm)
{
$this->map = $map;
- $this->dispatcher = $dispatcher;
+ $this->evm = $evm;
+ $this->currentListeners = array();
}
/**
* Handles security.
*
- * @param EventInterface $event An EventInterface instance
+ * @param GetResponseEventArgs $eventArgs An GetResponseEventArgs instance
*/
- public function handle(EventInterface $event)
+ public function onCoreRequest(GetResponseEventArgs $eventArgs)
{
- if (HttpKernelInterface::MASTER_REQUEST !== $event->get('request_type')) {
+ if (HttpKernelInterface::MASTER_REQUEST !== $eventArgs->getRequestType()) {
return;
}
// register listeners for this firewall
- list($listeners, $exception) = $this->map->getListeners($event->get('request'));
+ list($listeners, $exception) = $this->map->getListeners($eventArgs->getRequest());
if (null !== $exception) {
- $exception->register($this->dispatcher);
+ $exception->register($this->evm);
}
// initiate the listener chain
foreach ($listeners as $listener) {
- $response = $listener->handle($event);
+ $response = $listener->handle($eventArgs);
- if ($event->isProcessed()) {
- return $response;
+ if ($eventArgs->hasResponse()) {
+ break;
}
}
}