Bläddra i källkod

[FrameworkBundle] moved some default values to the Configuration class

Fabien Potencier 14 år sedan
förälder
incheckning
9bffd8c2db

+ 3 - 3
src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php

@@ -68,9 +68,9 @@ class Configuration implements ConfigurationInterface
                     ->treatNullLike(array('enabled' => true))
                     ->treatTrueLike(array('enabled' => true))
                     ->children()
-                        ->booleanNode('enabled')->end()
-                        ->scalarNode('field_name')->end()
-                        ->scalarNode('secret')->end()
+                        ->booleanNode('enabled')->defaultTrue()->end()
+                        ->scalarNode('field_name')->defaultValue('_token')->end()
+                        ->scalarNode('secret')->defaultValue('secret')->end()
                     ->end()
                 ->end()
             ->end()

+ 5 - 5
src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php

@@ -161,11 +161,11 @@ class FrameworkExtension extends Extension
      */
     private function registerCsrfProtectionConfiguration(array $config, ContainerBuilder $container)
     {
-        foreach (array('enabled', 'field_name', 'secret') as $key) {
-            if (isset($config[$key])) {
-                $container->setParameter('form.csrf_protection.'.$key, $config[$key]);
-            }
-        }
+        $container->getDefinition('form.csrf_provider')->replaceArgument(1, $config['secret']);
+
+        // FIXME: those are not used
+        $container->setParameter('form.csrf_protection.field_name', $config['field_name']);
+        $container->setParameter('form.csrf_protection.enabled', $config['enabled']);
     }
 
     /**

+ 6 - 9
src/Symfony/Bundle/FrameworkBundle/Resources/config/form.xml

@@ -9,18 +9,16 @@
         <parameter key="form.factory.class">Symfony\Component\Form\FormFactory</parameter>
         <parameter key="form.type_guesser.validator.class">Symfony\Component\Form\Extension\Validator\ValidatorTypeGuesser</parameter>
         <parameter key="form.csrf_provider.class">Symfony\Component\Form\Extension\Csrf\CsrfProvider\SessionCsrfProvider</parameter>
-        <parameter key="form.csrf_protection.enabled">true</parameter>
-        <parameter key="form.csrf_protection.field_name">_token</parameter>
-        <parameter key="form.csrf_protection.secret">secret</parameter>
+
         <parameter key="form.validation_groups">Default</parameter>
         <parameter key="file.temporary_storage.class">Symfony\Component\HttpFoundation\File\SessionBasedTemporaryStorage</parameter>
         <parameter key="file.temporary_storage.secret">abcdef</parameter>
         <parameter key="file.temporary_storage.nesting_levels">3</parameter>
         <parameter key="file.temporary_storage.directory"></parameter>
+
     </parameters>
 
     <services>
-
         <!-- FormFactory -->
         <service id="form.factory" class="%form.factory.class%">
             <argument type="collection">
@@ -52,7 +50,7 @@
             -->
             <argument type="collection" />
         </service>
-        
+
         <!-- ValidatorTypeGuesser -->
         <service id="form.type_guesser.validator" class="%form.type_guesser.validator.class%">
             <tag name="form.type_guesser" />
@@ -62,7 +60,7 @@
         <!-- CsrfProvider -->
         <service id="form.csrf_provider" class="%form.csrf_provider.class%">
             <argument type="service" id="session" />
-            <argument>%form.csrf_protection.secret%</argument>
+            <argument /> <!-- secret -->
         </service>
 
         <!-- TemporaryStorage - where should we put this? -->
@@ -72,7 +70,7 @@
             <argument>%file.temporary_storage.nesting_levels%</argument>
             <argument>%file.temporary_storage.directory%</argument>
         </service>
-        
+
         <!-- CoreExtension -->
         <service id="form.type.field" class="Symfony\Component\Form\Extension\Core\Type\FieldType">
             <tag name="form.type" alias="field" />
@@ -154,7 +152,7 @@
         <service id="form.type.url" class="Symfony\Component\Form\Extension\Core\Type\UrlType">
             <tag name="form.type" alias="url" />
         </service>
-        
+
         <!-- CsrfExtension -->
         <service id="form.type.csrf" class="Symfony\Component\Form\Extension\Csrf\Type\CsrfType">
             <tag name="form.type" alias="csrf" />
@@ -163,6 +161,5 @@
         <service id="form.type_extension.csrf" class="Symfony\Component\Form\Extension\Csrf\Type\FormTypeCsrfExtension">
             <tag name="form.type_extension" alias="form" />
         </service>
-
     </services>
 </container>

+ 2 - 1
src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php

@@ -26,7 +26,8 @@ abstract class FrameworkExtensionTest extends TestCase
 
         $this->assertTrue($container->getParameter('form.csrf_protection.enabled'));
         $this->assertEquals('_csrf', $container->getParameter('form.csrf_protection.field_name'));
-        $this->assertEquals('s3cr3t', $container->getParameter('form.csrf_protection.secret'));
+        $arguments = $container->findDefinition('form.csrf_provider')->getArguments();
+        $this->assertEquals('s3cr3t', $arguments[1]);
     }
 
     public function testEsi()