@@ 37-48 (lines=12) @@ | ||
34 | Assert::assertNull($middleware->getIpAddress()); |
|
35 | } |
|
36 | ||
37 | public function testXForwardedForIp() |
|
38 | { |
|
39 | $middleware = new IpAddress(['192.168.1.1']); |
|
40 | ||
41 | $request = ServerRequestFactory::fromGlobals([ |
|
42 | 'REMOTE_ADDR' => '192.168.1.1', |
|
43 | 'HTTP_X_FORWARDED_FOR' => '192.168.1.3, 192.168.1.2, 192.168.1.1' |
|
44 | ]); |
|
45 | $this->runRequest($middleware, $request); |
|
46 | ||
47 | Assert::assertSame('192.168.1.3', $middleware->getIpAddress()); |
|
48 | } |
|
49 | ||
50 | public function testProxyIpIsIgnored() |
|
51 | { |
|
@@ 50-61 (lines=12) @@ | ||
47 | Assert::assertSame('192.168.1.3', $middleware->getIpAddress()); |
|
48 | } |
|
49 | ||
50 | public function testProxyIpIsIgnored() |
|
51 | { |
|
52 | $middleware = new IpAddress(); |
|
53 | ||
54 | $request = ServerRequestFactory::fromGlobals([ |
|
55 | 'REMOTE_ADDR' => '192.168.0.1', |
|
56 | 'HTTP_X_FORWARDED_FOR' => '192.168.1.3, 192.168.1.2, 192.168.1.1' |
|
57 | ]); |
|
58 | $this->runRequest($middleware, $request); |
|
59 | ||
60 | Assert::assertSame('192.168.0.1', $middleware->getIpAddress()); |
|
61 | } |
|
62 | ||
63 | public function testHttpClientIp() |
|
64 | { |
|
@@ 63-74 (lines=12) @@ | ||
60 | Assert::assertSame('192.168.0.1', $middleware->getIpAddress()); |
|
61 | } |
|
62 | ||
63 | public function testHttpClientIp() |
|
64 | { |
|
65 | $middleware = new IpAddress(['192.168.1.1']); |
|
66 | ||
67 | $request = ServerRequestFactory::fromGlobals([ |
|
68 | 'REMOTE_ADDR' => '192.168.1.1', |
|
69 | 'HTTP_CLIENT_IP' => '192.168.1.3' |
|
70 | ]); |
|
71 | $this->runRequest($middleware, $request); |
|
72 | ||
73 | Assert::assertSame('192.168.1.3', $middleware->getIpAddress()); |
|
74 | } |
|
75 | ||
76 | public function testXForwardedForIpV6() |
|
77 | { |
|
@@ 76-87 (lines=12) @@ | ||
73 | Assert::assertSame('192.168.1.3', $middleware->getIpAddress()); |
|
74 | } |
|
75 | ||
76 | public function testXForwardedForIpV6() |
|
77 | { |
|
78 | $middleware = new IpAddress(['192.168.1.1']); |
|
79 | ||
80 | $request = ServerRequestFactory::fromGlobals([ |
|
81 | 'REMOTE_ADDR' => '192.168.1.1', |
|
82 | 'HTTP_X_FORWARDED_FOR' => '001:DB8::21f:5bff:febf:ce22:8a2e' |
|
83 | ]); |
|
84 | $this->runRequest($middleware, $request); |
|
85 | ||
86 | Assert::assertSame('001:DB8::21f:5bff:febf:ce22:8a2e', $middleware->getIpAddress()); |
|
87 | } |
|
88 | ||
89 | public function testXForwardedForWithInvalidIp() |
|
90 | { |
|
@@ 89-100 (lines=12) @@ | ||
86 | Assert::assertSame('001:DB8::21f:5bff:febf:ce22:8a2e', $middleware->getIpAddress()); |
|
87 | } |
|
88 | ||
89 | public function testXForwardedForWithInvalidIp() |
|
90 | { |
|
91 | $middleware = new IpAddress(['192.168.1.1']); |
|
92 | ||
93 | $request = ServerRequestFactory::fromGlobals([ |
|
94 | 'REMOTE_ADDR' => '192.168.1.1', |
|
95 | 'HTTP_X_FORWARDED_FOR' => 'foo-bar' |
|
96 | ]); |
|
97 | $this->runRequest($middleware, $request); |
|
98 | ||
99 | Assert::assertSame('192.168.1.1', $middleware->getIpAddress()); |
|
100 | } |
|
101 | ||
102 | public function testXForwardedForIpWithTrustedProxy() |
|
103 | { |
|
@@ 102-113 (lines=12) @@ | ||
99 | Assert::assertSame('192.168.1.1', $middleware->getIpAddress()); |
|
100 | } |
|
101 | ||
102 | public function testXForwardedForIpWithTrustedProxy() |
|
103 | { |
|
104 | $middleware = new IpAddress(['192.168.0.1', '192.168.0.2']); |
|
105 | ||
106 | $request = ServerRequestFactory::fromGlobals([ |
|
107 | 'REMOTE_ADDR' => '192.168.0.2', |
|
108 | 'HTTP_X_FORWARDED_FOR' => '192.168.1.3, 192.168.1.2, 192.168.1.1' |
|
109 | ]); |
|
110 | $this->runRequest($middleware, $request); |
|
111 | ||
112 | Assert::assertSame('192.168.1.3', $middleware->getIpAddress()); |
|
113 | } |
|
114 | ||
115 | public function testXForwardedForIpWithUntrustedProxy() |
|
116 | { |
|
@@ 115-126 (lines=12) @@ | ||
112 | Assert::assertSame('192.168.1.3', $middleware->getIpAddress()); |
|
113 | } |
|
114 | ||
115 | public function testXForwardedForIpWithUntrustedProxy() |
|
116 | { |
|
117 | $middleware = new IpAddress(['192.168.0.1']); |
|
118 | ||
119 | $request = ServerRequestFactory::fromGlobals([ |
|
120 | 'REMOTE_ADDR' => '192.168.0.2', |
|
121 | 'HTTP_X_FORWARDED_FOR' => '192.168.1.3, 192.168.1.2, 192.168.1.1' |
|
122 | ]); |
|
123 | $this->runRequest($middleware, $request); |
|
124 | ||
125 | Assert::assertSame('192.168.0.2', $middleware->getIpAddress()); |
|
126 | } |
|
127 | ||
128 | public function testForwardedWithMultipleFor() |
|
129 | { |
|
@@ 128-139 (lines=12) @@ | ||
125 | Assert::assertSame('192.168.0.2', $middleware->getIpAddress()); |
|
126 | } |
|
127 | ||
128 | public function testForwardedWithMultipleFor() |
|
129 | { |
|
130 | $middleware = new IpAddress(['192.168.1.1']); |
|
131 | ||
132 | $request = ServerRequestFactory::fromGlobals([ |
|
133 | 'REMOTE_ADDR' => '192.168.1.1', |
|
134 | 'HTTP_FORWARDED' => 'for=192.0.2.43, for=198.51.100.17;by=203.0.113.60;proto=http;host=example.com', |
|
135 | ]); |
|
136 | $this->runRequest($middleware, $request); |
|
137 | ||
138 | Assert::assertSame('192.0.2.43', $middleware->getIpAddress()); |
|
139 | } |
|
140 | ||
141 | public function testForwardedWithAllOptions() |
|
142 | { |
|
@@ 141-152 (lines=12) @@ | ||
138 | Assert::assertSame('192.0.2.43', $middleware->getIpAddress()); |
|
139 | } |
|
140 | ||
141 | public function testForwardedWithAllOptions() |
|
142 | { |
|
143 | $middleware = new IpAddress(['192.168.1.1']); |
|
144 | ||
145 | $request = ServerRequestFactory::fromGlobals([ |
|
146 | 'REMOTE_ADDR' => '192.168.1.1', |
|
147 | 'HTTP_FORWARDED' => 'for=192.0.2.60; proto=http;by=203.0.113.43; host=_hiddenProxy, for=192.0.2.61', |
|
148 | ]); |
|
149 | $this->runRequest($middleware, $request); |
|
150 | ||
151 | Assert::assertSame('192.0.2.60', $middleware->getIpAddress()); |
|
152 | } |
|
153 | ||
154 | public function testForwardedWithWithIpV6() |
|
155 | { |
|
@@ 154-165 (lines=12) @@ | ||
151 | Assert::assertSame('192.0.2.60', $middleware->getIpAddress()); |
|
152 | } |
|
153 | ||
154 | public function testForwardedWithWithIpV6() |
|
155 | { |
|
156 | $middleware = new IpAddress(['192.168.1.1']); |
|
157 | ||
158 | $request = ServerRequestFactory::fromGlobals([ |
|
159 | 'REMOTE_ADDR' => '192.168.1.1', |
|
160 | 'HTTP_FORWARDED' => 'For="[2001:db8:cafe::17]:4711", for=_internalProxy', |
|
161 | ]); |
|
162 | $this->runRequest($middleware, $request); |
|
163 | ||
164 | Assert::assertSame('2001:db8:cafe::17', $middleware->getIpAddress()); |
|
165 | } |
|
166 | ||
167 | public function testCustomHeader() |
|
168 | { |