* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Bundle\SecurityBundle\Security; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Security\Http\FirewallMapInterface; /** * This is a lazy-loading firewall map implementation. * * Listeners will only be initialized if we really need them. * * @author Johannes M. Schmitt */ class FirewallMap implements FirewallMapInterface { protected $container; protected $map; public function __construct(ContainerInterface $container, array $map) { $this->container = $container; $this->map = $map; } public function getListeners(Request $request) { foreach ($this->map as $contextId => $requestMatcher) { if (null === $requestMatcher || $requestMatcher->matches($request)) { return $this->container->get($contextId)->getContext(); } } return array(array(), null, null); } }