Skip to content

Commit 073d0f8

Browse files
araki-yzrhfour43
authored andcommitted
Fix: APIGW v2 Request Cookie Header (Kludex#153)
* fix apigw v2 request cookie header * add v1 cookie header test
1 parent 9750ee6 commit 073d0f8

3 files changed

Lines changed: 9 additions & 0 deletions

File tree

mangum/adapter.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,9 @@ def __call__(self, event: dict, context: dict) -> dict:
116116
else {}
117117
)
118118

119+
if "cookies" in event:
120+
headers["cookie"] = "; ".join(event.get("cookies", []))
121+
119122
server_name = headers.get("host", "mangum")
120123
if ":" not in server_name:
121124
server_port = headers.get("x-forwarded-port", 80)

tests/conftest.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ def mock_http_event(request):
1919
"CloudFront-Is-SmartTV-Viewer": "false",
2020
"CloudFront-Is-Tablet-Viewer": "false",
2121
"CloudFront-Viewer-Country": "US",
22+
"Cookie": "cookie1; cookie2",
2223
"Host": "test.execute-api.us-west-2.amazonaws.com",
2324
"Upgrade-Insecure-Requests": "1",
2425
"X-Forwarded-For": "192.168.100.1, 192.168.1.1",

tests/test_http.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ async def app(scope, receive, send):
4242
"CloudFront-Is-SmartTV-Viewer": "false",
4343
"CloudFront-Is-Tablet-Viewer": "false",
4444
"CloudFront-Viewer-Country": "US",
45+
"Cookie": "cookie1; cookie2",
4546
"Host": "test.execute-api.us-west-2.amazonaws.com",
4647
"Upgrade-Insecure-Requests": "1",
4748
"X-Forwarded-For": "192.168.100.1, 192.168.1.1",
@@ -104,6 +105,7 @@ async def app(scope, receive, send):
104105
[b"cloudfront-is-smarttv-viewer", b"false"],
105106
[b"cloudfront-is-tablet-viewer", b"false"],
106107
[b"cloudfront-viewer-country", b"US"],
108+
[b"cookie", b"cookie1; cookie2"],
107109
[b"host", b"test.execute-api.us-west-2.amazonaws.com"],
108110
[b"upgrade-insecure-requests", b"1"],
109111
[b"x-forwarded-for", b"192.168.100.1, 192.168.1.1"],
@@ -160,6 +162,7 @@ async def app(scope, receive, send):
160162
"CloudFront-Is-SmartTV-Viewer": "false",
161163
"CloudFront-Is-Tablet-Viewer": "false",
162164
"CloudFront-Viewer-Country": "US",
165+
"Cookie": "cookie1; cookie2",
163166
"Host": "test.execute-api.us-west-2.amazonaws.com",
164167
"Upgrade-Insecure-Requests": "1",
165168
"X-Forwarded-For": "192.168.100.1, 192.168.1.1",
@@ -220,6 +223,7 @@ async def app(scope, receive, send):
220223
[b"cloudfront-is-smarttv-viewer", b"false"],
221224
[b"cloudfront-is-tablet-viewer", b"false"],
222225
[b"cloudfront-viewer-country", b"US"],
226+
[b"cookie", b"cookie1; cookie2"],
223227
[b"host", b"test.execute-api.us-west-2.amazonaws.com"],
224228
[b"upgrade-insecure-requests", b"1"],
225229
[b"x-forwarded-for", b"192.168.100.1, 192.168.1.1"],
@@ -603,6 +607,7 @@ async def app(scope, receive, send):
603607
[b"x-forwarded-port", b"443"],
604608
[b"x-forwarded-proto", b"https"],
605609
[b"host", b"test.execute-api.us-west-2.amazonaws.com"],
610+
[b"cookie", b"cookie1; cookie2"],
606611
],
607612
"http_version": "1.1",
608613
"method": "GET",

0 commit comments

Comments
 (0)