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_") {
|
if (substr($name, 0, 5) === "HTTP_") {
|
||||||
$name = $this->normalizeHeaderName(substr($name, 5));
|
$name = $this->normalizeHeaderName(substr($name, 5));
|
||||||
$headers[$name] = $value;
|
$headers[$name] = $value;
|
||||||
} elseif ($name === "CONTENT_LENGTH" || $name === "CONTENT_TYPE") {
|
} elseif ($this->isContentHeader($name, $value)) {
|
||||||
$name = $this->normalizeHeaderName($name);
|
$name = $this->normalizeHeaderName($name);
|
||||||
$headers[$name] = $value;
|
$headers[$name] = $value;
|
||||||
}
|
}
|
||||||
|
|
@ -493,6 +493,17 @@ class ServerRequest extends Request implements ServerRequestInterface
|
||||||
return $headers;
|
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
|
* @param string $name
|
||||||
* @return string
|
* @return string
|
||||||
|
|
|
||||||
|
|
@ -135,6 +135,20 @@ class ServerRequestTest extends TestCase
|
||||||
$this->assertEquals("application/json", $request->getHeaderLine("Content-type"));
|
$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()
|
public function testGetServerRequestReadsBody()
|
||||||
{
|
{
|
||||||
$body = new NullStream();
|
$body = new NullStream();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue