OAuthProxyFactory.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace AuthBundle\DependencyInjection\Security\Factory;
  3. use Symfony\Component\DependencyInjection\ContainerBuilder;
  4. use Symfony\Component\DependencyInjection\Reference;
  5. use Symfony\Component\DependencyInjection\DefinitionDecorator;
  6. use Symfony\Component\Config\Definition\Builder\NodeDefinition;
  7. use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\SecurityFactoryInterface;
  8. class OAuthProxyFactory implements SecurityFactoryInterface
  9. {
  10. /**
  11. *
  12. * @param ContainerBuilder $container
  13. * @param string $id
  14. * @param type $config
  15. * @param UserProviderInterface $userProvider
  16. * @param type $defaultEntryPoint
  17. *
  18. * @return array
  19. */
  20. public function create(ContainerBuilder $container, $id, $config, $userProvider, $defaultEntryPoint)
  21. {
  22. $providerId = 'security.authentication.provider.oauth_proxy.'.$id;
  23. $container
  24. ->setDefinition($providerId, new DefinitionDecorator('auth.oauth_proxy.provider'))
  25. ->replaceArgument(0, new Reference($userProvider))
  26. ;
  27. $listenerId = 'security.authentication.listener.oauth_proxy.'.$id;
  28. $listener = $container->setDefinition($listenerId, new DefinitionDecorator('auth.oauth_proxy.listener'));
  29. return array($providerId, $listenerId, $defaultEntryPoint);
  30. }
  31. /**
  32. * @return string
  33. */
  34. public function getPosition()
  35. {
  36. return 'pre_auth';
  37. }
  38. /**
  39. * @return string
  40. */
  41. public function getKey()
  42. {
  43. return 'oauth_proxy';
  44. }
  45. /**
  46. * @param NodeDefinition $node
  47. */
  48. public function addConfiguration(NodeDefinition $node)
  49. {
  50. }
  51. }