File tree Expand file tree Collapse file tree 3 files changed +32
-0
lines changed
src/Symfony/Component/HttpFoundation Expand file tree Collapse file tree 3 files changed +32
-0
lines changed Original file line number Diff line number Diff line change @@ -6,6 +6,7 @@ CHANGELOG
6
6
7
7
* passing arguments to ` Request::isMethodSafe() ` is deprecated.
8
8
* ` ApacheRequest ` is deprecated, use the ` Request ` class instead.
9
+ * added ` setTrustedHeaderName() ` method to the ` Request ` class.
9
10
10
11
4.3.0
11
12
-----
Original file line number Diff line number Diff line change @@ -610,6 +610,23 @@ public static function setTrustedHosts(array $hostPatterns)
610
610
self ::$ trustedHosts = [];
611
611
}
612
612
613
+ /**
614
+ * Sets the name for trusted headers.
615
+ *
616
+ * @param int $type A bit field like Request::HEADER_*, to set which headers to trust from your proxies
617
+ * @param string $value The header name
618
+ *
619
+ * @throws \InvalidArgumentException
620
+ */
621
+ public static function setTrustedHeaderName (int $ type , string $ value ): void
622
+ {
623
+ if (!isset (self ::$ trustedHeaders [$ type ])) {
624
+ throw new \InvalidArgumentException (sprintf ('Unable to set the trusted header name for type "%s". ' , $ type ));
625
+ }
626
+
627
+ self ::$ trustedHeaders [$ type ] = $ value ;
628
+ }
629
+
613
630
/**
614
631
* Gets the list of trusted host patterns.
615
632
*
Original file line number Diff line number Diff line change @@ -2325,6 +2325,20 @@ public function testTrustedPortDoesNotDefaultToZero()
2325
2325
2326
2326
$ this ->assertSame (80 , $ request ->getPort ());
2327
2327
}
2328
+
2329
+ public function testSetTrustedHeaderName ()
2330
+ {
2331
+ $ request = Request::create ('http://example.com/ ' );
2332
+ $ request ->server ->set ('REMOTE_ADDR ' , '1.1.1.1 ' );
2333
+ $ request ->headers ->set ('X_CUSTOM_FORWARDED_PORT ' , '8888 ' );
2334
+
2335
+ $ this ->assertSame (80 , $ request ->getPort ());
2336
+
2337
+ $ request ::setTrustedHeaderName (Request::HEADER_X_FORWARDED_PORT , 'X_CUSTOM_FORWARDED_PORT ' );
2338
+ Request::setTrustedProxies (['1.1.1.1 ' ], Request::HEADER_X_FORWARDED_PORT );
2339
+
2340
+ $ this ->assertSame (8888 , $ request ->getPort ());
2341
+ }
2328
2342
}
2329
2343
2330
2344
class RequestContentProxy extends Request
You can’t perform that action at this time.
0 commit comments