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 diff --git a/Libraries/src/Amazon.Lambda.RuntimeSupport/Client/RuntimeApiHeaders.cs b/Libraries/src/Amazon.Lambda.RuntimeSupport/Client/RuntimeApiHeaders.cs index 4609a93bf..03d4d1843 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; @@ -28,12 +29,14 @@ internal class RuntimeApiHeaders public RuntimeApiHeaders(Dictionary> headers) { - DeadlineMs = GetHeaderValueOrNull(headers, HeaderDeadlineMs); - AwsRequestId = GetHeaderValueRequired(headers, HeaderAwsRequestId); - ClientContextJson = GetHeaderValueOrNull(headers, HeaderClientContext); - CognitoIdentityJson = GetHeaderValueOrNull(headers, HeaderCognitoIdentity); - InvokedFunctionArn = GetHeaderValueOrNull(headers, HeaderInvokedFunctionArn); - TraceId = GetHeaderValueOrNull(headers, HeaderTraceId); + var caseInsensitiveHeaders = new Dictionary>(headers, StringComparer.OrdinalIgnoreCase); + + DeadlineMs = GetHeaderValueOrNull(caseInsensitiveHeaders, HeaderDeadlineMs); + AwsRequestId = GetHeaderValueRequired(caseInsensitiveHeaders, HeaderAwsRequestId); + ClientContextJson = GetHeaderValueOrNull(caseInsensitiveHeaders, HeaderClientContext); + CognitoIdentityJson = GetHeaderValueOrNull(caseInsensitiveHeaders, HeaderCognitoIdentity); + InvokedFunctionArn = GetHeaderValueOrNull(caseInsensitiveHeaders, HeaderInvokedFunctionArn); + TraceId = GetHeaderValueOrNull(caseInsensitiveHeaders, HeaderTraceId); } public string AwsRequestId { get; private set; } @@ -58,5 +61,4 @@ private string GetHeaderValueOrNull(Dictionary> head return null; } } - }