Deprecated : Constant E_STRICT is deprecated in /home/pastorz/old-espace-client/vendor/symfony/error-handler/ErrorHandler.php on line 58
Deprecated : Constant E_STRICT is deprecated in /home/pastorz/old-espace-client/vendor/symfony/error-handler/ErrorHandler.php on line 76
Symfony Profiler
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* 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 Psr\Container\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 <schmittjoh@gmail.com>
*/
class FirewallMap implements FirewallMapInterface
{
private $container ;
private $map ;
public function __construct ( ContainerInterface $container , iterable $map )
{
$this -> container = $container ;
$this -> map = $map ;
}
public function getListeners ( Request $request )
{
$context = $this -> getFirewallContext ( $request );
if (null === $context ) {
return [[], null , null ];
}
return [$context -> getListeners (), $context -> getExceptionListener (), $context -> getLogoutListener ()];
}
/**
* @return FirewallConfig|null
*/
public function getFirewallConfig ( Request $request )
{
$context = $this -> getFirewallContext ( $request );
if (null === $context ) {
return null ;
}
return $context -> getConfig ();
}
private function getFirewallContext ( Request $request ): ? FirewallContext
{
if ($request -> attributes -> has ( '_firewall_context' )) {
$storedContextId = $request -> attributes -> get ( '_firewall_context' );
foreach ($this -> map as $contextId => $requestMatcher ) {
if ($contextId === $storedContextId ) {
return $this -> container -> get ( $contextId );
}
}
$request -> attributes -> remove ( '_firewall_context' );
}
foreach ($this -> map as $contextId => $requestMatcher ) {
if (null === $requestMatcher || $requestMatcher -> matches ( $request )) {
$request -> attributes -> set ( '_firewall_context' , $contextId );
return $this -> container -> get ( $contextId );
}
}
return null ;
}
}