From 207779d1fc7894af2c332718895c38695a0b9d9a Mon Sep 17 00:00:00 2001 From: tore-hammervoll Date: Fri, 23 Feb 2024 15:19:58 +0100 Subject: [PATCH] Make HttpMessage.SetHeader replace any existing header value Ensure the "Signature" value is not added multiple times when a retry happens --- .../Extensions/HttpRequestMessageExtensions.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/IdentityStream.HttpMessageSigning/Extensions/HttpRequestMessageExtensions.cs b/src/IdentityStream.HttpMessageSigning/Extensions/HttpRequestMessageExtensions.cs index 3d5d551..b164be4 100644 --- a/src/IdentityStream.HttpMessageSigning/Extensions/HttpRequestMessageExtensions.cs +++ b/src/IdentityStream.HttpMessageSigning/Extensions/HttpRequestMessageExtensions.cs @@ -29,8 +29,15 @@ public HttpMessage(HttpRequestMessage request) { private HttpRequestMessage Request { get; } - public void SetHeader(string name, string value) => + public void SetHeader(string name, string value) + { + if (Request.Headers.Contains(name)) + { + Request.Headers.Remove(name); + } + Request.Headers.TryAddWithoutValidation(name, value); + } public bool TryGetHeaderValues(string name, [NotNullWhen(true)] out IEnumerable? values) => Request.Headers.TryGetValues(name, out values);