public function testSetExtensionConfigShouldOverwriteCurrentConfig()
 {
     $originalConfig = ['prop' => 'val'];
     $overwrittenConfig = [['p' => 'v']];
     $this->builder->prependExtensionConfig(static::EXTENSION, $originalConfig);
     $this->assertEquals([$originalConfig], $this->builder->getExtensionConfig(static::EXTENSION));
     $this->builder->setExtensionConfig(static::EXTENSION, $overwrittenConfig);
     $this->assertEquals($overwrittenConfig, $this->builder->getExtensionConfig(static::EXTENSION));
 }
 /**
  * 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);
 }
 /**
  * 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);
         }
     }
 }