Skip to content

Commit

Permalink
merged branch havvg/feature/config-http_method_override (PR #7202)
Browse files Browse the repository at this point in the history
This PR was squashed before being merged into the master branch (closes #7202).

Commits
-------

817453c [2.2] add http_method_override option to ease setup

Discussion
----------

[2.2] add http_method_override option to ease setup

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| License       | MIT
  • Loading branch information
fabpot committed Mar 7, 2013
2 parents 4cf0848 + 817453c commit ea25267
Show file tree
Hide file tree
Showing 9 changed files with 22 additions and 1 deletion.
Expand Up @@ -52,6 +52,10 @@ public function getConfigTreeBuilder()
->end()
->end()
->scalarNode('secret')->end()
->scalarNode('http_method_override')
->info("Set true to enable support for the '_method' request parameter to determine the intended HTTP method on POST requests.")
->defaultTrue()
->end()
->scalarNode('trust_proxy_headers')->defaultFalse()->end() // @deprecated, to be removed in 2.3
->arrayNode('trusted_proxies')
->beforeNormalization()
Expand Down
Expand Up @@ -66,6 +66,8 @@ public function load(array $configs, ContainerBuilder $container)
$container->setParameter('kernel.secret', $config['secret']);
}

$container->setParameter('kernel.http_method_override', $config['http_method_override']);

$container->setParameter('kernel.trusted_proxies', $config['trusted_proxies']);

// @deprecated, to be removed in 2.3
Expand Down
4 changes: 4 additions & 0 deletions src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php
Expand Up @@ -46,6 +46,10 @@ public function boot()
} elseif ($this->container->getParameter('kernel.trust_proxy_headers')) {
Request::trustProxyData(); // @deprecated, to be removed in 2.3
}

if ($this->container->getParameter('kernel.http_method_override')) {
Request::enableHttpMethodParameterOverride();
}
}

public function build(ContainerBuilder $container)
Expand Down
Expand Up @@ -24,6 +24,7 @@

<!-- charset is deprecated and will be removed in 2.2 -->
<xsd:attribute name="charset" type="xsd:string" />
<xsd:attribute name="http-method-override" type="xsd:boolean" />
<xsd:attribute name="trust-proxy-headers" type="xsd:string" />
<xsd:attribute name="trusted-proxies" type="xsd:string" />
<xsd:attribute name="ide" type="xsd:string" />
Expand Down
Expand Up @@ -88,6 +88,7 @@ protected static function getBundleDefaultConfig()
{
return array(
'charset' => null,
'http_method_override' => true,
'trust_proxy_headers' => false,
'trusted_proxies' => array(),
'ide' => null,
Expand Down
Expand Up @@ -4,6 +4,7 @@
'secret' => 's3cr3t',
'default_locale' => 'fr',
'form' => null,
'http_method_override' => false,
'trust_proxy_headers' => true,
'trusted_proxies' => array('127.0.0.1', '10.0.0.1'),
'csrf_protection' => array(
Expand Down
Expand Up @@ -6,7 +6,7 @@
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
http://symfony.com/schema/dic/symfony http://symfony.com/schema/dic/symfony/symfony-1.0.xsd">

<framework:config secret="s3cr3t" ide="file%%link%%format" default-locale="fr" trust-proxy-headers="true" trusted-proxies="127.0.0.1, 10.0.0.1">
<framework:config secret="s3cr3t" ide="file%%link%%format" default-locale="fr" trust-proxy-headers="true" trusted-proxies="127.0.0.1, 10.0.0.1" http-method-override="false">
<framework:csrf-protection enabled="true" field-name="_csrf" />
<framework:form />
<framework:esi enabled="true" />
Expand Down
Expand Up @@ -2,6 +2,7 @@ framework:
secret: s3cr3t
default_locale: fr
form: ~
http_method_override: false
trust_proxy_headers: true
trusted_proxies: ['127.0.0.1', '10.0.0.1']
csrf_protection:
Expand Down
Expand Up @@ -41,6 +41,13 @@ public function testProxies()
$this->assertEquals(array('127.0.0.1', '10.0.0.1'), $container->getParameter('kernel.trusted_proxies'));
}

public function testHttpMethodOverride()
{
$container = $this->createContainerFromFile('full');

$this->assertFalse($container->getParameter('kernel.http_method_override'));
}

public function testEsi()
{
$container = $this->createContainerFromFile('full');
Expand Down

0 comments on commit ea25267

Please sign in to comment.