/
home
/
obinna
/
html
/
boazapp
/
vendor
/
symfony
/
security-bundle
/
DependencyInjection
/
Security
/
Factory
/
Upload File
HOME
<?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\DependencyInjection\Security\Factory; use Symfony\Component\Config\Definition\Builder\NodeDefinition; use Symfony\Component\DependencyInjection\ChildDefinition; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Reference; /** * HttpBasicFactory creates services for HTTP basic authentication. * * @author Fabien Potencier <fabien@symfony.com> * * @internal */ class HttpBasicFactory implements SecurityFactoryInterface, AuthenticatorFactoryInterface, EntryPointFactoryInterface { public function create(ContainerBuilder $container, string $id, array $config, string $userProvider, ?string $defaultEntryPoint) { $provider = 'security.authentication.provider.dao.'.$id; $container ->setDefinition($provider, new ChildDefinition('security.authentication.provider.dao')) ->replaceArgument(0, new Reference($userProvider)) ->replaceArgument(1, new Reference('security.user_checker.'.$id)) ->replaceArgument(2, $id) ; // entry point $entryPointId = $defaultEntryPoint; if (null === $entryPointId) { $entryPointId = $this->registerEntryPoint($container, $id, $config); } // listener $listenerId = 'security.authentication.listener.basic.'.$id; $listener = $container->setDefinition($listenerId, new ChildDefinition('security.authentication.listener.basic')); $listener->replaceArgument(2, $id); $listener->replaceArgument(3, new Reference($entryPointId)); $listener->addMethodCall('setSessionAuthenticationStrategy', [new Reference('security.authentication.session_strategy.'.$id)]); return [$provider, $listenerId, $entryPointId]; } public function createAuthenticator(ContainerBuilder $container, string $firewallName, array $config, string $userProviderId): string { $authenticatorId = 'security.authenticator.http_basic.'.$firewallName; $container ->setDefinition($authenticatorId, new ChildDefinition('security.authenticator.http_basic')) ->replaceArgument(0, $config['realm']) ->replaceArgument(1, new Reference($userProviderId)); return $authenticatorId; } public function getPosition() { return 'http'; } public function getKey() { return 'http-basic'; } public function addConfiguration(NodeDefinition $node) { $node ->children() ->scalarNode('provider')->end() ->scalarNode('realm')->defaultValue('Secured Area')->end() ->end() ; } public function registerEntryPoint(ContainerBuilder $container, string $id, array $config): string { $entryPointId = 'security.authentication.basic_entry_point.'.$id; $container ->setDefinition($entryPointId, new ChildDefinition('security.authentication.basic_entry_point')) ->addArgument($config['realm']) ; return $entryPointId; } }