Skip to content

Commit b7220c0

Browse files
authored
[Amazon.Lambda.RuntimeSupport] fix: Find header key with insensitive comparison (#2094)
1 parent a25dadc commit b7220c0

File tree

2 files changed

+20
-7
lines changed

2 files changed

+20
-7
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"Projects": [
3+
{
4+
"Name": "Amazon.Lambda.RuntimeSupport",
5+
"Type": "Patch",
6+
"ChangelogMessages": [
7+
"Fix issue making HTTP header comparisons be case insensitive"
8+
]
9+
}
10+
]
11+
}

Libraries/src/Amazon.Lambda.RuntimeSupport/Client/RuntimeApiHeaders.cs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
* express or implied. See the License for the specific language governing
1313
* permissions and limitations under the License.
1414
*/
15+
using System;
1516
using System.Collections.Generic;
1617
using System.Linq;
1718

@@ -28,12 +29,14 @@ internal class RuntimeApiHeaders
2829

2930
public RuntimeApiHeaders(Dictionary<string, IEnumerable<string>> headers)
3031
{
31-
DeadlineMs = GetHeaderValueOrNull(headers, HeaderDeadlineMs);
32-
AwsRequestId = GetHeaderValueRequired(headers, HeaderAwsRequestId);
33-
ClientContextJson = GetHeaderValueOrNull(headers, HeaderClientContext);
34-
CognitoIdentityJson = GetHeaderValueOrNull(headers, HeaderCognitoIdentity);
35-
InvokedFunctionArn = GetHeaderValueOrNull(headers, HeaderInvokedFunctionArn);
36-
TraceId = GetHeaderValueOrNull(headers, HeaderTraceId);
32+
var caseInsensitiveHeaders = new Dictionary<string, IEnumerable<string>>(headers, StringComparer.OrdinalIgnoreCase);
33+
34+
DeadlineMs = GetHeaderValueOrNull(caseInsensitiveHeaders, HeaderDeadlineMs);
35+
AwsRequestId = GetHeaderValueRequired(caseInsensitiveHeaders, HeaderAwsRequestId);
36+
ClientContextJson = GetHeaderValueOrNull(caseInsensitiveHeaders, HeaderClientContext);
37+
CognitoIdentityJson = GetHeaderValueOrNull(caseInsensitiveHeaders, HeaderCognitoIdentity);
38+
InvokedFunctionArn = GetHeaderValueOrNull(caseInsensitiveHeaders, HeaderInvokedFunctionArn);
39+
TraceId = GetHeaderValueOrNull(caseInsensitiveHeaders, HeaderTraceId);
3740
}
3841

3942
public string AwsRequestId { get; private set; }
@@ -58,5 +61,4 @@ private string GetHeaderValueOrNull(Dictionary<string, IEnumerable<string>> head
5861
return null;
5962
}
6063
}
61-
6264
}

0 commit comments

Comments
 (0)