* * 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\AccessToken; use Symfony\Component\Config\Definition\Builder\NodeBuilder; use Symfony\Component\DependencyInjection\ChildDefinition; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\Security\Http\AccessToken\Cas\Cas2Handler; class CasTokenHandlerFactory implements TokenHandlerFactoryInterface { public function create(ContainerBuilder $container, string $id, array|string $config): void { $container->setDefinition($id, new ChildDefinition('security.access_token_handler.cas')); $container ->register('security.access_token_handler.cas', Cas2Handler::class) ->setArguments([ new Reference('request_stack'), $config['validation_url'], $config['prefix'], $config['http_client'] ? new Reference($config['http_client']) : null, ]); } public function getKey(): string { return 'cas'; } public function addConfiguration(NodeBuilder $node): void { $node ->arrayNode($this->getKey()) ->fixXmlConfig($this->getKey()) ->children() ->scalarNode('validation_url') ->info('CAS server validation URL') ->isRequired() ->end() ->scalarNode('prefix') ->info('CAS prefix') ->defaultValue('cas') ->end() ->scalarNode('http_client') ->info('HTTP Client service') ->defaultNull() ->end() ->end() ->end(); } }