@@ -1019,7 +1019,7 @@ public function testGetClientIpsWithAgreeingHeaders($httpForwarded, $httpXForwar
1019
1019
'HTTP_X_FORWARDED_FOR ' => $ httpXForwardedFor ,
1020
1020
);
1021
1021
1022
- Request::setTrustedProxies (array ('88.88.88.88 ' ), Request:: HEADER_X_FORWARDED_ALL );
1022
+ Request::setTrustedProxies (array ('88.88.88.88 ' ), - 1 );
1023
1023
1024
1024
$ request ->initialize (array (), array (), array (), array (), array (), $ server );
1025
1025
@@ -2277,6 +2277,55 @@ public function testNonstandardRequests($requestUri, $queryString, $expectedPath
2277
2277
$ this ->assertEquals ($ expectedBaseUrl , $ request ->getBaseUrl ());
2278
2278
$ this ->assertEquals ($ expectedBasePath , $ request ->getBasePath ());
2279
2279
}
2280
+
2281
+ public function testTrustedHost ()
2282
+ {
2283
+ Request::setTrustedProxies (array ('1.1.1.1 ' ), -1 );
2284
+
2285
+ $ request = Request::create ('/ ' );
2286
+ $ request ->server ->set ('REMOTE_ADDR ' , '1.1.1.1 ' );
2287
+ $ request ->headers ->set ('Forwarded ' , 'host=localhost:8080 ' );
2288
+ $ request ->headers ->set ('X-Forwarded-Host ' , 'localhost:8080 ' );
2289
+
2290
+ $ this ->assertSame ('localhost:8080 ' , $ request ->getHttpHost ());
2291
+ $ this ->assertSame (8080 , $ request ->getPort ());
2292
+
2293
+ $ request = Request::create ('/ ' );
2294
+ $ request ->server ->set ('REMOTE_ADDR ' , '1.1.1.1 ' );
2295
+ $ request ->headers ->set ('Forwarded ' , 'host="[::1]:443" ' );
2296
+ $ request ->headers ->set ('X-Forwarded-Host ' , '[::1]:443 ' );
2297
+ $ request ->headers ->set ('X-Forwarded-Port ' , 443 );
2298
+
2299
+ $ this ->assertSame ('[::1]:443 ' , $ request ->getHttpHost ());
2300
+ $ this ->assertSame (443 , $ request ->getPort ());
2301
+ }
2302
+
2303
+ public function testTrustedPort ()
2304
+ {
2305
+ Request::setTrustedProxies (array ('1.1.1.1 ' ), -1 );
2306
+
2307
+ $ request = Request::create ('/ ' );
2308
+ $ request ->server ->set ('REMOTE_ADDR ' , '1.1.1.1 ' );
2309
+ $ request ->headers ->set ('Forwarded ' , 'host=localhost:8080 ' );
2310
+ $ request ->headers ->set ('X-Forwarded-Port ' , 8080 );
2311
+
2312
+ $ this ->assertSame (8080 , $ request ->getPort ());
2313
+
2314
+ $ request = Request::create ('/ ' );
2315
+ $ request ->server ->set ('REMOTE_ADDR ' , '1.1.1.1 ' );
2316
+ $ request ->headers ->set ('Forwarded ' , 'host=localhost ' );
2317
+ $ request ->headers ->set ('X-Forwarded-Port ' , 80 );
2318
+
2319
+ $ this ->assertSame (80 , $ request ->getPort ());
2320
+
2321
+ $ request = Request::create ('/ ' );
2322
+ $ request ->server ->set ('REMOTE_ADDR ' , '1.1.1.1 ' );
2323
+ $ request ->headers ->set ('Forwarded ' , 'host="[::1]" ' );
2324
+ $ request ->headers ->set ('X-Forwarded-Proto ' , 'https ' );
2325
+ $ request ->headers ->set ('X-Forwarded-Port ' , 443 );
2326
+
2327
+ $ this ->assertSame (443 , $ request ->getPort ());
2328
+ }
2280
2329
}
2281
2330
2282
2331
class RequestContentProxy extends Request
0 commit comments