ServerRequest does not include empty Content-type and -length headers
This commit is contained in:
parent
d78537809b
commit
d1c7076929
|
|
@ -485,7 +485,7 @@ class ServerRequest extends Request implements ServerRequestInterface
|
|||
if (substr($name, 0, 5) === "HTTP_") {
|
||||
$name = $this->normalizeHeaderName(substr($name, 5));
|
||||
$headers[$name] = $value;
|
||||
} elseif ($name === "CONTENT_LENGTH" || $name === "CONTENT_TYPE") {
|
||||
} elseif ($this->isContentHeader($name, $value)) {
|
||||
$name = $this->normalizeHeaderName($name);
|
||||
$headers[$name] = $value;
|
||||
}
|
||||
|
|
@ -493,6 +493,17 @@ class ServerRequest extends Request implements ServerRequestInterface
|
|||
return $headers;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $name
|
||||
* @param $value
|
||||
* @return bool
|
||||
*/
|
||||
private function isContentHeader($name, $value)
|
||||
{
|
||||
return ($name === "CONTENT_LENGTH" || $name === "CONTENT_TYPE")
|
||||
&& trim($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @return string
|
||||
|
|
|
|||
|
|
@ -135,6 +135,20 @@ class ServerRequestTest extends TestCase
|
|||
$this->assertEquals("application/json", $request->getHeaderLine("Content-type"));
|
||||
}
|
||||
|
||||
/**
|
||||
* @backupGlobals enabled
|
||||
*/
|
||||
public function testGetServerRequestDoesNotReadEmptyContentHeaders()
|
||||
{
|
||||
$_SERVER = [
|
||||
"CONTENT_LENGTH" => "",
|
||||
"CONTENT_TYPE" => " "
|
||||
];
|
||||
$request = ServerRequest::getServerRequest();
|
||||
$this->assertFalse($request->hasHeader("Content-length"));
|
||||
$this->assertFalse($request->hasHeader("Content-type"));
|
||||
}
|
||||
|
||||
public function testGetServerRequestReadsBody()
|
||||
{
|
||||
$body = new NullStream();
|
||||
|
|
|
|||
Loading…
Reference in New Issue