From cb60ad1f2905d78b1c65a94eaa17c8502c1da00c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Tue, 17 Jun 2025 16:36:59 -0400 Subject: [PATCH 1/4] find key with insensitive comparison --- .../Client/RuntimeApiHeaders.cs | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/Libraries/src/Amazon.Lambda.RuntimeSupport/Client/RuntimeApiHeaders.cs b/Libraries/src/Amazon.Lambda.RuntimeSupport/Client/RuntimeApiHeaders.cs index 4609a93bf..9e004c9c9 100644 --- a/Libraries/src/Amazon.Lambda.RuntimeSupport/Client/RuntimeApiHeaders.cs +++ b/Libraries/src/Amazon.Lambda.RuntimeSupport/Client/RuntimeApiHeaders.cs @@ -45,18 +45,14 @@ public RuntimeApiHeaders(Dictionary> headers) private string GetHeaderValueRequired(Dictionary> headers, string header) { - return headers[header].FirstOrDefault(); + var headerKey = headers.Keys.FirstOrDefault(k => string.Equals(k, header, StringComparison.OrdinalIgnoreCase)); + return headers[headerKey].FirstOrDefault(); } private string GetHeaderValueOrNull(Dictionary> headers, string header) { - if (headers.TryGetValue(header, out var values)) - { - return values.FirstOrDefault(); - } - - return null; + var headerKey = headers.Keys.FirstOrDefault(k => string.Equals(k, header, StringComparison.OrdinalIgnoreCase)); + return headers[headerKey].FirstOrDefault(); } } - } From 950a7df2a30b0d8db92c924ae060cfa70d266afc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Tue, 17 Jun 2025 16:40:07 -0400 Subject: [PATCH 2/4] fix null return --- .../Client/RuntimeApiHeaders.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Libraries/src/Amazon.Lambda.RuntimeSupport/Client/RuntimeApiHeaders.cs b/Libraries/src/Amazon.Lambda.RuntimeSupport/Client/RuntimeApiHeaders.cs index 9e004c9c9..d76ae19cd 100644 --- a/Libraries/src/Amazon.Lambda.RuntimeSupport/Client/RuntimeApiHeaders.cs +++ b/Libraries/src/Amazon.Lambda.RuntimeSupport/Client/RuntimeApiHeaders.cs @@ -51,8 +51,13 @@ private string GetHeaderValueRequired(Dictionary> he private string GetHeaderValueOrNull(Dictionary> headers, string header) { - var headerKey = headers.Keys.FirstOrDefault(k => string.Equals(k, header, StringComparison.OrdinalIgnoreCase)); - return headers[headerKey].FirstOrDefault(); + var headerKey = headers.Keys.FirstOrDefault(k => string.Equals(k, header, StringComparison.OrdinalIgnoreCase)); + if (headers.TryGetValue(headerKey, out var values)) + { + return values.FirstOrDefault(); + } + + return null; } } } From 3a0acb1b776c0ff6b34074f3ad93628a0f558d64 Mon Sep 17 00:00:00 2001 From: Garrett Beatty Date: Sun, 6 Jul 2025 20:09:42 -0400 Subject: [PATCH 3/4] add changefile --- .../changes/9f639a1b-3cd4-41ec-9d56-d6e95cb32b14.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .autover/changes/9f639a1b-3cd4-41ec-9d56-d6e95cb32b14.json diff --git a/.autover/changes/9f639a1b-3cd4-41ec-9d56-d6e95cb32b14.json b/.autover/changes/9f639a1b-3cd4-41ec-9d56-d6e95cb32b14.json new file mode 100644 index 000000000..5e6b008a8 --- /dev/null +++ b/.autover/changes/9f639a1b-3cd4-41ec-9d56-d6e95cb32b14.json @@ -0,0 +1,11 @@ +{ + "Projects": [ + { + "Name": "Amazon.Lambda.RuntimeSupport", + "Type": "Patch", + "ChangelogMessages": [ + "Fix issue making HTTP header comparisons be case insensitive" + ] + } + ] +} \ No newline at end of file From bc40e6185879b27f4c337e4f35fbd7a54c59e77b Mon Sep 17 00:00:00 2001 From: Garrett Beatty Date: Sun, 6 Jul 2025 20:38:28 -0400 Subject: [PATCH 4/4] fix import --- .../src/Amazon.Lambda.RuntimeSupport/Client/RuntimeApiHeaders.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Libraries/src/Amazon.Lambda.RuntimeSupport/Client/RuntimeApiHeaders.cs b/Libraries/src/Amazon.Lambda.RuntimeSupport/Client/RuntimeApiHeaders.cs index d76ae19cd..16c12f375 100644 --- a/Libraries/src/Amazon.Lambda.RuntimeSupport/Client/RuntimeApiHeaders.cs +++ b/Libraries/src/Amazon.Lambda.RuntimeSupport/Client/RuntimeApiHeaders.cs @@ -12,6 +12,7 @@ * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ +using System; using System.Collections.Generic; using System.Linq;