diff --git a/typo3/sysext/core/Classes/Http/Message.php b/typo3/sysext/core/Classes/Http/Message.php index 43c05ab145807179e6842b5f0e0f1809c852bbf0..5f00cc910b73a8e1456b9db649d7e393f100aa61 100644 --- a/typo3/sysext/core/Classes/Http/Message.php +++ b/typo3/sysext/core/Classes/Http/Message.php @@ -341,11 +341,11 @@ class Message implements MessageInterface { $headerNames = $headers = []; foreach ($originalHeaders as $header => $value) { - if (!is_string($header) || (!is_array($value) && !is_string($value))) { + if (!is_string($header) || (!is_array($value) && !is_scalar($value))) { continue; } if (!is_array($value)) { - $value = [$value]; + $value = [(string)$value]; } $headerNames[strtolower($header)] = $header; $headers[$header] = $value; diff --git a/typo3/sysext/core/Tests/Unit/Http/RequestTest.php b/typo3/sysext/core/Tests/Unit/Http/RequestTest.php index 81b2b5b695d5e13c063be9b4f39441b434e70e62..aabe93cedc2ed4c0213b1fe255bd2f00e55e04a6 100644 --- a/typo3/sysext/core/Tests/Unit/Http/RequestTest.php +++ b/typo3/sysext/core/Tests/Unit/Http/RequestTest.php @@ -136,14 +136,19 @@ final class RequestTest extends UnitTestCase $headers = [ ['INVALID'], 'x-invalid-null' => null, - 'x-invalid-true' => true, - 'x-invalid-false' => false, - 'x-invalid-int' => 1, 'x-invalid-object' => (object)['INVALID'], + 'x-valid-true' => true, + 'x-valid-false' => false, + 'x-valid-int' => 1, + 'x-valid-float' => 1.5, 'x-valid-string' => 'VALID', 'x-valid-array' => ['VALID'], ]; $expected = [ + 'x-valid-true' => ['1'], + 'x-valid-false' => [''], + 'x-valid-int' => ['1'], + 'x-valid-float' => ['1.5'], 'x-valid-string' => ['VALID'], 'x-valid-array' => ['VALID'], ]; diff --git a/typo3/sysext/core/Tests/Unit/Http/ResponseTest.php b/typo3/sysext/core/Tests/Unit/Http/ResponseTest.php index 0a2f6b4d2b09579948446f988aeae152e58ae0c1..97b404e94ba2358bfdf8b45273e30cd01ad0a83b 100644 --- a/typo3/sysext/core/Tests/Unit/Http/ResponseTest.php +++ b/typo3/sysext/core/Tests/Unit/Http/ResponseTest.php @@ -161,14 +161,19 @@ final class ResponseTest extends UnitTestCase $headers = [ ['INVALID'], 'x-invalid-null' => null, - 'x-invalid-true' => true, - 'x-invalid-false' => false, - 'x-invalid-int' => 1, + 'x-valid-true' => true, + 'x-valid-false' => false, + 'x-valid-int' => 1, + 'x-valid-float' => 1.5, 'x-invalid-object' => (object)['INVALID'], 'x-valid-string' => 'VALID', 'x-valid-array' => ['VALID'], ]; $expected = [ + 'x-valid-true' => ['1'], + 'x-valid-false' => [''], + 'x-valid-int' => ['1'], + 'x-valid-float' => ['1.5'], 'x-valid-string' => ['VALID'], 'x-valid-array' => ['VALID'], ];