/**
  * Move specified firewall to the latest position, it should be done for the most general firewalls
  *
  * @param ExtendedContainerBuilder $container
  * @param string $firewallName
  */
 public static function makeFirewallLatest(ExtendedContainerBuilder $container, $firewallName)
 {
     $securityConfig = $container->getExtensionConfig('security');
     if (!isset($securityConfig[0]['firewalls'][$firewallName])) {
         return;
     }
     $mainFirewall = $securityConfig[0]['firewalls'][$firewallName];
     unset($securityConfig[0]['firewalls'][$firewallName]);
     $securityConfig[0]['firewalls'][$firewallName] = $mainFirewall;
     /** @var ExtendedContainerBuilder $container */
     $container->setExtensionConfig('security', $securityConfig);
 }
 public function testSecurityShouldBeMergedCorrectly()
 {
     $originalConfig = [['access_decision_manager' => ['strategy' => 'unanimous'], 'firewalls' => ['dev' => ['pattern' => '^/(_(profiler|wdt)|css|images|js)/', 'security' => false], 'main' => ['pattern' => '^/', 'provider' => 'chain_provider', 'organization-form-login' => ['csrf_provider' => 'form.csrf_provider', 'check_path' => 'oro_user_security_check', 'login_path' => 'oro_user_security_login'], 'logout' => ['path' => 'oro_user_security_logout'], 'organization-remember-me' => ['key' => '%secret%', 'name' => 'CRMRM', 'lifetime' => 1209600, 'httponly' => true], 'anonymous' => false]]], ['firewalls' => ['main' => ['organization-http-basic' => ['realm' => 'Secured REST Area'], 'provider' => 'oro_user', 'http-basic' => false, 'organization-form-login' => false, 'logout' => false, 'organization-remember-me' => false, 'anonymous' => true]], 'acl' => ['connection' => 'default']]];
     $additionalConfig = ['firewalls' => ['oauth' => ['resource_owners' => ['google' => '/login/check-google']]]];
     $expectedConfig = $originalConfig;
     $expectedConfig[0]['firewalls']['oauth'] = $additionalConfig['firewalls']['oauth'];
     $containerBuilder = new ExtendedContainerBuilder();
     $containerBuilder->setExtensionConfig('security', $originalConfig);
     $platformExtension = new OroPlatformExtension();
     $mergeConfigurationIntoOne = new \ReflectionMethod('Oro\\Bundle\\PlatformBundle\\DependencyInjection\\OroPlatformExtension', 'mergeConfigIntoOne');
     $mergeConfigurationIntoOne->setAccessible(true);
     $mergeConfigurationIntoOne->invoke($platformExtension, $containerBuilder, 'security', $additionalConfig);
     $this->assertEquals($expectedConfig, $containerBuilder->getExtensionConfig('security'));
 }
 public function testMoveCompilerPassBeforeWhenTargetPassDoesNotExist()
 {
     $srcPass = new CompilerPass1();
     $targetPass = new CompilerPass2();
     $this->builder->addCompilerPass($srcPass);
     $this->builder->moveCompilerPassBefore(get_class($srcPass), get_class($targetPass));
 }
 /**
  * Sets default implementation of the cache for WSSE nonces if a custom implementation is not specified
  *
  * @param ExtendedContainerBuilder $container
  */
 protected function setupWsseNonceCache(ExtendedContainerBuilder $container)
 {
     $securityConfig = $container->getExtensionConfig('security');
     if (isset($securityConfig[0]['firewalls']['wsse_secured']) && !isset($securityConfig[0]['firewalls']['wsse_secured']['wsse']['nonce_cache_service_id'])) {
         $securityConfig[0]['firewalls']['wsse_secured']['wsse']['nonce_cache_service_id'] = self::DEFAULT_WSSE_NONCE_CACHE_SERVICE_ID;
         $container->setExtensionConfig('security', $securityConfig);
         if (!$container->hasDefinition(self::DEFAULT_WSSE_NONCE_CACHE_SERVICE_ID)) {
             $wsseLifetime = 0;
             if (isset($securityConfig[0]['firewalls']['wsse_secured']['wsse']['lifetime'])) {
                 $wsseLifetime = $securityConfig[0]['firewalls']['wsse_secured']['wsse']['lifetime'];
             }
             $cacheServiceDef = new Definition(self::DEFAULT_WSSE_NONCE_CACHE_CLASS, [self::DEFAULT_WSSE_NONCE_CACHE_PATH]);
             if ($wsseLifetime) {
                 $cacheServiceDef->addMethodCall('setNonceLifeTime', [$wsseLifetime]);
             }
             $container->setDefinition(self::DEFAULT_WSSE_NONCE_CACHE_SERVICE_ID, $cacheServiceDef);
         }
     }
 }
Example #5
0
 /**
  * {@inheritdoc}
  */
 protected function getContainerBuilder()
 {
     $container = new ExtendedContainerBuilder(new ParameterBag($this->getKernelParameters()));
     if (class_exists('ProxyManager\\Configuration') && class_exists('Symfony\\Bridge\\ProxyManager\\LazyProxy\\Instantiator\\RuntimeInstantiator')) {
         $container->setProxyInstantiator(new RuntimeInstantiator());
     }
     return $container;
 }