From 08d89826dbb3ecb5f5c2fed4b083d0d85e9b4c27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Droz?= Date: Wed, 27 Mar 2024 11:22:31 -0300 Subject: [PATCH 1/3] HTTP headers key are case-insensitive --- src/ObjectStore/v1/Models/MetadataTrait.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ObjectStore/v1/Models/MetadataTrait.php b/src/ObjectStore/v1/Models/MetadataTrait.php index f4006aedb..b1e2beedf 100644 --- a/src/ObjectStore/v1/Models/MetadataTrait.php +++ b/src/ObjectStore/v1/Models/MetadataTrait.php @@ -13,7 +13,7 @@ public function parseMetadata(ResponseInterface $response): array $metadata = []; foreach ($response->getHeaders() as $header => $value) { - if (0 === strpos($header, static::METADATA_PREFIX)) { + if (0 === stripos($header, static::METADATA_PREFIX)) { $name = substr($header, strlen(static::METADATA_PREFIX)); $metadata[$name] = $response->getHeader($header)[0]; } From 5773a6f2e5435fe99d7ebc555a2edc71c0413787 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Droz?= Date: Wed, 27 Mar 2024 11:50:36 -0300 Subject: [PATCH 2/3] backward compatibility: keep value from mixed-key header under the lowercased name too so that code can consistently rely on it --- src/ObjectStore/v1/Models/MetadataTrait.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ObjectStore/v1/Models/MetadataTrait.php b/src/ObjectStore/v1/Models/MetadataTrait.php index b1e2beedf..53680221b 100644 --- a/src/ObjectStore/v1/Models/MetadataTrait.php +++ b/src/ObjectStore/v1/Models/MetadataTrait.php @@ -16,6 +16,9 @@ public function parseMetadata(ResponseInterface $response): array if (0 === stripos($header, static::METADATA_PREFIX)) { $name = substr($header, strlen(static::METADATA_PREFIX)); $metadata[$name] = $response->getHeader($header)[0]; + if ($name !== strtolower($name)) { + $metadata[strtolower($name)] = $response->getHeader($header)[0]; + } } } From 861b232b23b2aa97b3df97e0153e9a44787e2a86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Droz?= Date: Wed, 27 Mar 2024 15:34:18 -0300 Subject: [PATCH 3/3] simplify --- src/ObjectStore/v1/Models/MetadataTrait.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/ObjectStore/v1/Models/MetadataTrait.php b/src/ObjectStore/v1/Models/MetadataTrait.php index 53680221b..5c2f9fa17 100644 --- a/src/ObjectStore/v1/Models/MetadataTrait.php +++ b/src/ObjectStore/v1/Models/MetadataTrait.php @@ -15,10 +15,7 @@ public function parseMetadata(ResponseInterface $response): array foreach ($response->getHeaders() as $header => $value) { if (0 === stripos($header, static::METADATA_PREFIX)) { $name = substr($header, strlen(static::METADATA_PREFIX)); - $metadata[$name] = $response->getHeader($header)[0]; - if ($name !== strtolower($name)) { - $metadata[strtolower($name)] = $response->getHeader($header)[0]; - } + $metadata[$name] = $metadata[strtolower($name)] = $response->getHeader($header)[0]; } }