8000 Merge branch '2.8' into 3.1 · symfony/symfony@298a680 · GitHub
[go: up one dir, main page]

Skip to content

Commit 298a680

Browse files
Merge branch '2.8' into 3.1
* 2.8: [travis] Use 7.0 until 7.1 is fixed [DIC] Fix service autowiring inheritance [SecurityBundle] Add missing deprecation notice for form_login.intention Verify explicitly that the request IP is a valid IPv4 address
2 parents 3ab6d4e + 909649f commit 298a680

File tree

7 files changed

+60
-2
lines changed

7 files changed

+60
-2
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ matrix:
2828
- php: 5.6
2929
- php: 7.0
3030
env: deps=high
31-
- php: 7.1
31+
- php: 7.0
3232
env: deps=low
3333
fast_finish: true
3434

src/Symfony/Component/DependencyInjection/Compiler/ResolveDefinitionTemplatesPass.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ private function resolveDefinition(ContainerBuilder $container, DefinitionDecora
127127
$def->setFile($parentDef->getFile());
128128
$def->setPublic($parentDef->isPublic());
129129
$def->setLazy($parentDef->isLazy());
130+
$def->setAutowired($parentDef->isAutowired());
130131

131132
// overwrite with values specified in the decorator
132133
$changes = $definition->getChanges();
@@ -151,6 +152,9 @@ private function resolveDefinition(ContainerBuilder $container, DefinitionDecora
151152
if (isset($changes['deprecated'])) {
152153
$def->setDeprecated($definition->isDeprecated(), $definition->getDeprecationMessage('%service_id%'));
153154
}
155+
if (isset($changes['autowire'])) {
156+
$def->setAutowired($definition->isAutowired());
157+
}
154158
if (isset($changes['decorated_service'])) {
155159
$decoratedService = $definition->getDecoratedService();
156160
if (null === $decoratedService) {

src/Symfony/Component/DependencyInjection/DefinitionDecorator.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,16 @@ public function setDeprecated($boolean = true, $template = null)
134134
return parent::setDeprecated($boolean, $template);
135135
}
136136

137+
/**
138+
* {@inheritdoc}
139+
*/
140+
public function setAutowired($autowired)
141+
{
142+
$this->changes['autowire'] = true;
143+
144+
return parent::setAutowired($autowired);
145+
}
146+
137147
/**
138148
* Gets an argument to pass to the service constructor/factory method.
139149
*

src/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveDefinitionTemplatesPassTest.php

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,36 @@ public function testSetLazyOnServiceIsParent()
210210
$this->assertTrue($container->getDefinition('child1')->isLazy());
211211
}
212212

213+
public function testSetAutowiredOnServiceHasParent()
214+
{
215+
$container = new ContainerBuilder();
216+
217+
$container->register('parent', 'stdClass');
218+
219+
$container->setDefinition('child1', new DefinitionDecorator('parent'))
220+
->setAutowired(true)
221+
;
222+
223+
$this->process($container);
224+
225+
$this->assertTrue($container->getDefinition('child1')->isAutowired());
226+
}
227+
228+
public function testSetAutowiredOnServiceIsParent()
229+
{
230+
$container = new ContainerBuilder();
231+
232+
$container->register('parent', 'stdClass')
233+
->setAutowired(true)
234+
;
235+
236+
$container->setDefinition('child1', new DefinitionDecorator('parent'));
237+
238+
$this->process($container);
239+
240+
$this->assertTrue($container->getDefinition('child1')->isAutowired());
241+
}
242+
213243
public function testDeepDefinitionsResolving()
214244
{
215245
$container = new ContainerBuilder();

src/Symfony/Component/DependencyInjection/Tests/DefinitionDecoratorTest.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,16 @@ public function testSetLazy()
6969
$this->assertEquals(array('lazy' => true), $def->getChanges());
7070
}
7171

72+
public function testSetAutowired()
73+
{
74+
$def = new DefinitionDecorator('foo');
75+
76+
$this->assertFalse($def->isAutowired());
77+
$this->assertSame($def, $def->setAutowired(false));
78+
$this->assertFalse($def->isAutowired());
79+
$this->assertEquals(array('autowire' => true), $def->getChanges());
80+
}
81+
7282
public function testSetArgument()
7383
{
7484
$def = new DefinitionDecorator('foo');

src/Symfony/Component/HttpFoundation/IpUtils.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,14 @@ public static function checkIp($requestIp, $ips)
6161
*/
6262
public static function checkIp4($requestIp, $ip)
6363
{
64+
if (!filter_var($requestIp, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) {
65+
return false;
66+
}
67+
6468
if (false !== strpos($ip, '/')) {
6569
list($address, $netmask) = explode('/', $ip, 2);
6670

6771
if ($netmask === '0') {
68-
// Ensure IP is valid - using ip2long below implicitly validates, but we need to do it manually here
6972
return filter_var($address, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4);
7073
}
7174

src/Symfony/Component/HttpFoundation/Tests/IpUtilsTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ public function testIpv4Provider()
3737
array(true, '1.2.3.4', '0.0.0.0/0'),
3838
array(true, '1.2.3.4', '192.168.1.0/0'),
3939
array(false, '1.2.3.4', '256.256.256/0'), // invalid CIDR notation
40+
array(false, 'an_invalid_ip', '192.168.1.0/24'),
4041
);
4142
}
4243

0 commit comments

Comments
 (0)
0