@@ -967,7 +967,7 @@ public function testGetClientIpsWithAgreeingHeaders($httpForwarded, $httpXForwar
967
967
'HTTP_X_FORWARDED_FOR ' => $ httpXForwardedFor ,
968
968
);
969
969
970
- Request::setTrustedProxies (array ('88.88.88.88 ' ));
970
+ Request::setTrustedProxies (array ('88.88.88.88 ' ), - 1 );
971
971
972
972
$ request ->initialize (array (), array (), array (), array (), array (), $ server );
973
973
@@ -2071,6 +2071,55 @@ public function testNonstandardRequests($requestUri, $queryString, $expectedPath
2071
2071
$ this ->assertEquals ($ expectedBaseUrl , $ request ->getBaseUrl ());
2072
2072
$ this ->assertEquals ($ expectedBasePath , $ request ->getBasePath ());
2073
2073
}
2074
+
2075
+ public function testTrustedHost ()
2076
+ {
2077
+ Request::setTrustedProxies (array ('1.1.1.1 ' ), -1 );
2078
+
2079
+ $ request = Request::create ('/ ' );
2080
+ $ request ->server ->set ('REMOTE_ADDR ' , '1.1.1.1 ' );
2081
+ $ request ->headers ->set ('Forwarded ' , 'host=localhost:8080 ' );
2082
+ $ request ->headers ->set ('X-Forwarded-Host ' , 'localhost:8080 ' );
2083
+
2084
+ $ this ->assertSame ('localhost:8080 ' , $ request ->getHttpHost ());
2085
+ $ this ->assertSame (8080 , $ request ->getPort ());
2086
+
2087
+ $ request = Request::create ('/ ' );
2088
+ $ request ->server ->set ('REMOTE_ADDR ' , '1.1.1.1 ' );
2089
+ $ request ->headers ->set ('Forwarded ' , 'host="[::1]:443" ' );
2090
+ $ request ->headers ->set ('X-Forwarded-Host ' , '[::1]:443 ' );
2091
+ $ request ->headers ->set ('X-Forwarded-Port ' , 443 );
2092
+
2093
+ $ this ->assertSame ('[::1]:443 ' , $ request ->getHttpHost ());
2094
+ $ this ->assertSame (443 , $ request ->getPort ());
2095
+ }
2096
+
2097
+ public function testTrustedPort ()
2098
+ {
2099
+ Request::setTrustedProxies (array ('1.1.1.1 ' ), -1 );
2100
+
2101
+ $ request = Request::create ('/ ' );
2102
+ $ request ->server ->set ('REMOTE_ADDR ' , '1.1.1.1 ' );
2103
+ $ request ->headers ->set ('Forwarded ' , 'host=localhost:8080 ' );
2104
+ $ request ->headers ->set ('X-Forwarded-Port ' , 8080 );
2105
+
2106
+ $ this ->assertSame (8080 , $ request ->getPort ());
2107
+
2108
+ $ request = Request::create ('/ ' );
2109
+ $ request ->server ->set ('REMOTE_ADDR ' , '1.1.1.1 ' );
2110
+ $ request ->headers ->set ('Forwarded ' , 'host=localhost ' );
2111
+ $ request ->headers ->set ('X-Forw
9D2A
arded-Port ' , 80 );
2112
+
2113
+ $ this ->assertSame (80 , $ request ->getPort ());
2114
+
2115
+ $ request = Request::create ('/ ' );
2116
+ $ request ->server ->set ('REMOTE_ADDR ' , '1.1.1.1 ' );
2117
+ $ request ->headers ->set ('Forwarded ' , 'host="[::1]" ' );
2118
+ $ request ->headers ->set ('X-Forwarded-Proto ' , 'https ' );
2119
+ $ request ->headers ->set ('X-Forwarded-Port ' , 443 );
2120
+
2121
+ $ this ->assertSame (443 , $ request ->getPort ());
2122
+ }
2074
2123
}
2075
2124
2076
2125
class RequestContentProxy extends Request
0 commit comments