Skip to content

Commit 7aabb89

Browse files
chuoketaylorotwell
andauthored
[11.x] Fixes trust proxy REMOTE_ADDR not working in Swoole (#52889)
* fix: trust proxy REMOTE_ADDR not working in Swoole * formatting * add test case for trusted proxy with REMOTE_ADDR --------- Co-authored-by: Taylor Otwell <[email protected]>
1 parent 0e88b9c commit 7aabb89

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

src/Illuminate/Http/Middleware/TrustProxies.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,13 @@ protected function setTrustedProxyIpAddresses(Request $request)
9090
*/
9191
protected function setTrustedProxyIpAddressesToSpecificIps(Request $request, array $trustedIps)
9292
{
93-
$request->setTrustedProxies($trustedIps, $this->getTrustedHeaderNames());
93+
$request->setTrustedProxies(array_reduce($trustedIps, function ($ips, $trustedIp) use ($request) {
94+
$ips[] = $trustedIp === 'REMOTE_ADDR'
95+
? $request->server->get('REMOTE_ADDR')
96+
: $trustedIp;
97+
98+
return $ips;
99+
}, []), $this->getTrustedHeaderNames());
94100
}
95101

96102
/**

tests/Http/Middleware/TrustProxiesTest.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,20 @@ public function test_trusted_proxy_sets_trusted_proxies_with_double_wildcard_for
7979
});
8080
}
8181

82+
/**
83+
* Test the next most typical usage of TrustedProxies:
84+
* Trusted X-Forwarded-For header, REMOTE_ADDR for TrustedProxies.
85+
*/
86+
public function test_trusted_proxy_sets_trusted_proxies_with_REMOTE_ADDR()
87+
{
88+
$trustedProxy = $this->createTrustedProxy($this->headerAll, 'REMOTE_ADDR');
89+
$request = $this->createProxiedRequest();
90+
91+
$trustedProxy->handle($request, function ($request) {
92+
$this->assertSame('173.174.200.38', $request->getClientIp(), 'Assert trusted proxy x-forwarded-for header used with REMOTE_ADDR proxy setting');
93+
});
94+
}
95+
8296
/**
8397
* Test the most typical usage of TrustProxies:
8498
* Trusted X-Forwarded-For header.

0 commit comments

Comments
 (0)