Skip to content

Commit 86b3f5e

Browse files
committed
add cookie value encoding
1 parent 396cf47 commit 86b3f5e

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

Tools/LambdaTestTool-v2/src/Amazon.Lambda.TestTool/HttpContextExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public static APIGatewayHttpApiV2ProxyRequest ToApiGatewayHttpV2Request(
4444
RouteKey = $"{request.Method} {matchedConfig.Path}",
4545
RawPath = request.Path,
4646
RawQueryString = request.QueryString.Value,
47-
Cookies = request.Cookies.Select(c => $"{c.Key}={c.Value}").ToArray(),
47+
Cookies = request.Cookies.Select(c => $"{c.Key}={HttpUtility.UrlEncode(c.Value)}").ToArray(),
4848
Headers = headers,
4949
QueryStringParameters = queryStringParameters,
5050
PathParameters = pathParameters ?? new Dictionary<string, string>(),

Tools/LambdaTestTool-v2/tests/Amazon.Lambda.TestTool.UnitTests/HttpContextExtensionsTests.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public void ToApiGatewayHttpV2Request_ShouldReturnValidApiGatewayHttpApiV2ProxyR
5252
request.QueryString = new QueryString("?status=pending");
5353
request.Headers["User-Agent"] = "TestAgent";
5454
request.Headers["Accept"] = "application/json";
55-
request.Headers["Cookie"] = "session=abc123; theme=dark";
55+
request.Headers["Cookie"] = "session=abc123; theme=dark; complex=this+has+spaces;";
5656

5757
var result = context.ToApiGatewayHttpV2Request();
5858

@@ -61,9 +61,10 @@ public void ToApiGatewayHttpV2Request_ShouldReturnValidApiGatewayHttpApiV2ProxyR
6161
Assert.Equal("GET /api/users/{userId}/orders", result.RouteKey);
6262
Assert.Equal("/api/users/123/orders", result.RawPath);
6363
Assert.Equal("?status=pending", result.RawQueryString);
64-
Assert.Equal(2, result.Cookies.Length);
64+
Assert.Equal(3, result.Cookies.Length);
6565
Assert.Contains("session=abc123", result.Cookies);
6666
Assert.Contains("theme=dark", result.Cookies);
67+
Assert.Contains("complex=this%2bhas%2bspaces", result.Cookies);
6768
Assert.Equal("123", result.PathParameters["userId"]);
6869
Assert.Equal("GET", result.RequestContext.Http.Method);
6970
Assert.Equal("/api/users/123/orders", result.RequestContext.Http.Path);

0 commit comments

Comments
 (0)