From d8ebad6566ef3450d2e72529d1f0c58eb4ad12a3 Mon Sep 17 00:00:00 2001 From: Tim Kelty Date: Sun, 12 Nov 2023 10:34:54 -0500 Subject: [PATCH] Exclude cookie --- src/web/ResponseBehavior.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/web/ResponseBehavior.php b/src/web/ResponseBehavior.php index e0aad9d..c0257e8 100644 --- a/src/web/ResponseBehavior.php +++ b/src/web/ResponseBehavior.php @@ -36,7 +36,6 @@ public function events(): array public function afterPrepare(Event $event): void { - // API Gateway v2 does not support multi-header values $this->joinMultiValueHeaders(); if ($this->owner->stream) { @@ -79,9 +78,18 @@ protected function serveBinaryFromS3(): void $this->owner->redirect($url); } + /** + * API Gateway v2 doesn't support multi-value headers, + * and Bref currently will truncate all but the last value. + * + * @see https://github.com/brefphp/bref/issues/1691 + * @see https://developers.cloudflare.com/workers/runtime-apis/headers/#differences + * @see https://github.com/brefphp/bref/issues/1691 + */ protected function joinMultiValueHeaders(string $glue = ','): void { Collection::make($this->owner->getHeaders()) + ->reject(fn(array $values, string $name) => strcasecmp($name, 'Set-Cookie') === 0) ->each(function(array $values, string $name) use ($glue) { $this->joinHeaderValues($name, $values, $glue); });