- <?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;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Compiler\AddExpressionLanguageProvidersPass;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Compiler\AddSecurityVotersPass;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Compiler\AddSessionDomainConstraintPass;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Compiler\CleanRememberMeVerifierPass;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Compiler\RegisterCsrfFeaturesPass;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Compiler\RegisterEntryPointPass;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Compiler\RegisterGlobalSecurityEventListenersPass;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Compiler\RegisterLdapLocatorPass;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Compiler\RegisterTokenUsageTrackingPass;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Compiler\ReplaceDecoratedRememberMeHandlerPass;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Compiler\SortFirewallListenersPass;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\AnonymousFactory;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\CustomAuthenticatorFactory;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\FormLoginFactory;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\FormLoginLdapFactory;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\GuardAuthenticationFactory;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\HttpBasicFactory;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\HttpBasicLdapFactory;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\JsonLoginFactory;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\JsonLoginLdapFactory;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\LoginLinkFactory;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\LoginThrottlingFactory;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\RememberMeFactory;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\RemoteUserFactory;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\X509Factory;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProvider\InMemoryFactory;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProvider\LdapFactory;
- use Symfony\Bundle\SecurityBundle\DependencyInjection\SecurityExtension;
- use Symfony\Component\DependencyInjection\Compiler\PassConfig;
- use Symfony\Component\DependencyInjection\ContainerBuilder;
- use Symfony\Component\EventDispatcher\DependencyInjection\AddEventAliasesPass;
- use Symfony\Component\HttpKernel\Bundle\Bundle;
- use Symfony\Component\Security\Core\AuthenticationEvents;
- use Symfony\Component\Security\Http\SecurityEvents;
- /**
-  * Bundle.
-  *
-  * @author Fabien Potencier <fabien@symfony.com>
-  */
- class SecurityBundle extends Bundle
- {
-     public function build(ContainerBuilder $container)
-     {
-         parent::build($container);
-         /** @var SecurityExtension $extension */
-         $extension = $container->getExtension('security');
-         $extension->addAuthenticatorFactory(new FormLoginFactory());
-         $extension->addAuthenticatorFactory(new FormLoginLdapFactory());
-         $extension->addAuthenticatorFactory(new JsonLoginFactory());
-         $extension->addAuthenticatorFactory(new JsonLoginLdapFactory());
-         $extension->addAuthenticatorFactory(new HttpBasicFactory());
-         $extension->addAuthenticatorFactory(new HttpBasicLdapFactory());
-         $extension->addAuthenticatorFactory(new RememberMeFactory());
-         $extension->addAuthenticatorFactory(new X509Factory());
-         $extension->addAuthenticatorFactory(new RemoteUserFactory());
-         $extension->addAuthenticatorFactory(new GuardAuthenticationFactory());
-         $extension->addAuthenticatorFactory(new AnonymousFactory());
-         $extension->addAuthenticatorFactory(new CustomAuthenticatorFactory());
-         $extension->addAuthenticatorFactory(new LoginThrottlingFactory());
-         $extension->addAuthenticatorFactory(new LoginLinkFactory());
-         $extension->addUserProviderFactory(new InMemoryFactory());
-         $extension->addUserProviderFactory(new LdapFactory());
-         $container->addCompilerPass(new AddExpressionLanguageProvidersPass());
-         $container->addCompilerPass(new AddSecurityVotersPass());
-         $container->addCompilerPass(new AddSessionDomainConstraintPass(), PassConfig::TYPE_BEFORE_REMOVING);
-         $container->addCompilerPass(new CleanRememberMeVerifierPass());
-         $container->addCompilerPass(new RegisterCsrfFeaturesPass());
-         $container->addCompilerPass(new RegisterTokenUsageTrackingPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION, 200);
-         $container->addCompilerPass(new RegisterLdapLocatorPass());
-         $container->addCompilerPass(new RegisterEntryPointPass());
-         // must be registered after RegisterListenersPass (in the FrameworkBundle)
-         $container->addCompilerPass(new RegisterGlobalSecurityEventListenersPass(), PassConfig::TYPE_BEFORE_REMOVING, -200);
-         // execute after ResolveChildDefinitionsPass optimization pass, to ensure class names are set
-         $container->addCompilerPass(new SortFirewallListenersPass(), PassConfig::TYPE_BEFORE_REMOVING);
-         $container->addCompilerPass(new ReplaceDecoratedRememberMeHandlerPass(), PassConfig::TYPE_OPTIMIZE);
-         $container->addCompilerPass(new AddEventAliasesPass(array_merge(
-             AuthenticationEvents::ALIASES,
-             SecurityEvents::ALIASES
-         )));
-     }
- }
-