Fix multiple set-cookie headers with addons ingress (#5996)

This commit is contained in:
Ruben van Dijk 2025-07-07 19:27:39 +02:00 committed by GitHub
parent 8336537f51
commit 296071067d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -309,9 +309,9 @@ class APIIngress(CoreSysAttributes):
def _init_header( def _init_header(
request: web.Request, addon: Addon, session_data: IngressSessionData | None request: web.Request, addon: Addon, session_data: IngressSessionData | None
) -> CIMultiDict | dict[str, str]: ) -> CIMultiDict[str]:
"""Create initial header.""" """Create initial header."""
headers = {} headers = CIMultiDict[str]()
if session_data is not None: if session_data is not None:
headers[HEADER_REMOTE_USER_ID] = session_data.user.id headers[HEADER_REMOTE_USER_ID] = session_data.user.id
@ -337,7 +337,7 @@ def _init_header(
istr(HEADER_REMOTE_USER_DISPLAY_NAME), istr(HEADER_REMOTE_USER_DISPLAY_NAME),
): ):
continue continue
headers[name] = value headers.add(name, value)
# Update X-Forwarded-For # Update X-Forwarded-For
if request.transport: if request.transport:
@ -348,9 +348,9 @@ def _init_header(
return headers return headers
def _response_header(response: aiohttp.ClientResponse) -> dict[str, str]: def _response_header(response: aiohttp.ClientResponse) -> CIMultiDict[str]:
"""Create response header.""" """Create response header."""
headers = {} headers = CIMultiDict[str]()
for name, value in response.headers.items(): for name, value in response.headers.items():
if name in ( if name in (
@ -360,7 +360,7 @@ def _response_header(response: aiohttp.ClientResponse) -> dict[str, str]:
hdrs.CONTENT_ENCODING, hdrs.CONTENT_ENCODING,
): ):
continue continue
headers[name] = value headers.add(name, value)
return headers return headers