8000 Request->getPort() should prefer HTTP_HOST over SERVER_PORT · symfony/symfony@65814ba · GitHub
[go: up one dir, main page]

Skip to content

Commit 65814ba

Browse files
Dennis Hotsonfabpot
Dennis Hotson
authored andcommitted
Request->getPort() should prefer HTTP_HOST over SERVER_PORT
1 parent 1086faf commit 65814ba

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

src/Symfony/Component/HttpFoundation/Request.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -887,6 +887,14 @@ public function getPort()
887887
}
888888
}
889889

890+
if ($host = $this->headers->get('HOST')) {
891+
if (preg_match('/:(\d+)$/', $host, $matches)) {
892+
return intval($matches[1]);
893+
}
894+
895+
return 'https' === $this->getScheme() ? 443 : 80;
896+
}
897+
890898
return $this->server->get('SERVER_PORT');
891899
}
892900

src/Symfony/Component/HttpFoundation/Tests/RequestTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1540,6 +1540,18 @@ public function testTrustedHosts()
15401540
// trusted hosts
15411541
$request->headers->set('host', 'trusted.com');
15421542
$this->assertEquals('trusted.com', $request->getHost());
1543+
$this->assertEquals(80, $request->getPort());
1544+
1545+
$request->server->set('HTTPS', true);
1546+
$request->headers->set('host', 'trusted.com');
1547+
$this->assertEquals('trusted.com', $request->getHost());
1548+
$this->assertEquals(443, $request->getPort());
1549+
$request->server->set('HTTPS', false);
1550+
1551+
$request->headers->set('host', 'trusted.com:8000');
1552+
$this->assertEquals('trusted.com', $request->getHost());
1553+
$this->assertEquals(8000, $request->getPort());
1554+
15431555
$request->headers->set('host', 'subdomain.trusted.com');
15441556
$this->assertEquals('subdomain.trusted.com', $request->getHost());
15451557

0 commit comments

Comments
 (0)
0