Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 0691a22

Browse filesBrowse files
[HttpKernel] Inline ValidateRequestListener logic into HttpKernel
1 parent eae78e2 commit 0691a22
Copy full SHA for 0691a22

File tree

7 files changed

+38
-128
lines changed
Filter options

7 files changed

+38
-128
lines changed

‎src/Symfony/Bundle/FrameworkBundle/Resources/config/web.xml

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/FrameworkBundle/Resources/config/web.xml
-4Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,5 @@
4646
<argument type="service" id="request_stack" />
4747
<tag name="kernel.event_subscriber" />
4848
</service>
49-
50-
<service id="validate_request_listener" class="Symfony\Component\HttpKernel\EventListener\ValidateRequestListener">
51-
<tag name="kernel.event_subscriber" />
52-
</service>
5349
</services>
5450
</container>

‎src/Symfony/Bundle/FrameworkBundle/composer.json

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/FrameworkBundle/composer.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
"symfony/event-dispatcher": "~2.5",
2424
"symfony/finder": "~2.0,>=2.0.5",
2525
"symfony/http-foundation": "~2.4.9|~2.5,>=2.5.4",
26-
"symfony/http-kernel": "~2.7,>=2.7.15",
26+
"symfony/http-kernel": "~2.7",
2727
"symfony/filesystem": "~2.3",
2828
"symfony/routing": "~2.6,>2.6.4",
2929
"symfony/security-core": "~2.6.13|~2.7.9|~2.8",

‎src/Symfony/Component/HttpKernel/EventListener/ValidateRequestListener.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/HttpKernel/EventListener/ValidateRequestListener.php
-56Lines changed: 0 additions & 56 deletions
This file was deleted.

‎src/Symfony/Component/HttpKernel/HttpKernel.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/HttpKernel/HttpKernel.php
+9Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
namespace Symfony\Component\HttpKernel;
1313

1414
use Symfony\Component\HttpKernel\Controller\ControllerResolverInterface;
15+
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
1516
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
1617
use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
1718
use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
@@ -21,6 +22,7 @@
2122
use Symfony\Component\HttpKernel\Event\GetResponseForControllerResultEvent;
2223
use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
2324
use Symfony\Component\HttpKernel\Event\PostResponseEvent;
25+
use Symfony\Component\HttpFoundation\Exception\ConflictingHeadersException;
2426
use Symfony\Component\HttpFoundation\Request;
2527
use Symfony\Component\HttpFoundation\RequestStack;
2628
use Symfony\Component\HttpFoundation\Response;
@@ -113,6 +115,13 @@ public function terminateWithException(\Exception $exception)
113115
*/
114116
private function handleRaw(Request $request, $type = self::MASTER_REQUEST)
115117
{
118+
if (self::MASTER_REQUEST === $type && $request::getTrustedProxies()) {
119+
try {
120+
$request->getClientIps();
121+
} catch (ConflictingHeadersException $e) {
122+
throw new BadRequestHttpException('The request headers contain conflicting information regarding the origin of this request.', $e);
123+
}
124+
}
116125
$this->requestStack->push($request);
117126

118127
// request

‎src/Symfony/Component/HttpKernel/Tests/EventListener/ValidateRequestListenerTest.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/HttpKernel/Tests/EventListener/ValidateRequestListenerTest.php
-66Lines changed: 0 additions & 66 deletions
This file was deleted.

‎src/Symfony/Component/HttpKernel/Tests/HttpKernelTest.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/HttpKernel/Tests/HttpKernelTest.php
+27Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,33 @@ public function testVerifyRequestStackPushPopDuringHandle()
271271
$kernel->handle($request, HttpKernelInterface::MASTER_REQUEST);
272272
}
273273

274+
/**
275+
* @expectedException Symfony\Component\HttpKernel\Exception\BadRequestHttpException
276+
*/
277+
public function testInconsistentClientIpsOnMasterRequests()
278+
{
279+
$kernel = new HttpKernel(new EventDispatcher(), $this->getResolver());
280+
$request = new Request();
281+
$request->setTrustedProxies(array('1.1.1.1'));
282+
$request->server->set('REMOTE_ADDR', '1.1.1.1');
283+
$request->headers->set('FORWARDED', '2.2.2.2');
284+
$request->headers->set('X_FORWARDED_FOR', '3.3.3.3');
285+
286+
$kernel->handle($request, $kernel::MASTER_REQUEST, false);
287+
}
288+
289+
public function testInconsistentClientIpsOnSubRequests()
290+
{
291+
$kernel = new HttpKernel(new EventDispatcher(), $this->getResolver());
292+
$request = new Request();
293+
$request->setTrustedProxies(array('1.1.1.1'));
294+
$request->server->set('REMOTE_ADDR', '1.1.1.1');
295+
$request->headers->set('FORWARDED', '2.2.2.2');
296+
$request->headers->set('X_FORWARDED_FOR', '3.3.3.3');
297+
298+
$this->assertInstanceOf('Symfony\Component\HttpFoundation\Response', $kernel->handle($request, $kernel::SUB_REQUEST, false));
299+
}
300+
274301
protected function getResolver($controller = null)
275302
{
276303
if (null === $controller) {

‎src/Symfony/Component/HttpKernel/composer.json

Copy file name to clipboardExpand all lines: src/Symfony/Component/HttpKernel/composer.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"require": {
1919
"php": ">=5.3.9",
2020
"symfony/event-dispatcher": "~2.6,>=2.6.7",
21-
"symfony/http-foundation": "~2.7,>=2.7.15",
21+
"symfony/http-foundation": "~2.7.15|~2.8,>=2.8.8",
2222
"symfony/debug": "~2.6,>=2.6.2",
2323
"psr/log": "~1.0"
2424
},

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.