From 296071067d37d53d79a38902290b53ec4707784d Mon Sep 17 00:00:00 2001 From: Ruben van Dijk <15885455+RubenNL@users.noreply.github.com> Date: Mon, 7 Jul 2025 19:27:39 +0200 Subject: [PATCH] Fix multiple set-cookie headers with addons ingress (#5996) --- supervisor/api/ingress.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/supervisor/api/ingress.py b/supervisor/api/ingress.py index a01d4de21..ec99de4a7 100644 --- a/supervisor/api/ingress.py +++ b/supervisor/api/ingress.py @@ -309,9 +309,9 @@ class APIIngress(CoreSysAttributes): def _init_header( request: web.Request, addon: Addon, session_data: IngressSessionData | None -) -> CIMultiDict | dict[str, str]: +) -> CIMultiDict[str]: """Create initial header.""" - headers = {} + headers = CIMultiDict[str]() if session_data is not None: headers[HEADER_REMOTE_USER_ID] = session_data.user.id @@ -337,7 +337,7 @@ def _init_header( istr(HEADER_REMOTE_USER_DISPLAY_NAME), ): continue - headers[name] = value + headers.add(name, value) # Update X-Forwarded-For if request.transport: @@ -348,9 +348,9 @@ def _init_header( return headers -def _response_header(response: aiohttp.ClientResponse) -> dict[str, str]: +def _response_header(response: aiohttp.ClientResponse) -> CIMultiDict[str]: """Create response header.""" - headers = {} + headers = CIMultiDict[str]() for name, value in response.headers.items(): if name in ( @@ -360,7 +360,7 @@ def _response_header(response: aiohttp.ClientResponse) -> dict[str, str]: hdrs.CONTENT_ENCODING, ): continue - headers[name] = value + headers.add(name, value) return headers