8000 mitigate BC break with empty trusted_proxies · symfony/symfony@ff055ef · GitHub
[go: up one dir, main page]

Skip to content

Commit ff055ef

Browse files
committed
mitigate BC break with empty trusted_proxies
1 parent d0aa4d9 commit ff055ef

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,11 @@ public function getConfigTreeBuilder()
6767
->end()
6868
->arrayNode('trusted_proxies') // @deprecated in version 3.3, to be removed in 4.0
6969
->beforeNormalization()
70-
->always()
70+
->ifTrue(function ($v) { return empty($v); })
71+
->then(function () { @trigger_error('The "framework.trusted_proxies" configuration key has been removed in Symfony 3.3. Use the Request::setTrustedProxies() method in your front controller instead.', E_USER_DEPRECATED); })
72+
->end()
73+
->beforeNormalization()
74+
->ifTrue(function ($v) { return !empty($v); })
7175
->thenInvalid('The "framework.trusted_proxies" configuration key has been removed in Symfony 3.3. Use the Request::setTrustedProxies() method in your front controller instead.')
7276
->end()
7377
->end()

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,38 @@ public function testDoNoDuplicateDefaultFormResources()
4343
$this->assertEquals(array('FrameworkBundle:Form'), $config['templating']['form']['resources']);
4444
}
4545

46+
/**
47+
* @group legacy
48+
* @expectedDeprecation The "framework.trusted_proxies" configuration key has been removed in Symfony 3.3. Use the Request::setTrustedProxies() method in your front controller instead.
49+
*/
50+
public function testTrustedProxiesSetToNullIsDeprecated()
51+
{
52+
$processor = new Processor();
53+
$configuration = new Configuration(true);
54+
$processor->processConfiguration($configuration, array(array('trusted_proxies' => null)));
55+
}
56+
57+
/**
58+
* @group legacy
59+
* @expectedDeprecation The "framework.trusted_proxies" configuration key has been removed in Symfony 3.3. Use the Request::setTrustedProxies() method in your front controller instead.
60+
*/
61+
public function testTrustedProxiesSetToEmptyArrayIsDeprecated()
62+
{
63+
$processor = new Processor();
64+
$configuration = new Configuration(true);
65+
$processor->processConfiguration($configuration, array(array('trusted_proxies' => array())));
66+
}
67+
68+
/**
69+
* @expectedException \InvalidArgumentException
70+
*/
71+
public function testTrustedProxiesSetToNonEmptyArrayIsInvalid()
72+
{
73+
$processor = new Processor();
74+
$configuration = new Configuration(true);
75+
$processor->processConfiguration($configuration, array(array('trusted_proxies' => array('127.0.0.1'))));
76+
}
77+
4678
public function testAssetsCanBeEnabled()
4779
{
4880
$processor = new Processor();

0 commit comments

Comments
 (0)
0