[SecurityBundle] Move security configuration to PHP
This commit is contained in:
parent
a184e54cb3
commit
acc705762a
@ -111,16 +111,16 @@ class SecurityExtension extends Extension implements PrependExtensionInterface
|
||||
|
||||
$phpLoader = new PhpFileLoader($container, new FileLocator(\dirname(__DIR__).'/Resources/config'));
|
||||
|
||||
$loader->load('security.xml');
|
||||
$loader->load('security_listeners.xml');
|
||||
$loader->load('security_rememberme.xml');
|
||||
$phpLoader->load('security.php');
|
||||
$phpLoader->load('security_listeners.php');
|
||||
$phpLoader->load('security_rememberme.php');
|
||||
|
||||
if ($this->authenticatorManagerEnabled = $config['enable_authenticator_manager']) {
|
||||
if ($config['always_authenticate_before_granting']) {
|
||||
throw new InvalidConfigurationException('The security option "always_authenticate_before_granting" cannot be used when "enable_authenticator_manager" is set to true. If you rely on this behavior, set it to false.');
|
||||
}
|
||||
|
||||
$loader->load('security_authenticator.xml');
|
||||
$phpLoader->load('security_authenticator.php');
|
||||
|
||||
// The authenticator system no longer has anonymous tokens. This makes sure AccessListener
|
||||
// and AuthorizationChecker do not throw AuthenticationCredentialsNotFoundException when no
|
||||
@ -129,7 +129,7 @@ class SecurityExtension extends Extension implements PrependExtensionInterface
|
||||
$container->getDefinition('security.authorization_checker')->setArgument(4, false);
|
||||
$container->getDefinition('security.authorization_checker')->setArgument(5, false);
|
||||
} else {
|
||||
$loader->load('security_legacy.xml');
|
||||
$phpLoader->load('security_legacy.php');
|
||||
}
|
||||
|
||||
if (class_exists(AbstractExtension::class)) {
|
||||
@ -140,7 +140,7 @@ class SecurityExtension extends Extension implements PrependExtensionInterface
|
||||
$phpLoader->load('guard.php');
|
||||
|
||||
if ($container->hasParameter('kernel.debug') && $container->getParameter('kernel.debug')) {
|
||||
$loader->load('security_debug.xml');
|
||||
$phpLoader->load('security_debug.php');
|
||||
}
|
||||
|
||||
if (!class_exists('Symfony\Component\ExpressionLanguage\ExpressionLanguage')) {
|
||||
|
275
src/Symfony/Bundle/SecurityBundle/Resources/config/security.php
Normal file
275
src/Symfony/Bundle/SecurityBundle/Resources/config/security.php
Normal file
@ -0,0 +1,275 @@
|
||||
<?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\Component\DependencyInjection\Loader\Configurator;
|
||||
|
||||
use Symfony\Bundle\SecurityBundle\CacheWarmer\ExpressionCacheWarmer;
|
||||
use Symfony\Bundle\SecurityBundle\EventListener\FirewallEventBubblingListener;
|
||||
use Symfony\Bundle\SecurityBundle\EventListener\FirewallListener;
|
||||
use Symfony\Bundle\SecurityBundle\Security\FirewallConfig;
|
||||
use Symfony\Bundle\SecurityBundle\Security\FirewallContext;
|
||||
use Symfony\Bundle\SecurityBundle\Security\FirewallMap;
|
||||
use Symfony\Bundle\SecurityBundle\Security\LazyFirewallContext;
|
||||
use Symfony\Component\Ldap\Security\LdapUserProvider;
|
||||
use Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolver;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage;
|
||||
use Symfony\Component\Security\Core\Authorization\AccessDecisionManager;
|
||||
use Symfony\Component\Security\Core\Authorization\AccessDecisionManagerInterface;
|
||||
use Symfony\Component\Security\Core\Authorization\AuthorizationChecker;
|
||||
use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
|
||||
use Symfony\Component\Security\Core\Authorization\ExpressionLanguage;
|
||||
use Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter;
|
||||
use Symfony\Component\Security\Core\Authorization\Voter\ExpressionVoter;
|
||||
use Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter;
|
||||
use Symfony\Component\Security\Core\Authorization\Voter\RoleVoter;
|
||||
use Symfony\Component\Security\Core\Encoder\EncoderFactory;
|
||||
use Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface;
|
||||
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoder;
|
||||
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
|
||||
use Symfony\Component\Security\Core\Role\RoleHierarchy;
|
||||
use Symfony\Component\Security\Core\Role\RoleHierarchyInterface;
|
||||
use Symfony\Component\Security\Core\Security;
|
||||
use Symfony\Component\Security\Core\User\ChainUserProvider;
|
||||
use Symfony\Component\Security\Core\User\InMemoryUserProvider;
|
||||
use Symfony\Component\Security\Core\User\MissingUserProvider;
|
||||
use Symfony\Component\Security\Core\User\UserChecker;
|
||||
use Symfony\Component\Security\Core\Validator\Constraints\UserPasswordValidator;
|
||||
use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
|
||||
use Symfony\Component\Security\Http\Controller\UserValueResolver;
|
||||
use Symfony\Component\Security\Http\Firewall;
|
||||
use Symfony\Component\Security\Http\HttpUtils;
|
||||
use Symfony\Component\Security\Http\Logout\LogoutUrlGenerator;
|
||||
use Symfony\Component\Security\Http\Session\SessionAuthenticationStrategy;
|
||||
use Symfony\Component\Security\Http\Session\SessionAuthenticationStrategyInterface;
|
||||
|
||||
return static function (ContainerConfigurator $container) {
|
||||
$container->parameters()
|
||||
->set('security.role_hierarchy.roles', [])
|
||||
;
|
||||
|
||||
$container->services()
|
||||
->set('security.authorization_checker', AuthorizationChecker::class)
|
||||
->public()
|
||||
->args([
|
||||
service('security.token_storage'),
|
||||
service('security.authentication.manager'),
|
||||
service('security.access.decision_manager'),
|
||||
param('security.access.always_authenticate_before_granting'),
|
||||
])
|
||||
->alias(AuthorizationCheckerInterface::class, 'security.authorization_checker')
|
||||
|
||||
->set('security.token_storage', UsageTrackingTokenStorage::class)
|
||||
->public()
|
||||
->args([
|
||||
service('security.untracked_token_storage'),
|
||||
service_locator([
|
||||
'session' => service('session'),
|
||||
]),
|
||||
])
|
||||
->tag('kernel.reset', ['method' => 'disableUsageTracking'])
|
||||
->tag('kernel.reset', ['method' => 'setToken'])
|
||||
->alias(TokenStorageInterface::class, 'security.token_storage')
|
||||
|
||||
->set('security.untracked_token_storage', TokenStorage::class)
|
||||
|
||||
->set('security.helper', Security::class)
|
||||
->args([service_locator([
|
||||
'security.token_storage' => service('security.token_storage'),
|
||||
'security.authorization_checker' => service('security.authorization_checker'),
|
||||
])])
|
||||
->alias(Security::class, 'security.helper')
|
||||
|
||||
->set('security.user_value_resolver', UserValueResolver::class)
|
||||
->args([
|
||||
service('security.token_storage'),
|
||||
])
|
||||
->tag('controller.argument_value_resolver', ['priority' => 40])
|
||||
|
||||
// Authentication related services
|
||||
->set('security.authentication.trust_resolver', AuthenticationTrustResolver::class)
|
||||
|
||||
->set('security.authentication.session_strategy', SessionAuthenticationStrategy::class)
|
||||
->args([param('security.authentication.session_strategy.strategy')])
|
||||
->alias(SessionAuthenticationStrategyInterface::class, 'security.authentication.session_strategy')
|
||||
|
||||
->set('security.authentication.session_strategy_noop', SessionAuthenticationStrategy::class)
|
||||
->args(['none'])
|
||||
|
||||
->set('security.encoder_factory.generic', EncoderFactory::class)
|
||||
->args([[]])
|
||||
->alias('security.encoder_factory', 'security.encoder_factory.generic')
|
||||
->alias(EncoderFactoryInterface::class, 'security.encoder_factory')
|
||||
|
||||
->set('security.user_password_encoder.generic', UserPasswordEncoder::class)
|
||||
->args([service('security.encoder_factory')])
|
||||
->alias('security.password_encoder', 'security.user_password_encoder.generic')->public()
|
||||
->alias(UserPasswordEncoderInterface::class, 'security.password_encoder')
|
||||
|
||||
->set('security.user_checker', UserChecker::class)
|
||||
|
||||
->set('security.expression_language', ExpressionLanguage::class)
|
||||
->args([service('cache.security_expression_language')->nullOnInvalid()])
|
||||
|
||||
->set('security.authentication_utils', AuthenticationUtils::class)
|
||||
->args([service('request_stack')])
|
||||
->alias(AuthenticationUtils::class, 'security.authentication_utils')
|
||||
|
||||
->set('security.event_dispatcher.event_bubbling_listener', FirewallEventBubblingListener::class)
|
||||
->abstract()
|
||||
->args([service('event_dispatcher')])
|
||||
|
||||
// Authorization related services
|
||||
->set('security.access.decision_manager', AccessDecisionManager::class)
|
||||
->args([[]])
|
||||
->alias(AccessDecisionManagerInterface::class, 'security.access.decision_manager')
|
||||
|
||||
->set('security.role_hierarchy', RoleHierarchy::class)
|
||||
->args([param('security.role_hierarchy.roles')])
|
||||
->alias(RoleHierarchyInterface::class, 'security.role_hierarchy')
|
||||
|
||||
// Security Voters
|
||||
->set('security.access.simple_role_voter', RoleVoter::class)
|
||||
->tag('security.voter', ['priority' => 245])
|
||||
|
||||
->set('security.access.authenticated_voter', AuthenticatedVoter::class)
|
||||
->args([service('security.authentication.trust_resolver')])
|
||||
->tag('security.voter', ['priority' => 250])
|
||||
|
||||
->set('security.access.role_hierarchy_voter', RoleHierarchyVoter::class)
|
||||
->args([service('security.role_hierarchy')])
|
||||
->tag('security.voter', ['priority' => 245])
|
||||
|
||||
->set('security.access.expression_voter', ExpressionVoter::class)
|
||||
->args([
|
||||
service('security.expression_language'),
|
||||
service('security.authentication.trust_resolver'),
|
||||
service('security.authorization_checker'),
|
||||
service('security.role_hierarchy')->nullOnInvalid(),
|
||||
])
|
||||
->tag('security.voter', ['priority' => 245])
|
||||
|
||||
// Firewall related services
|
||||
->set('security.firewall', FirewallListener::class)
|
||||
->tag('kernel.event_subscriber')
|
||||
->args([
|
||||
service('security.firewall.map'),
|
||||
service('event_dispatcher'),
|
||||
service('security.logout_url_generator'),
|
||||
])
|
||||
->alias(Firewall::class, 'security.firewall')
|
||||
|
||||
->set('security.firewall.map', FirewallMap::class)
|
||||
->args([
|
||||
abstract_arg('Firewall context locator'),
|
||||
abstract_arg('Request matchers'),
|
||||
])
|
||||
|
||||
->set('security.firewall.context', FirewallContext::class)
|
||||
->abstract()
|
||||
->args([
|
||||
[],
|
||||
service('security.exception_listener'),
|
||||
abstract_arg('LogoutListener'),
|
||||
abstract_arg('FirewallConfig'),
|
||||
])
|
||||
|
||||
->set('security.firewall.lazy_context', LazyFirewallContext::class)
|
||||
->abstract()
|
||||
->args([
|
||||
[],
|
||||
service('security.exception_listener'),
|
||||
abstract_arg('LogoutListener'),
|
||||
abstract_arg('FirewallConfig'),
|
||||
service('security.untracked_token_storage'),
|
||||
])
|
||||
|
||||
->set('security.firewall.config', FirewallConfig::class)
|
||||
->abstract()
|
||||
->args([
|
||||
abstract_arg('name'),
|
||||
abstract_arg('user_checker'),
|
||||
abstract_arg('request_matcher'),
|
||||
false, // security enabled
|
||||
false, // stateless
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
[], // listeners
|
||||
null, // switch_user
|
||||
])
|
||||
|
||||
->set('security.logout_url_generator', LogoutUrlGenerator::class)
|
||||
->args([
|
||||
service('request_stack')->nullOnInvalid(),
|
||||
service('router')->nullOnInvalid(),
|
||||
service('security.token_storage')->nullOnInvalid(),
|
||||
])
|
||||
|
||||
// Provisioning
|
||||
->set('security.user.provider.missing', MissingUserProvider::class)
|
||||
->abstract()
|
||||
->args([
|
||||
abstract_arg('firewall'),
|
||||
])
|
||||
|
||||
->set('security.user.provider.in_memory', InMemoryUserProvider::class)
|
||||
->abstract()
|
||||
|
||||
->set('security.user.provider.ldap', LdapUserProvider::class)
|
||||
->abstract()
|
||||
->args([
|
||||
abstract_arg('security.ldap.ldap'),
|
||||
abstract_arg('base dn'),
|
||||
abstract_arg('search dn'),
|
||||
abstract_arg('search password'),
|
||||
abstract_arg('default_roles'),
|
||||
abstract_arg('uid key'),
|
||||
abstract_arg('filter'),
|
||||
abstract_arg('password_attribute'),
|
||||
[], // extra_fields (email etc)'),
|
||||
])
|
||||
|
||||
->set('security.user.provider.chain', ChainUserProvider::class)
|
||||
->abstract()
|
||||
|
||||
->set('security.http_utils', HttpUtils::class)
|
||||
->args([
|
||||
service('router')->nullOnInvalid(),
|
||||
service('router')->nullOnInvalid(),
|
||||
])
|
||||
->alias(HttpUtils::class, 'security.http_utils')
|
||||
|
||||
// Validator
|
||||
->set('security.validator.user_password', UserPasswordValidator::class)
|
||||
->tag('validator.constraint_validator', ['alias' => 'security.validator.user_password'])
|
||||
->args([
|
||||
service('security.token_storage'),
|
||||
service('security.encoder_factory'),
|
||||
])
|
||||
|
||||
// Cache
|
||||
->set('cache.security_expression_language')
|
||||
->parent('cache.system')
|
||||
->tag('cache.pool')
|
||||
|
||||
// Cache Warmers
|
||||
->set('security.cache_warmer.expression', ExpressionCacheWarmer::class)
|
||||
->tag('kernel.cache_warmer')
|
||||
->args([
|
||||
[],
|
||||
service('security.expression_language'),
|
||||
])
|
||||
;
|
||||
};
|
@ -1,220 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
|
||||
<container xmlns="http://symfony.com/schema/dic/services"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd">
|
||||
|
||||
<parameters>
|
||||
<parameter key="security.role_hierarchy.roles" type="collection" />
|
||||
</parameters>
|
||||
|
||||
<services>
|
||||
<defaults public="false" />
|
||||
|
||||
<service id="security.authorization_checker" class="Symfony\Component\Security\Core\Authorization\AuthorizationChecker" public="true">
|
||||
<argument type="service" id="security.token_storage" />
|
||||
<argument type="service" id="security.authentication.manager" />
|
||||
<argument type="service" id="security.access.decision_manager" />
|
||||
<argument>%security.access.always_authenticate_before_granting%</argument>
|
||||
</service>
|
||||
<service id="Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface" alias="security.authorization_checker" />
|
||||
|
||||
<service id="security.token_storage" class="Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage" public="true">
|
||||
<tag name="kernel.reset" method="disableUsageTracking" />
|
||||
<tag name="kernel.reset" method="setToken" />
|
||||
<argument type="service" id="security.untracked_token_storage" />
|
||||
<argument type="service_locator">
|
||||
<argument key="session" type="service" id="session" />
|
||||
</argument>
|
||||
</service>
|
||||
<service id="Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface" alias="security.token_storage" />
|
||||
|
||||
<service id="security.untracked_token_storage" class="Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage" />
|
||||
|
||||
<service id="security.helper" class="Symfony\Component\Security\Core\Security">
|
||||
<argument type="service_locator">
|
||||
<argument key="security.token_storage" type="service" id="security.token_storage" />
|
||||
<argument key="security.authorization_checker" type="service" id="security.authorization_checker" />
|
||||
</argument>
|
||||
</service>
|
||||
<service id="Symfony\Component\Security\Core\Security" alias="security.helper" />
|
||||
|
||||
<service id="security.user_value_resolver" class="Symfony\Component\Security\Http\Controller\UserValueResolver">
|
||||
<argument type="service" id="security.token_storage" />
|
||||
<tag name="controller.argument_value_resolver" priority="40" />
|
||||
</service>
|
||||
|
||||
<!-- Authentication related services -->
|
||||
<service id="security.authentication.trust_resolver" class="Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolver" />
|
||||
|
||||
<service id="security.authentication.session_strategy" class="Symfony\Component\Security\Http\Session\SessionAuthenticationStrategy">
|
||||
<argument>%security.authentication.session_strategy.strategy%</argument>
|
||||
</service>
|
||||
<service id="Symfony\Component\Security\Http\Session\SessionAuthenticationStrategyInterface" alias="security.authentication.session_strategy" />
|
||||
|
||||
<service id="security.authentication.session_strategy_noop" class="Symfony\Component\Security\Http\Session\SessionAuthenticationStrategy" public="false">
|
||||
<argument>none</argument>
|
||||
</service>
|
||||
|
||||
<service id="security.encoder_factory.generic" class="Symfony\Component\Security\Core\Encoder\EncoderFactory">
|
||||
<argument type="collection" />
|
||||
</service>
|
||||
|
||||
<service id="security.encoder_factory" alias="security.encoder_factory.generic" />
|
||||
<service id="Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface" alias="security.encoder_factory" />
|
||||
|
||||
<service id="security.user_password_encoder.generic" class="Symfony\Component\Security\Core\Encoder\UserPasswordEncoder">
|
||||
<argument type="service" id="security.encoder_factory"></argument>
|
||||
</service>
|
||||
|
||||
<service id="security.password_encoder" alias="security.user_password_encoder.generic" public="true" />
|
||||
<service id="Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface" alias="security.password_encoder" />
|
||||
|
||||
<service id="security.user_checker" class="Symfony\Component\Security\Core\User\UserChecker" />
|
||||
|
||||
<service id="security.expression_language" class="Symfony\Component\Security\Core\Authorization\ExpressionLanguage">
|
||||
<argument type="service" id="cache.security_expression_language" on-invalid="null" />
|
||||
</service>
|
||||
|
||||
<service id="security.authentication_utils" class="Symfony\Component\Security\Http\Authentication\AuthenticationUtils" public="true">
|
||||
<argument type="service" id="request_stack" />
|
||||
</service>
|
||||
<service id="Symfony\Component\Security\Http\Authentication\AuthenticationUtils" alias="security.authentication_utils" />
|
||||
|
||||
<service id="security.event_dispatcher.event_bubbling_listener" class="Symfony\Bundle\SecurityBundle\EventListener\FirewallEventBubblingListener" abstract="true">
|
||||
<argument type="service" id="event_dispatcher" />
|
||||
</service>
|
||||
|
||||
<!-- Authorization related services -->
|
||||
<service id="security.access.decision_manager" class="Symfony\Component\Security\Core\Authorization\AccessDecisionManager">
|
||||
<argument type="collection" />
|
||||
</service>
|
||||
<service id="Symfony\Component\Security\Core\Authorization\AccessDecisionManagerInterface" alias="security.access.decision_manager" />
|
||||
|
||||
<service id="security.role_hierarchy" class="Symfony\Component\Security\Core\Role\RoleHierarchy">
|
||||
<argument>%security.role_hierarchy.roles%</argument>
|
||||
</service>
|
||||
<service id="Symfony\Component\Security\Core\Role\RoleHierarchyInterface" alias="security.role_hierarchy" />
|
||||
|
||||
<!-- Security Voters -->
|
||||
<service id="security.access.simple_role_voter" class="Symfony\Component\Security\Core\Authorization\Voter\RoleVoter">
|
||||
<tag name="security.voter" priority="245" />
|
||||
</service>
|
||||
|
||||
<service id="security.access.authenticated_voter" class="Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter">
|
||||
<argument type="service" id="security.authentication.trust_resolver" />
|
||||
<tag name="security.voter" priority="250" />
|
||||
</service>
|
||||
|
||||
<service id="security.access.role_hierarchy_voter" class="Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter">
|
||||
<argument type="service" id="security.role_hierarchy" />
|
||||
<tag name="security.voter" priority="245" />
|
||||
</service>
|
||||
|
||||
<service id="security.access.expression_voter" class="Symfony\Component\Security\Core\Authorization\Voter\ExpressionVoter">
|
||||
<argument type="service" id="security.expression_language" />
|
||||
<argument type="service" id="security.authentication.trust_resolver" />
|
||||
<argument type="service" id="security.authorization_checker" />
|
||||
<argument type="service" id="security.role_hierarchy" on-invalid="null" />
|
||||
<tag name="security.voter" priority="245" />
|
||||
</service>
|
||||
|
||||
|
||||
<!-- Firewall related services -->
|
||||
<service id="security.firewall" class="Symfony\Bundle\SecurityBundle\EventListener\FirewallListener">
|
||||
<tag name="kernel.event_subscriber" />
|
||||
<argument type="service" id="security.firewall.map" />
|
||||
<argument type="service" id="event_dispatcher" />
|
||||
<argument type="service" id="security.logout_url_generator" />
|
||||
</service>
|
||||
<service id="Symfony\Component\Security\Http\Firewall" alias="security.firewall" />
|
||||
|
||||
<service id="security.firewall.map" class="Symfony\Bundle\SecurityBundle\Security\FirewallMap">
|
||||
<argument /> <!-- Firewall context locator -->
|
||||
<argument /> <!-- Request matchers -->
|
||||
</service>
|
||||
|
||||
<service id="security.firewall.context" class="Symfony\Bundle\SecurityBundle\Security\FirewallContext" abstract="true">
|
||||
<argument type="collection" />
|
||||
<argument type="service" id="security.exception_listener" />
|
||||
<argument /> <!-- LogoutListener -->
|
||||
<argument /> <!-- FirewallConfig -->
|
||||
</service>
|
||||
|
||||
<service id="security.firewall.lazy_context" class="Symfony\Bundle\SecurityBundle\Security\LazyFirewallContext" abstract="true">
|
||||
<argument type="collection" />
|
||||
<argument type="service" id="security.exception_listener" />
|
||||
<argument /> <!-- LogoutListener -->
|
||||
<argument /> <!-- FirewallConfig -->
|
||||
<argument type="service" id="security.untracked_token_storage" />
|
||||
</service>
|
||||
|
||||
<service id="security.firewall.config" class="Symfony\Bundle\SecurityBundle\Security\FirewallConfig" abstract="true">
|
||||
<argument /> <!-- name -->
|
||||
<argument /> <!-- user_checker -->
|
||||
<argument /> <!-- request_matcher -->
|
||||
<argument>false</argument> <!-- security enabled -->
|
||||
<argument>false</argument> <!-- stateless -->
|
||||
<argument /> <!-- provider -->
|
||||
<argument /> <!-- context -->
|
||||
<argument /> <!-- entry_point -->
|
||||
<argument /> <!-- access_denied_handler -->
|
||||
<argument /> <!-- access_denied_url -->
|
||||
<argument type="collection" /> <!-- listeners -->
|
||||
<argument>null</argument> <!-- switch_user -->
|
||||
</service>
|
||||
|
||||
<service id="security.logout_url_generator" class="Symfony\Component\Security\Http\Logout\LogoutUrlGenerator">
|
||||
<argument type="service" id="request_stack" on-invalid="null" />
|
||||
<argument type="service" id="router" on-invalid="null" />
|
||||
<argument type="service" id="security.token_storage" />
|
||||
</service>
|
||||
|
||||
<!-- Provisioning -->
|
||||
<service id="security.user.provider.missing" class="Symfony\Component\Security\Core\User\MissingUserProvider" abstract="true">
|
||||
<argument /> <!-- firewall -->
|
||||
</service>
|
||||
|
||||
<service id="security.user.provider.in_memory" class="Symfony\Component\Security\Core\User\InMemoryUserProvider" abstract="true" />
|
||||
|
||||
<service id="security.user.provider.ldap" class="Symfony\Component\Ldap\Security\LdapUserProvider" abstract="true">
|
||||
<argument /> <!-- security.ldap.ldap -->
|
||||
<argument /> <!-- base dn -->
|
||||
<argument /> <!-- search dn -->
|
||||
<argument /> <!-- search password -->
|
||||
<argument /> <!-- default_roles -->
|
||||
<argument /> <!-- uid key -->
|
||||
<argument /> <!-- filter -->
|
||||
<argument /> <!-- password_attribute -->
|
||||
<argument /> <!-- extra_fields (email etc) -->
|
||||
</service>
|
||||
|
||||
<service id="security.user.provider.chain" class="Symfony\Component\Security\Core\User\ChainUserProvider" abstract="true" />
|
||||
|
||||
<service id="security.http_utils" class="Symfony\Component\Security\Http\HttpUtils">
|
||||
<argument type="service" id="router" on-invalid="null" />
|
||||
<argument type="service" id="router" on-invalid="null" />
|
||||
</service>
|
||||
<service id="Symfony\Component\Security\Http\HttpUtils" alias="security.http_utils" />
|
||||
|
||||
|
||||
<!-- Validator -->
|
||||
<service id="security.validator.user_password" class="Symfony\Component\Security\Core\Validator\Constraints\UserPasswordValidator">
|
||||
<tag name="validator.constraint_validator" alias="security.validator.user_password" />
|
||||
<argument type="service" id="security.token_storage" />
|
||||
<argument type="service" id="security.encoder_factory" />
|
||||
</service>
|
||||
|
||||
<!-- Cache -->
|
||||
<service id="cache.security_expression_language" parent="cache.system" public="false">
|
||||
<tag name="cache.pool" />
|
||||
</service>
|
||||
|
||||
<!-- Cache Warmers -->
|
||||
<service id="security.cache_warmer.expression" class="Symfony\Bundle\SecurityBundle\CacheWarmer\ExpressionCacheWarmer">
|
||||
<tag name="kernel.cache_warmer" />
|
||||
<argument type="collection" /> <!-- expressions -->
|
||||
<argument type="service" id="security.expression_language" />
|
||||
</service>
|
||||
</services>
|
||||
</container>
|
@ -0,0 +1,159 @@
|
||||
<?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\Component\DependencyInjection\Loader\Configurator;
|
||||
|
||||
use Symfony\Bundle\SecurityBundle\Security\UserAuthenticator;
|
||||
use Symfony\Component\DependencyInjection\ServiceLocator;
|
||||
use Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface;
|
||||
use Symfony\Component\Security\Http\Authentication\AuthenticatorManager;
|
||||
use Symfony\Component\Security\Http\Authentication\NoopAuthenticationManager;
|
||||
use Symfony\Component\Security\Http\Authentication\UserAuthenticatorInterface;
|
||||
use Symfony\Component\Security\Http\Authenticator\FormLoginAuthenticator;
|
||||
use Symfony\Component\Security\Http\Authenticator\HttpBasicAuthenticator;
|
||||
use Symfony\Component\Security\Http\Authenticator\JsonLoginAuthenticator;
|
||||
use Symfony\Component\Security\Http\Authenticator\RememberMeAuthenticator;
|
||||
use Symfony\Component\Security\Http\Authenticator\RemoteUserAuthenticator;
|
||||
use Symfony\Component\Security\Http\Authenticator\X509Authenticator;
|
||||
use Symfony\Component\Security\Http\EventListener\CheckCredentialsListener;
|
||||
use Symfony\Component\Security\Http\EventListener\RememberMeListener;
|
||||
use Symfony\Component\Security\Http\EventListener\SessionStrategyListener;
|
||||
use Symfony\Component\Security\Http\EventListener\UserCheckerListener;
|
||||
use Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener;
|
||||
|
||||
return static function (ContainerConfigurator $container) {
|
||||
$container->services()
|
||||
|
||||
// Manager
|
||||
->set('security.authenticator.manager', AuthenticatorManager::class)
|
||||
->abstract()
|
||||
->tag('monolog.logger', ['channel' => 'security'])
|
||||
->args([
|
||||
[], // authenticators
|
||||
service('security.token_storage'),
|
||||
service('event_dispatcher'),
|
||||
null, // provider key
|
||||
service('logger')->nullOnInvalid(),
|
||||
param('security.authentication.manager.erase_credentials'),
|
||||
])
|
||||
|
||||
->set('security.authenticator.managers_locator', ServiceLocator::class)
|
||||
->args([[]])
|
||||
|
||||
->set('security.user_authenticator', UserAuthenticator::class)
|
||||
->args([
|
||||
service('security.firewall.map'),
|
||||
service('security.authenticator.managers_locator'),
|
||||
service('request_stack'),
|
||||
])
|
||||
->alias(UserAuthenticatorInterface::class, 'security.user_authenticator')
|
||||
|
||||
->set('security.authentication.manager', NoopAuthenticationManager::class)
|
||||
->alias(AuthenticationManagerInterface::class, 'security.authentication.manager')
|
||||
|
||||
->set('security.firewall.authenticator', AuthenticatorManagerListener::class)
|
||||
->abstract()
|
||||
->args([
|
||||
null, // authenticator manager
|
||||
])
|
||||
|
||||
// Listeners
|
||||
->set('security.listener.check_authenticator_credentials', CheckCredentialsListener::class)
|
||||
->tag('kernel.event_subscriber')
|
||||
->args([
|
||||
service('security.encoder_factory'),
|
||||
])
|
||||
|
||||
->set('security.listener.user_checker', UserCheckerListener::class)
|
||||
->abstract()
|
||||
->args([
|
||||
abstract_arg('user checker'),
|
||||
])
|
||||
|
||||
->set('security.listener.session', SessionStrategyListener::class)
|
||||
->abstract()
|
||||
->args([
|
||||
service('security.authentication.session_strategy'),
|
||||
])
|
||||
|
||||
->set('security.listener.remember_me', RememberMeListener::class)
|
||||
->abstract()
|
||||
->tag('monolog.logger', ['channel' => 'security'])
|
||||
->args([
|
||||
[], // remember me services
|
||||
service('logger')->nullOnInvalid(),
|
||||
])
|
||||
|
||||
// Authenticators
|
||||
->set('security.authenticator.http_basic', HttpBasicAuthenticator::class)
|
||||
->abstract()
|
||||
->tag('monolog.logger', ['channel' => 'security'])
|
||||
->args([
|
||||
null, // realm name
|
||||
null, // user provider
|
||||
service('logger')->nullOnInvalid(),
|
||||
])
|
||||
|
||||
->set('security.authenticator.form_login', FormLoginAuthenticator::class)
|
||||
->abstract()
|
||||
->args([
|
||||
service('security.http_utils'),
|
||||
null, // user provider
|
||||
null, // authentication success handler
|
||||
null, // authentication failure handler
|
||||
[], // options
|
||||
])
|
||||
|
||||
->set('security.authenticator.json_login', JsonLoginAuthenticator::class)
|
||||
->abstract()
|
||||
->args([
|
||||
service('security.http_utils'),
|
||||
null, // user provider
|
||||
null, // authentication success handler
|
||||
null, // authentication failure handler
|
||||
[], // options
|
||||
service('property_accessor')->nullOnInvalid(),
|
||||
])
|
||||
|
||||
->set('security.authenticator.remember_me', RememberMeAuthenticator::class)
|
||||
->abstract()
|
||||
->args([
|
||||
[], // remember me services
|
||||
param('kernel.secret'),
|
||||
service('security.token_storage'),
|
||||
[], // options
|
||||
service('security.authentication.session_strategy'),
|
||||
])
|
||||
|
||||
->set('security.authenticator.x509', X509Authenticator::class)
|
||||
->abstract()
|
||||
->tag('monolog.logger', ['channel' => 'security'])
|
||||
->args([
|
||||
null, // user provider
|
||||
service('security.token_storage'),
|
||||
null, // firewall name
|
||||
null, // user key
|
||||
null, // credentials key
|
||||
service('logger')->nullOnInvalid(),
|
||||
])
|
||||
|
||||
->set('security.authenticator.remote_user', RemoteUserAuthenticator::class)
|
||||
->abstract()
|
||||
->tag('monolog.logger', ['channel' => 'security'])
|
||||
->args([
|
||||
null, // user provider
|
||||
service('security.token_storage'),
|
||||
null, // firewall name
|
||||
null, // user key
|
||||
service('logger')->nullOnInvalid(),
|
||||
])
|
||||
;
|
||||
};
|
@ -1,140 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
<container xmlns="http://symfony.com/schema/dic/services"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd">
|
||||
|
||||
<services>
|
||||
<!-- Manager -->
|
||||
|
||||
<service id="security.authenticator.manager"
|
||||
class="Symfony\Component\Security\Http\Authentication\AuthenticatorManager"
|
||||
abstract="true"
|
||||
>
|
||||
<tag name="monolog.logger" channel="security" />
|
||||
<argument type="abstract">authenticators</argument>
|
||||
<argument type="service" id="security.token_storage" />
|
||||
<argument type="service" id="event_dispatcher" />
|
||||
<argument type="abstract">provider key</argument>
|
||||
<argument type="service" id="logger" on-invalid="null" />
|
||||
<argument>%security.authentication.manager.erase_credentials%</argument>
|
||||
</service>
|
||||
|
||||
<service id="security.authenticator.managers_locator"
|
||||
class="Symfony\Component\DependencyInjection\ServiceLocator">
|
||||
<argument type="collection" />
|
||||
</service>
|
||||
|
||||
<service id="security.user_authenticator"
|
||||
class="Symfony\Bundle\SecurityBundle\Security\UserAuthenticator">
|
||||
<argument type="service" id="security.firewall.map" />
|
||||
<argument type="service" id="security.authenticator.managers_locator" />
|
||||
<argument type="service" id="request_stack" />
|
||||
</service>
|
||||
<service id="Symfony\Component\Security\Http\Authentication\UserAuthenticatorInterface" alias="security.user_authenticator" />
|
||||
|
||||
<service id="security.authentication.manager"
|
||||
class="Symfony\Component\Security\Http\Authentication\NoopAuthenticationManager"/>
|
||||
<service id="Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface" alias="security.authentication.manager" />
|
||||
|
||||
<service id="security.firewall.authenticator"
|
||||
class="Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener"
|
||||
abstract="true">
|
||||
<argument type="abstract">authenticator manager</argument>
|
||||
</service>
|
||||
|
||||
<!-- Listeners -->
|
||||
|
||||
<service id="security.listener.check_authenticator_credentials" class="Symfony\Component\Security\Http\EventListener\CheckCredentialsListener">
|
||||
<tag name="kernel.event_subscriber" />
|
||||
<argument type="service" id="security.encoder_factory" />
|
||||
</service>
|
||||
|
||||
<service id="security.listener.password_migrating" class="Symfony\Component\Security\Http\EventListener\PasswordMigratingListener">
|
||||
<tag name="kernel.event_subscriber" />
|
||||
<argument type="service" id="security.encoder_factory" />
|
||||
</service>
|
||||
|
||||
<service id="security.listener.user_checker" class="Symfony\Component\Security\Http\EventListener\UserCheckerListener" abstract="true">
|
||||
<argument type="abstract">user checker</argument>
|
||||
</service>
|
||||
|
||||
<service id="security.listener.session"
|
||||
class="Symfony\Component\Security\Http\EventListener\SessionStrategyListener"
|
||||
abstract="true">
|
||||
<argument type="service" id="security.authentication.session_strategy" />
|
||||
</service>
|
||||
|
||||
<service id="security.listener.remember_me"
|
||||
class="Symfony\Component\Security\Http\EventListener\RememberMeListener"
|
||||
abstract="true">
|
||||
<tag name="monolog.logger" channel="security" />
|
||||
<argument type="abstract">remember me services</argument>
|
||||
<argument type="service" id="logger" on-invalid="null" />
|
||||
</service>
|
||||
|
||||
<!-- Authenticators -->
|
||||
|
||||
<service id="security.authenticator.http_basic"
|
||||
class="Symfony\Component\Security\Http\Authenticator\HttpBasicAuthenticator"
|
||||
abstract="true">
|
||||
<tag name="monolog.logger" channel="security" />
|
||||
<argument type="abstract">realm name</argument>
|
||||
<argument type="abstract">user provider</argument>
|
||||
<argument type="service" id="logger" on-invalid="null" />
|
||||
</service>
|
||||
|
||||
<service id="security.authenticator.form_login"
|
||||
class="Symfony\Component\Security\Http\Authenticator\FormLoginAuthenticator"
|
||||
abstract="true">
|
||||
<argument type="service" id="security.http_utils" />
|
||||
<argument type="abstract">user provider</argument>
|
||||
<argument type="abstract">authentication success handler</argument>
|
||||
<argument type="abstract">authentication failure handler</argument>
|
||||
<argument type="abstract">options</argument>
|
||||
</service>
|
||||
|
||||
<service id="security.authenticator.json_login"
|
||||
class="Symfony\Component\Security\Http\Authenticator\JsonLoginAuthenticator"
|
||||
abstract="true">
|
||||
<argument type="service" id="security.http_utils" />
|
||||
<argument type="abstract">user provider</argument>
|
||||
<argument type="abstract">authentication success handler</argument>
|
||||
<argument type="abstract">authentication failure handler</argument>
|
||||
<argument type="abstract">options</argument>
|
||||
<argument type="service" id="property_accessor" on-invalid="null" />
|
||||
</service>
|
||||
|
||||
<service id="security.authenticator.remember_me"
|
||||
class="Symfony\Component\Security\Http\Authenticator\RememberMeAuthenticator"
|
||||
abstract="true">
|
||||
<argument type="abstract">remember me services</argument>
|
||||
<argument>%kernel.secret%</argument>
|
||||
<argument type="service" id="security.token_storage" />
|
||||
<argument type="abstract">options</argument>
|
||||
<argument type="service" id="security.authentication.session_strategy" />
|
||||
</service>
|
||||
|
||||
<service id="security.authenticator.x509"
|
||||
class="Symfony\Component\Security\Http\Authenticator\X509Authenticator"
|
||||
abstract="true">
|
||||
<tag name="monolog.logger" channel="security" />
|
||||
<argument type="abstract">user provider</argument>
|
||||
<argument type="service" id="security.token_storage"/>
|
||||
<argument type="abstract">firewall name</argument>
|
||||
<argument type="abstract">user key</argument>
|
||||
<argument type="abstract">credentials key</argument>
|
||||
<argument type="service" id="logger" on-invalid="null" />
|
||||
</service>
|
||||
|
||||
<service id="security.authenticator.remote_user"
|
||||
class="Symfony\Component\Security\Http\Authenticator\RemoteUserAuthenticator"
|
||||
abstract="true">
|
||||
<tag name="monolog.logger" channel="security" />
|
||||
<argument type="abstract">user provider</argument>
|
||||
<argument type="service" id="security.token_storage"/>
|
||||
<argument type="abstract">firewall name</argument>
|
||||
<argument type="abstract">user key</argument>
|
||||
<argument type="service" id="logger" on-invalid="null" />
|
||||
</service>
|
||||
</services>
|
||||
</container>
|
@ -0,0 +1,41 @@
|
||||
<?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\Component\DependencyInjection\Loader\Configurator;
|
||||
|
||||
use Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener;
|
||||
use Symfony\Bundle\SecurityBundle\EventListener\VoteListener;
|
||||
use Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager;
|
||||
|
||||
return static function (ContainerConfigurator $container) {
|
||||
$container->services()
|
||||
->set('debug.security.access.decision_manager', TraceableAccessDecisionManager::class)
|
||||
->decorate('security.access.decision_manager')
|
||||
->args([
|
||||
service('debug.security.access.decision_manager.inner'),
|
||||
])
|
||||
|
||||
->set('debug.security.voter.vote_listener', VoteListener::class)
|
||||
->tag('kernel.event_subscriber')
|
||||
->args([
|
||||
service('debug.security.access.decision_manager'),
|
||||
])
|
||||
|
||||
->set('debug.security.firewall', TraceableFirewallListener::class)
|
||||
->tag('kernel.event_subscriber')
|
||||
->args([
|
||||
service('security.firewall.map'),
|
||||
service('event_dispatcher'),
|
||||
service('security.logout_url_generator'),
|
||||
])
|
||||
->alias('security.firewall', 'debug.security.firewall')
|
||||
;
|
||||
};
|
@ -1,28 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
|
||||
<container xmlns="http://symfony.com/schema/dic/services"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd">
|
||||
|
||||
<services>
|
||||
<defaults public="false" />
|
||||
|
||||
<service id="debug.security.access.decision_manager" class="Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager" decorates="security.access.decision_manager">
|
||||
<argument type="service" id="debug.security.access.decision_manager.inner" />
|
||||
</service>
|
||||
|
||||
<service id="debug.security.voter.vote_listener" class="Symfony\Bundle\SecurityBundle\EventListener\VoteListener">
|
||||
<tag name="kernel.event_subscriber" />
|
||||
<argument type="service" id="debug.security.access.decision_manager" />
|
||||
</service>
|
||||
|
||||
<service id="debug.security.firewall" class="Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener">
|
||||
<tag name="kernel.event_subscriber" />
|
||||
<argument type="service" id="security.firewall.map" />
|
||||
<argument type="service" id="event_dispatcher" />
|
||||
<argument type="service" id="security.logout_url_generator" />
|
||||
</service>
|
||||
|
||||
<service id="security.firewall" alias="debug.security.firewall" />
|
||||
</services>
|
||||
</container>
|
@ -0,0 +1,29 @@
|
||||
<?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\Component\DependencyInjection\Loader\Configurator;
|
||||
|
||||
use Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface;
|
||||
use Symfony\Component\Security\Core\Authentication\AuthenticationProviderManager;
|
||||
|
||||
return static function (ContainerConfigurator $container) {
|
||||
$container->services()
|
||||
|
||||
// Authentication related services
|
||||
->set('security.authentication.manager', AuthenticationProviderManager::class)
|
||||
->args([
|
||||
abstract_arg('providers'),
|
||||
param('security.authentication.manager.erase_credentials'),
|
||||
])
|
||||
->call('setEventDispatcher', [service('event_dispatcher')])
|
||||
->alias(AuthenticationManagerInterface::class, 'security.authentication.manager')
|
||||
;
|
||||
};
|
@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
|
||||
<container xmlns="http://symfony.com/schema/dic/services"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd">
|
||||
|
||||
<services>
|
||||
<defaults public="false" />
|
||||
|
||||
<!-- Authentication related services -->
|
||||
<service id="security.authentication.manager" class="Symfony\Component\Security\Core\Authentication\AuthenticationProviderManager">
|
||||
<argument /> <!-- providers -->
|
||||
<argument>%security.authentication.manager.erase_credentials%</argument>
|
||||
<call method="setEventDispatcher">
|
||||
<argument type="service" id="event_dispatcher" />
|
||||
</call>
|
||||
</service>
|
||||
<service id="Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface" alias="security.authentication.manager" />
|
||||
</services>
|
||||
</container>
|
@ -0,0 +1,285 @@
|
||||
<?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\Component\DependencyInjection\Loader\Configurator;
|
||||
|
||||
use Symfony\Component\Security\Core\Authentication\Provider\AnonymousAuthenticationProvider;
|
||||
use Symfony\Component\Security\Core\Authentication\Provider\DaoAuthenticationProvider;
|
||||
use Symfony\Component\Security\Core\Authentication\Provider\LdapBindAuthenticationProvider;
|
||||
use Symfony\Component\Security\Core\Authentication\Provider\PreAuthenticatedAuthenticationProvider;
|
||||
use Symfony\Component\Security\Http\AccessMap;
|
||||
use Symfony\Component\Security\Http\Authentication\CustomAuthenticationFailureHandler;
|
||||
use Symfony\Component\Security\Http\Authentication\CustomAuthenticationSuccessHandler;
|
||||
use Symfony\Component\Security\Http\Authentication\DefaultAuthenticationFailureHandler;
|
||||
use Symfony\Component\Security\Http\Authentication\DefaultAuthenticationSuccessHandler;
|
||||
use Symfony\Component\Security\Http\EntryPoint\BasicAuthenticationEntryPoint;
|
||||
use Symfony\Component\Security\Http\EntryPoint\FormAuthenticationEntryPoint;
|
||||
use Symfony\Component\Security\Http\EntryPoint\RetryAuthenticationEntryPoint;
|
||||
use Symfony\Component\Security\Http\EventListener\CookieClearingLogoutListener;
|
||||
use Symfony\Component\Security\Http\EventListener\DefaultLogoutListener;
|
||||
use Symfony\Component\Security\Http\EventListener\SessionLogoutListener;
|
||||
use Symfony\Component\Security\Http\Firewall\AccessListener;
|
||||
use Symfony\Component\Security\Http\Firewall\AnonymousAuthenticationListener;
|
||||
use Symfony\Component\Security\Http\Firewall\BasicAuthenticationListener;
|
||||
use Symfony\Component\Security\Http\Firewall\ChannelListener;
|
||||
use Symfony\Component\Security\Http\Firewall\ContextListener;
|
||||
use Symfony\Component\Security\Http\Firewall\ExceptionListener;
|
||||
use Symfony\Component\Security\Http\Firewall\LogoutListener;
|
||||
use Symfony\Component\Security\Http\Firewall\RemoteUserAuthenticationListener;
|
||||
use Symfony\Component\Security\Http\Firewall\SwitchUserListener;
|
||||
use Symfony\Component\Security\Http\Firewall\UsernamePasswordFormAuthenticationListener;
|
||||
use Symfony\Component\Security\Http\Firewall\UsernamePasswordJsonAuthenticationListener;
|
||||
use Symfony\Component\Security\Http\Firewall\X509AuthenticationListener;
|
||||
|
||||
return static function (ContainerConfigurator $container) {
|
||||
$container->services()
|
||||
->set('security.authentication.listener.anonymous', AnonymousAuthenticationListener::class)
|
||||
->tag('monolog.logger', ['channel' => 'security'])
|
||||
->args([
|
||||
service('security.untracked_token_storage'),
|
||||
abstract_arg('Key'),
|
||||
service('logger')->nullOnInvalid(),
|
||||
service('security.authentication.manager'),
|
||||
])
|
||||
|
||||
->set('security.authentication.provider.anonymous', AnonymousAuthenticationProvider::class)
|
||||
->args([abstract_arg('Key')])
|
||||
|
||||
->set('security.authentication.retry_entry_point', RetryAuthenticationEntryPoint::class)
|
||||
->args([
|
||||
inline_service('int')->factory([service('router.request_context'), 'getHttpPort']),
|
||||
inline_service('int')->factory([service('router.request_context'), 'getHttpsPort']),
|
||||
])
|
||||
|
||||
->set('security.authentication.basic_entry_point', BasicAuthenticationEntryPoint::class)
|
||||
|
||||
->set('security.channel_listener', ChannelListener::class)
|
||||
->tag('monolog.logger', ['channel' => 'security'])
|
||||
->args([
|
||||
service('security.access_map'),
|
||||
service('security.authentication.retry_entry_point'),
|
||||
service('logger')->nullOnInvalid(),
|
||||
])
|
||||
|
||||
->set('security.access_map', AccessMap::class)
|
||||
|
||||
->set('security.context_listener', ContextListener::class)
|
||||
->tag('monolog.logger', ['channel' => 'security'])
|
||||
->args([
|
||||
service('security.untracked_token_storage'),
|
||||
[],
|
||||
abstract_arg('Provider Key'),
|
||||
service('logger')->nullOnInvalid(),
|
||||
service('event_dispatcher')->nullOnInvalid(),
|
||||
service('security.authentication.trust_resolver'),
|
||||
])
|
||||
|
||||
->set('security.logout_listener', LogoutListener::class)
|
||||
->abstract()
|
||||
->args([
|
||||
service('security.token_storage'),
|
||||
service('security.http_utils'),
|
||||
abstract_arg('event dispatcher'),
|
||||
[], // Options
|
||||
])
|
||||
|
||||
->set('security.logout.listener.session', SessionLogoutListener::class)->abstract()
|
||||
|
||||
->set('security.logout.listener.cookie_clearing', CookieClearingLogoutListener::class)->abstract()
|
||||
|
||||
->set('security.logout.listener.default', DefaultLogoutListener::class)
|
||||
->abstract()
|
||||
->args([
|
||||
service('security.http_utils'),
|
||||
abstract_arg('target url'),
|
||||
])
|
||||
|
||||
->set('security.authentication.form_entry_point', FormAuthenticationEntryPoint::class)
|
||||
->abstract()
|
||||
->args([
|
||||
service('http_kernel'),
|
||||
])
|
||||
|
||||
->set('security.authentication.listener.abstract')
|
||||
->abstract()
|
||||
->tag('monolog.logger', ['channel' => 'security'])
|
||||
->args([
|
||||
service('security.token_storage'),
|
||||
service('security.authentication.manager'),
|
||||
service('security.authentication.session_strategy'),
|
||||
service('security.http_utils'),
|
||||
abstract_arg(''),
|
||||
service('security.authentication.success_handler'),
|
||||
service('security.authentication.failure_handler'),
|
||||
[],
|
||||
service('logger')->nullOnInvalid(),
|
||||
service('event_dispatcher')->nullOnInvalid(),
|
||||
])
|
||||
|
||||
->set('security.authentication.custom_success_handler', CustomAuthenticationSuccessHandler::class)
|
||||
->abstract()
|
||||
->args([
|
||||
abstract_arg('The custom success handler service id'),
|
||||
[], // Options
|
||||
abstract_arg('Provider-shared Key'),
|
||||
])
|
||||
|
||||
->set('security.authentication.success_handler', DefaultAuthenticationSuccessHandler::class)
|
||||
->abstract()
|
||||
->args([
|
||||
service('security.http_utils'),
|
||||
[], // Options
|
||||
])
|
||||
|
||||
->set('security.authentication.custom_failure_handler', CustomAuthenticationFailureHandler::class)
|
||||
->abstract()
|
||||
->args([
|
||||
abstract_arg('The custom failure handler service id'),
|
||||
[], // Options
|
||||
])
|
||||
|
||||
->set('security.authentication.failure_handler', DefaultAuthenticationFailureHandler::class)
|
||||
->abstract()
|
||||
->tag('monolog.logger', ['channel' => 'security'])
|
||||
->args([
|
||||
service('http_kernel'),
|
||||
service('security.http_utils'),
|
||||
[], // Options
|
||||
service('logger')->nullOnInvalid(),
|
||||
])
|
||||
|
||||
->set('security.authentication.listener.form', UsernamePasswordFormAuthenticationListener::class)
|
||||
->parent('security.authentication.listener.abstract')
|
||||
->abstract()
|
||||
|
||||
->set('security.authentication.listener.x509', X509AuthenticationListener::class)
|
||||
->abstract()
|
||||
->tag('monolog.logger', ['channel' => 'security'])
|
||||
->args([
|
||||
service('security.token_storage'),
|
||||
service('security.authentication.manager'),
|
||||
abstract_arg('Provider-shared Key'),
|
||||
abstract_arg('x509 user'),
|
||||
abstract_arg('x509 credentials'),
|
||||
service('logger')->nullOnInvalid(),
|
||||
service('event_dispatcher')->nullOnInvalid(),
|
||||
])
|
||||
|
||||
->set('security.authentication.listener.json', UsernamePasswordJsonAuthenticationListener::class)
|
||||
->abstract()
|
||||
->tag('monolog.logger', ['channel' => 'security'])
|
||||
->args([
|
||||
service('security.token_storage'),
|
||||
service('security.authentication.manager'),
|
||||
service('security.http_utils'),
|
||||
abstract_arg('Provider-shared Key'),
|
||||
abstract_arg('Failure handler'),
|
||||
abstract_arg('Success Handler'),
|
||||
[], // Options
|
||||
service('logger')->nullOnInvalid(),
|
||||
service('event_dispatcher')->nullOnInvalid(),
|
||||
service('property_accessor')->nullOnInvalid(),
|
||||
])
|
||||
|
||||
->set('security.authentication.listener.remote_user', RemoteUserAuthenticationListener::class)
|
||||
->abstract()
|
||||
->tag('monolog.logger', ['channel' => 'security'])
|
||||
->args([
|
||||
service('security.token_storage'),
|
||||
service('security.authentication.manager'),
|
||||
abstract_arg('Provider-shared Key'),
|
||||
abstract_arg('REMOTE_USER server env var'),
|
||||
service('logger')->nullOnInvalid(),
|
||||
service('event_dispatcher')->nullOnInvalid(),
|
||||
])
|
||||
|
||||
->set('security.authentication.listener.basic', BasicAuthenticationListener::class)
|
||||
->abstract()
|
||||
->tag('monolog.logger', ['channel' => 'security'])
|
||||
->args([
|
||||
service('security.token_storage'),
|
||||
service('security.authentication.manager'),
|
||||
abstract_arg('Provider-shared Key'),
|
||||
abstract_arg('Entry Point'),
|
||||
service('logger')->nullOnInvalid(),
|
||||
])
|
||||
|
||||
->set('security.authentication.provider.dao', DaoAuthenticationProvider::class)
|
||||
->abstract()
|
||||
->args([
|
||||
abstract_arg('User Provider'),
|
||||
abstract_arg('User Checker'),
|
||||
abstract_arg('Provider-shared Key'),
|
||||
service('security.encoder_factory'),
|
||||
param('security.authentication.hide_user_not_found'),
|
||||
])
|
||||
|
||||
->set('security.authentication.provider.ldap_bind', LdapBindAuthenticationProvider::class)
|
||||
->abstract()
|
||||
->args([
|
||||
abstract_arg('User Provider'),
|
||||
abstract_arg('UserChecker'),
|
||||
abstract_arg('Provider-shared Key'),
|
||||
abstract_arg('LDAP'),
|
||||
abstract_arg('Base DN'),
|
||||
param('security.authentication.hide_user_not_found'),
|
||||
abstract_arg('search dn'),
|
||||
abstract_arg('search password'),
|
||||
])
|
||||
|
||||
->set('security.authentication.provider.pre_authenticated', PreAuthenticatedAuthenticationProvider::class)
|
||||
->abstract()
|
||||
->args([
|
||||
abstract_arg('User Provider'),
|
||||
abstract_arg('UserChecker'),
|
||||
])
|
||||
|
||||
->set('security.exception_listener', ExceptionListener::class)
|
||||
->abstract()
|
||||
->tag('monolog.logger', ['channel' => 'security'])
|
||||
->args([
|
||||
service('security.token_storage'),
|
||||
service('security.authentication.trust_resolver'),
|
||||
service('security.http_utils'),
|
||||
abstract_arg(''),
|
||||
service('security.authentication.entry_point')->nullOnInvalid(),
|
||||
param('security.access.denied_url'),
|
||||
service('security.access.denied_handler')->nullOnInvalid(),
|
||||
service('logger')->nullOnInvalid(),
|
||||
false, // Stateless
|
||||
])
|
||||
|
||||
->set('security.authentication.switchuser_listener', SwitchUserListener::class)
|
||||
->abstract()
|
||||
->tag('monolog.logger', ['channel' => 'security'])
|
||||
->args([
|
||||
service('security.token_storage'),
|
||||
abstract_arg('User Provider'),
|
||||
abstract_arg('User Checker'),
|
||||
abstract_arg('Provider Key'),
|
||||
service('security.access.decision_manager'),
|
||||
service('logger')->nullOnInvalid(),
|
||||
abstract_arg('_switch_user'),
|
||||
abstract_arg('ROLE_ALLOWED_TO_SWITCH'),
|
||||
service('event_dispatcher')->nullOnInvalid(),
|
||||
false, // Stateless
|
||||
])
|
||||
|
||||
->set('security.access_listener', AccessListener::class)
|
||||
->tag('monolog.logger', ['channel' => 'security'])
|
||||
->args([
|
||||
service('security.token_storage'),
|
||||
service('security.access.decision_manager'),
|
||||
service('security.access_map'),
|
||||
service('security.authentication.manager'),
|
||||
])
|
||||
;
|
||||
};
|
@ -1,215 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
|
||||
<container xmlns="http://symfony.com/schema/dic/services"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd">
|
||||
|
||||
<services>
|
||||
<defaults public="false" />
|
||||
|
||||
<service id="security.authentication.listener.anonymous" class="Symfony\Component\Security\Http\Firewall\AnonymousAuthenticationListener">
|
||||
<tag name="monolog.logger" channel="security" />
|
||||
<argument type="service" id="security.untracked_token_storage" />
|
||||
<argument /> <!-- Key -->
|
||||
<argument type="service" id="logger" on-invalid="null" />
|
||||
<argument type="service" id="security.authentication.manager" />
|
||||
</service>
|
||||
|
||||
<service id="security.authentication.provider.anonymous" class="Symfony\Component\Security\Core\Authentication\Provider\AnonymousAuthenticationProvider">
|
||||
<argument /> <!-- Key -->
|
||||
</service>
|
||||
|
||||
<service id="security.authentication.retry_entry_point" class="Symfony\Component\Security\Http\EntryPoint\RetryAuthenticationEntryPoint">
|
||||
<argument type="service"><service class="int"><factory service="router.request_context" method="getHttpPort" /></service></argument>
|
||||
<argument type="service"><service class="int"><factory service="router.request_context" method="getHttpsPort" /></service></argument>
|
||||
</service>
|
||||
|
||||
<service id="security.authentication.basic_entry_point" class="Symfony\Component\Security\Http\EntryPoint\BasicAuthenticationEntryPoint" />
|
||||
|
||||
<service id="security.channel_listener" class="Symfony\Component\Security\Http\Firewall\ChannelListener">
|
||||
<tag name="monolog.logger" channel="security" />
|
||||
<argument type="service" id="security.access_map" />
|
||||
<argument type="service" id="security.authentication.retry_entry_point" />
|
||||
<argument type="service" id="logger" on-invalid="null" />
|
||||
</service>
|
||||
|
||||
<service id="security.access_map" class="Symfony\Component\Security\Http\AccessMap" />
|
||||
|
||||
<service id="security.context_listener" class="Symfony\Component\Security\Http\Firewall\ContextListener">
|
||||
<tag name="monolog.logger" channel="security" />
|
||||
<argument type="service" id="security.untracked_token_storage" />
|
||||
<argument type="collection" />
|
||||
<argument /> <!-- Provider Key -->
|
||||
<argument type="service" id="logger" on-invalid="null" />
|
||||
<argument type="service" id="event_dispatcher" on-invalid="null" />
|
||||
<argument type="service" id="security.authentication.trust_resolver" />
|
||||
</service>
|
||||
|
||||
<service id="security.logout_listener" class="Symfony\Component\Security\Http\Firewall\LogoutListener" abstract="true">
|
||||
<argument type="service" id="security.token_storage" />
|
||||
<argument type="service" id="security.http_utils" />
|
||||
<argument /> <!-- event dispatcher -->
|
||||
<argument /> <!-- Options -->
|
||||
</service>
|
||||
|
||||
<service id="security.logout.listener.session" class="Symfony\Component\Security\Http\EventListener\SessionLogoutListener" abstract="true" />
|
||||
|
||||
<service id="security.logout.listener.cookie_clearing" class="Symfony\Component\Security\Http\EventListener\CookieClearingLogoutListener" abstract="true" />
|
||||
|
||||
<service id="security.logout.listener.default" class="Symfony\Component\Security\Http\EventListener\DefaultLogoutListener" abstract="true">
|
||||
<argument type="service" id="security.http_utils" />
|
||||
<argument>/</argument> <!-- target url -->
|
||||
</service>
|
||||
|
||||
<service id="security.authentication.form_entry_point" class="Symfony\Component\Security\Http\EntryPoint\FormAuthenticationEntryPoint" abstract="true">
|
||||
<argument type="service" id="http_kernel" />
|
||||
</service>
|
||||
|
||||
<service id="security.authentication.listener.abstract" abstract="true">
|
||||
<tag name="monolog.logger" channel="security" />
|
||||
<argument type="service" id="security.token_storage" />
|
||||
<argument type="service" id="security.authentication.manager" />
|
||||
<argument type="service" id="security.authentication.session_strategy" />
|
||||
<argument type="service" id="security.http_utils" />
|
||||
<argument />
|
||||
<argument type="service" id="security.authentication.success_handler" />
|
||||
<argument type="service" id="security.authentication.failure_handler" />
|
||||
<argument type="collection" />
|
||||
<argument type="service" id="logger" on-invalid="null" />
|
||||
<argument type="service" id="event_dispatcher" on-invalid="null" />
|
||||
</service>
|
||||
|
||||
<service id="security.authentication.custom_success_handler" class="Symfony\Component\Security\Http\Authentication\CustomAuthenticationSuccessHandler" abstract="true">
|
||||
<argument /> <!-- The custom success handler service id -->
|
||||
<argument type="collection" /> <!-- Options -->
|
||||
<argument /> <!-- Provider-shared Key -->
|
||||
</service>
|
||||
|
||||
<service id="security.authentication.success_handler" class="Symfony\Component\Security\Http\Authentication\DefaultAuthenticationSuccessHandler" abstract="true">
|
||||
<argument type="service" id="security.http_utils" />
|
||||
<argument type="collection" /> <!-- Options -->
|
||||
</service>
|
||||
|
||||
<service id="security.authentication.custom_failure_handler" class="Symfony\Component\Security\Http\Authentication\CustomAuthenticationFailureHandler" abstract="true">
|
||||
<argument /> <!-- The custom failure handler service id -->
|
||||
<argument type="collection" /> <!-- Options -->
|
||||
</service>
|
||||
|
||||
<service id="security.authentication.failure_handler" class="Symfony\Component\Security\Http\Authentication\DefaultAuthenticationFailureHandler" abstract="true">
|
||||
<tag name="monolog.logger" channel="security" />
|
||||
<argument type="service" id="http_kernel" />
|
||||
<argument type="service" id="security.http_utils" />
|
||||
<argument type="collection" /> <!-- Options -->
|
||||
<argument type="service" id="logger" on-invalid="null" />
|
||||
</service>
|
||||
|
||||
<service id="security.authentication.listener.form"
|
||||
class="Symfony\Component\Security\Http\Firewall\UsernamePasswordFormAuthenticationListener"
|
||||
parent="security.authentication.listener.abstract"
|
||||
public="false"
|
||||
abstract="true" />
|
||||
|
||||
<service id="security.authentication.listener.x509" class="Symfony\Component\Security\Http\Firewall\X509AuthenticationListener" abstract="true">
|
||||
<tag name="monolog.logger" channel="security" />
|
||||
<argument type="service" id="security.token_storage" />
|
||||
<argument type="service" id="security.authentication.manager" />
|
||||
<argument /> <!-- Provider-shared Key -->
|
||||
<argument /> <!-- x509 user -->
|
||||
<argument /> <!-- x509 credentials -->
|
||||
<argument type="service" id="logger" on-invalid="null" />
|
||||
<argument type="service" id="event_dispatcher" on-invalid="null" />
|
||||
</service>
|
||||
|
||||
<service id="security.authentication.listener.json" class="Symfony\Component\Security\Http\Firewall\UsernamePasswordJsonAuthenticationListener" abstract="true">
|
||||
<tag name="monolog.logger" channel="security" />
|
||||
<argument type="service" id="security.token_storage" />
|
||||
<argument type="service" id="security.authentication.manager" />
|
||||
<argument type="service" id="security.http_utils" />
|
||||
<argument /> <!-- Provider-shared Key -->
|
||||
<argument /> <!-- Failure handler -->
|
||||
<argument /> <!-- Success Handler -->
|
||||
<argument type="collection" /> <!-- Options -->
|
||||
<argument type="service" id="logger" on-invalid="null" />
|
||||
<argument type="service" id="event_dispatcher" on-invalid="null" />
|
||||
<argument type="service" id="property_accessor" on-invalid="null" />
|
||||
</service>
|
||||
|
||||
<service id="security.authentication.listener.remote_user" class="Symfony\Component\Security\Http\Firewall\RemoteUserAuthenticationListener" abstract="true">
|
||||
<tag name="monolog.logger" channel="security" />
|
||||
<argument type="service" id="security.token_storage" />
|
||||
<argument type="service" id="security.authentication.manager" />
|
||||
<argument /> <!-- Provider-shared Key -->
|
||||
<argument /> <!-- REMOTE_USER server env var -->
|
||||
<argument type="service" id="logger" on-invalid="null" />
|
||||
<argument type="service" id="event_dispatcher" on-invalid="null"/>
|
||||
</service>
|
||||
|
||||
<service id="security.authentication.listener.basic" class="Symfony\Component\Security\Http\Firewall\BasicAuthenticationListener" abstract="true">
|
||||
<tag name="monolog.logger" channel="security" />
|
||||
<argument type="service" id="security.token_storage" />
|
||||
<argument type="service" id="security.authentication.manager" />
|
||||
<argument /> <!-- Provider-shared Key -->
|
||||
<argument /> <!-- Entry Point -->
|
||||
<argument type="service" id="logger" on-invalid="null" />
|
||||
</service>
|
||||
|
||||
<service id="security.authentication.provider.dao" class="Symfony\Component\Security\Core\Authentication\Provider\DaoAuthenticationProvider" abstract="true">
|
||||
<argument /> <!-- User Provider -->
|
||||
<argument /> <!-- User Checker -->
|
||||
<argument /> <!-- Provider-shared Key -->
|
||||
<argument type="service" id="security.encoder_factory" />
|
||||
<argument>%security.authentication.hide_user_not_found%</argument>
|
||||
</service>
|
||||
|
||||
<service id="security.authentication.provider.ldap_bind" class="Symfony\Component\Security\Core\Authentication\Provider\LdapBindAuthenticationProvider" abstract="true">
|
||||
<argument /> <!-- User Provider -->
|
||||
<argument /> <!-- UserChecker -->
|
||||
<argument /> <!-- Provider-shared Key -->
|
||||
<argument /> <!-- LDAP -->
|
||||
<argument /> <!-- Base DN -->
|
||||
<argument>%security.authentication.hide_user_not_found%</argument>
|
||||
<argument /> <!-- search dn -->
|
||||
<argument /> <!-- search password -->
|
||||
</service>
|
||||
|
||||
<service id="security.authentication.provider.pre_authenticated" class="Symfony\Component\Security\Core\Authentication\Provider\PreAuthenticatedAuthenticationProvider" abstract="true">
|
||||
<argument /> <!-- User Provider -->
|
||||
<argument /> <!-- User Checker -->
|
||||
</service>
|
||||
|
||||
<service id="security.exception_listener" class="Symfony\Component\Security\Http\Firewall\ExceptionListener" abstract="true">
|
||||
<tag name="monolog.logger" channel="security" />
|
||||
<argument type="service" id="security.token_storage" />
|
||||
<argument type="service" id="security.authentication.trust_resolver" />
|
||||
<argument type="service" id="security.http_utils" />
|
||||
<argument />
|
||||
<argument type="service" id="security.authentication.entry_point" on-invalid="null" />
|
||||
<argument>%security.access.denied_url%</argument>
|
||||
<argument type="service" id="security.access.denied_handler" on-invalid="null" />
|
||||
<argument type="service" id="logger" on-invalid="null" />
|
||||
<argument>false</argument> <!-- Stateless -->
|
||||
</service>
|
||||
|
||||
<service id="security.authentication.switchuser_listener" class="Symfony\Component\Security\Http\Firewall\SwitchUserListener" abstract="true">
|
||||
<tag name="monolog.logger" channel="security" />
|
||||
<argument type="service" id="security.token_storage" />
|
||||
<argument /> <!-- User Provider -->
|
||||
<argument /> <!-- User Checker -->
|
||||
<argument /> <!-- Provider Key -->
|
||||
<argument type="service" id="security.access.decision_manager" />
|
||||
<argument type="service" id="logger" on-invalid="null" />
|
||||
<argument>_switch_user</argument>
|
||||
<argument>ROLE_ALLOWED_TO_SWITCH</argument>
|
||||
<argument type="service" id="event_dispatcher" on-invalid="null"/>
|
||||
<argument>false</argument> <!-- Stateless -->
|
||||
</service>
|
||||
|
||||
<service id="security.access_listener" class="Symfony\Component\Security\Http\Firewall\AccessListener">
|
||||
<tag name="monolog.logger" channel="security" />
|
||||
<argument type="service" id="security.token_storage" />
|
||||
<argument type="service" id="security.access.decision_manager" />
|
||||
<argument type="service" id="security.access_map" />
|
||||
<argument type="service" id="security.authentication.manager" />
|
||||
</service>
|
||||
</services>
|
||||
</container>
|
@ -0,0 +1,63 @@
|
||||
<?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\Component\DependencyInjection\Loader\Configurator;
|
||||
|
||||
use Symfony\Component\Security\Core\Authentication\Provider\RememberMeAuthenticationProvider;
|
||||
use Symfony\Component\Security\Core\Authentication\RememberMe\InMemoryTokenProvider;
|
||||
use Symfony\Component\Security\Http\Firewall\RememberMeListener;
|
||||
use Symfony\Component\Security\Http\RememberMe\PersistentTokenBasedRememberMeServices;
|
||||
use Symfony\Component\Security\Http\RememberMe\ResponseListener;
|
||||
use Symfony\Component\Security\Http\RememberMe\TokenBasedRememberMeServices;
|
||||
|
||||
return static function (ContainerConfigurator $container) {
|
||||
$container->services()
|
||||
->set('security.authentication.listener.rememberme', RememberMeListener::class)
|
||||
->abstract()
|
||||
->tag('monolog.logger', ['channel' => 'security'])
|
||||
->args([
|
||||
service('security.untracked_token_storage'),
|
||||
service('security.authentication.rememberme'),
|
||||
service('security.authentication.manager'),
|
||||
service('logger')->nullOnInvalid(),
|
||||
service('event_dispatcher')->nullOnInvalid(),
|
||||
abstract_arg('Catch exception flag set in RememberMeFactory'),
|
||||
service('security.authentication.session_strategy'),
|
||||
])
|
||||
|
||||
->set('security.authentication.provider.rememberme', RememberMeAuthenticationProvider::class)
|
||||
->abstract()
|
||||
->args([abstract_arg('User Checker')])
|
||||
|
||||
->set('security.rememberme.token.provider.in_memory', InMemoryTokenProvider::class)
|
||||
|
||||
->set('security.authentication.rememberme.services.abstract')
|
||||
->abstract()
|
||||
->tag('monolog.logger', ['channel' => 'security'])
|
||||
->args([
|
||||
[], // User Providers
|
||||
abstract_arg('Shared Token Key'),
|
||||
abstract_arg('Shared Provider Key'),
|
||||
[], // Options
|
||||
service('logger')->nullOnInvalid(),
|
||||
])
|
||||
|
||||
->set('security.authentication.rememberme.services.persistent', PersistentTokenBasedRememberMeServices::class)
|
||||
->parent('security.authentication.rememberme.services.abstract')
|
||||
->abstract()
|
||||
|
||||
->set('security.authentication.rememberme.services.simplehash', TokenBasedRememberMeServices::class)
|
||||
->parent('security.authentication.rememberme.services.abstract')
|
||||
->abstract()
|
||||
|
||||
->set('security.rememberme.response_listener', ResponseListener::class)->tag('kernel.event_subscriber')
|
||||
;
|
||||
};
|
@ -1,52 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
|
||||
<container xmlns="http://symfony.com/schema/dic/services"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd">
|
||||
|
||||
<services>
|
||||
<defaults public="false" />
|
||||
|
||||
<service id="security.authentication.listener.rememberme" class="Symfony\Component\Security\Http\Firewall\RememberMeListener" abstract="true">
|
||||
<tag name="monolog.logger" channel="security" />
|
||||
<argument type="service" id="security.untracked_token_storage" />
|
||||
<argument type="service" id="security.authentication.rememberme" />
|
||||
<argument type="service" id="security.authentication.manager" />
|
||||
<argument type="service" id="logger" on-invalid="null" />
|
||||
<argument type="service" id="event_dispatcher" on-invalid="null"/>
|
||||
<argument /> <!-- Catch exception flag set in RememberMeFactory -->
|
||||
<argument type="service" id="security.authentication.session_strategy" />
|
||||
</service>
|
||||
|
||||
<service id="security.authentication.provider.rememberme" class="Symfony\Component\Security\Core\Authentication\Provider\RememberMeAuthenticationProvider" abstract="true">
|
||||
<argument /> <!-- User Checker -->
|
||||
</service>
|
||||
|
||||
<service id="security.rememberme.token.provider.in_memory" class="Symfony\Component\Security\Core\Authentication\RememberMe\InMemoryTokenProvider" />
|
||||
|
||||
<service id="security.authentication.rememberme.services.abstract" abstract="true">
|
||||
<tag name="monolog.logger" channel="security" />
|
||||
<argument type="collection" /> <!-- User Providers -->
|
||||
<argument /> <!-- Shared Token Key -->
|
||||
<argument /> <!-- Shared Provider Key -->
|
||||
<argument type="collection" /> <!-- Options -->
|
||||
<argument type="service" id="logger" on-invalid="null" />
|
||||
</service>
|
||||
|
||||
<service id="security.authentication.rememberme.services.persistent"
|
||||
class="Symfony\Component\Security\Http\RememberMe\PersistentTokenBasedRememberMeServices"
|
||||
parent="security.authentication.rememberme.services.abstract"
|
||||
public="false"
|
||||
abstract="true" />
|
||||
|
||||
<service id="security.authentication.rememberme.services.simplehash"
|
||||
class="Symfony\Component\Security\Http\RememberMe\TokenBasedRememberMeServices"
|
||||
parent="security.authentication.rememberme.services.abstract"
|
||||
public="false"
|
||||
abstract="true" />
|
||||
|
||||
<service id="security.rememberme.response_listener" class="Symfony\Component\Security\Http\RememberMe\ResponseListener">
|
||||
<tag name="kernel.event_subscriber" />
|
||||
</service>
|
||||
</services>
|
||||
</container>
|
Reference in New Issue
Block a user