瀏覽代碼

Merge remote branch 'kriswallsmith/http/forwarded-secure'

* kriswallsmith/http/forwarded-secure:
  [HttpFoundation] added support for X-Forwarded-Port request header
Fabien Potencier 14 年之前
父節點
當前提交
c200b42e89

+ 1 - 1
src/Symfony/Component/HttpFoundation/Request.php

@@ -413,7 +413,7 @@ class Request
 
     public function getPort()
     {
-        return $this->server->get('SERVER_PORT');
+        return $this->headers->get('X-Forwarded-Port') ?: $this->server->get('SERVER_PORT');
     }
 
     /**

+ 10 - 0
tests/Symfony/Tests/Component/HttpFoundation/RequestTest.php

@@ -711,4 +711,14 @@ class RequestTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals(null, $request->setRequestFormat('foo'));
         $this->assertEquals('foo', $request->getRequestFormat(null));
     }
+
+    public function testForwardedSecure()
+    {
+        $request = new Request();
+        $request->headers->set('X-Forwarded-Proto', 'https');
+        $request->headers->set('X-Forwarded-Port', 443);
+
+        $this->assertTrue($request->isSecure());
+        $this->assertEquals(443, $request->getPort());
+    }
 }