From 4d99d5216efbc782024f2d5031eb435fcecf9973 Mon Sep 17 00:00:00 2001 From: Mateusz Kwasniewski Date: Thu, 6 Feb 2025 13:22:26 +0100 Subject: [PATCH] fix: prevent connection overwrite (#275) --------- Co-authored-by: David Leek --- src/Unleash/Communication/UnleashApiClient.cs | 3 ++- .../RequestMessageHeadersTest.cs | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 tests/Unleash.Tests/Communication/RequestMessageHeadersTest.cs diff --git a/src/Unleash/Communication/UnleashApiClient.cs b/src/Unleash/Communication/UnleashApiClient.cs index 6cccc3f..1a87307 100644 --- a/src/Unleash/Communication/UnleashApiClient.cs +++ b/src/Unleash/Communication/UnleashApiClient.cs @@ -283,12 +283,13 @@ private static void SetRequestHeaders(HttpRequestMessage requestMessage, Unleash requestMessage.Headers.TryAddWithoutValidation(instanceIdHeader, headers.InstanceTag); requestMessage.Headers.TryAddWithoutValidation(supportedSpecVersionHeader, headers.SupportedSpecVersion); - requestMessage.Headers.TryAddWithoutValidation(identifyConnectionHeader, headers.ConnectionId); requestMessage.Headers.TryAddWithoutValidation(identifyAppNameHeader, headers.AppName); requestMessage.Headers.TryAddWithoutValidation(identifySdkHeader, headers.SdkVersion); SetCustomHeaders(requestMessage, headers.CustomHttpHeaders); SetCustomHeaders(requestMessage, headers.CustomHttpHeaderProvider?.CustomHeaders); + + requestMessage.Headers.TryAddWithoutValidation(identifyConnectionHeader, headers.ConnectionId); } private static void SetCustomHeaders(HttpRequestMessage requestMessage, Dictionary headers) diff --git a/tests/Unleash.Tests/Communication/RequestMessageHeadersTest.cs b/tests/Unleash.Tests/Communication/RequestMessageHeadersTest.cs new file mode 100644 index 0000000..3ed314f --- /dev/null +++ b/tests/Unleash.Tests/Communication/RequestMessageHeadersTest.cs @@ -0,0 +1,19 @@ +using NUnit.Framework; + +namespace Unleash.Tests.Communication +{ + public class RequestMessageHeadersTest + { + [Test] + public void RequestMessageHeaders_Should_Contain_Headers() + { + var requestMessage = new HttpRequestMessage(); + requestMessage.Headers.TryAddWithoutValidation("header1", "value1"); + requestMessage.Headers.TryAddWithoutValidation("header1", "value2"); + + Assert.That(requestMessage.Headers.Count, Is.EqualTo(1)); + Assert.That(requestMessage.Headers.First().Key, Is.EqualTo("header1")); + Assert.That(requestMessage.Headers.First().Value.Last(), Is.EqualTo("value2")); + } + } +} \ No newline at end of file