From 05886a4aca062fced868e1bce39cc5f7482302a2 Mon Sep 17 00:00:00 2001 From: luiz_adolfo_martelli_lemos Date: Thu, 12 Feb 2026 16:54:09 -0300 Subject: [PATCH 1/2] - Fixed duplication of the authorization header in forwarded calls. - Updated samples --- samples/AuthorizationInterceptor.Sample.sln | 6 ++++++ samples/SourceApi/Program.cs | 1 - samples/SourceApi/SourceApi.csproj | 4 +--- samples/TargetApi/Program.cs | 2 +- .../AuthorizationInterceptor.Extensions.Abstractions.csproj | 4 ++-- .../AuthorizationInterceptor.Extensions.HybridCache.csproj | 2 +- .../Handlers/AuthorizationInterceptorHandler.cs | 1 + src/Directory.Build.props | 6 +++--- .../Handlers/AuthorizationInterceptorHandlerTests.cs | 2 +- 9 files changed, 16 insertions(+), 12 deletions(-) diff --git a/samples/AuthorizationInterceptor.Sample.sln b/samples/AuthorizationInterceptor.Sample.sln index 096c1aa..4e4e1ee 100644 --- a/samples/AuthorizationInterceptor.Sample.sln +++ b/samples/AuthorizationInterceptor.Sample.sln @@ -15,6 +15,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AuthorizationInterceptor.Ex EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AuthorizationInterceptor.Extensions.HybridCache", "..\src\AuthorizationInterceptor.Extensions.HybridCache\AuthorizationInterceptor.Extensions.HybridCache.csproj", "{B6B934AB-B383-0E92-B44A-22EC3C0F3B20}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AuthorizationInterceptor.Extensions.Abstractions", "..\src\AuthorizationInterceptor.Extensions.Abstractions\AuthorizationInterceptor.Extensions.Abstractions.csproj", "{A3683748-30A4-44D3-F25B-B6B81631267B}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -45,6 +47,10 @@ Global {B6B934AB-B383-0E92-B44A-22EC3C0F3B20}.Debug|Any CPU.Build.0 = Debug|Any CPU {B6B934AB-B383-0E92-B44A-22EC3C0F3B20}.Release|Any CPU.ActiveCfg = Release|Any CPU {B6B934AB-B383-0E92-B44A-22EC3C0F3B20}.Release|Any CPU.Build.0 = Release|Any CPU + {A3683748-30A4-44D3-F25B-B6B81631267B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A3683748-30A4-44D3-F25B-B6B81631267B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A3683748-30A4-44D3-F25B-B6B81631267B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A3683748-30A4-44D3-F25B-B6B81631267B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/samples/SourceApi/Program.cs b/samples/SourceApi/Program.cs index e070b6e..d31d26c 100644 --- a/samples/SourceApi/Program.cs +++ b/samples/SourceApi/Program.cs @@ -13,7 +13,6 @@ builder.Services.AddEndpointsApiExplorer(); builder.Services.AddOpenApiDocument(); -// Add the cache options builder.Services.AddMemoryCache(); builder.Services.AddStackExchangeRedisCache(opt => { diff --git a/samples/SourceApi/SourceApi.csproj b/samples/SourceApi/SourceApi.csproj index b8e3747..f28c804 100644 --- a/samples/SourceApi/SourceApi.csproj +++ b/samples/SourceApi/SourceApi.csproj @@ -7,9 +7,7 @@ - - - + diff --git a/samples/TargetApi/Program.cs b/samples/TargetApi/Program.cs index a13eab3..e9ee23a 100644 --- a/samples/TargetApi/Program.cs +++ b/samples/TargetApi/Program.cs @@ -69,7 +69,7 @@ if (!users.Users.Any(a => a.AccessToken == token && DateTimeOffset.UtcNow < a.ExpiresAt)) return Results.Unauthorized(); - return Results.Ok(); + return Results.Unauthorized(); }) .WithName("data"); diff --git a/src/AuthorizationInterceptor.Extensions.Abstractions/AuthorizationInterceptor.Extensions.Abstractions.csproj b/src/AuthorizationInterceptor.Extensions.Abstractions/AuthorizationInterceptor.Extensions.Abstractions.csproj index c96ecf8..b4705a3 100644 --- a/src/AuthorizationInterceptor.Extensions.Abstractions/AuthorizationInterceptor.Extensions.Abstractions.csproj +++ b/src/AuthorizationInterceptor.Extensions.Abstractions/AuthorizationInterceptor.Extensions.Abstractions.csproj @@ -1,11 +1,11 @@  - + - + diff --git a/src/AuthorizationInterceptor.Extensions.HybridCache/AuthorizationInterceptor.Extensions.HybridCache.csproj b/src/AuthorizationInterceptor.Extensions.HybridCache/AuthorizationInterceptor.Extensions.HybridCache.csproj index 88a377d..33a53f1 100644 --- a/src/AuthorizationInterceptor.Extensions.HybridCache/AuthorizationInterceptor.Extensions.HybridCache.csproj +++ b/src/AuthorizationInterceptor.Extensions.HybridCache/AuthorizationInterceptor.Extensions.HybridCache.csproj @@ -3,7 +3,7 @@ net8.0;net9.0;net10.0 - + diff --git a/src/AuthorizationInterceptor/Handlers/AuthorizationInterceptorHandler.cs b/src/AuthorizationInterceptor/Handlers/AuthorizationInterceptorHandler.cs index 2537785..d413cdc 100644 --- a/src/AuthorizationInterceptor/Handlers/AuthorizationInterceptorHandler.cs +++ b/src/AuthorizationInterceptor/Handlers/AuthorizationInterceptorHandler.cs @@ -65,6 +65,7 @@ private HttpRequestMessage AddHeaders(HttpRequestMessage request, AuthorizationH foreach (var header in headers) { LogDebug("Adding header '{header}' to request with integration '{name}'", header.Key, _name); + request.Headers.Remove(header.Key); request.Headers.TryAddWithoutValidation(header.Key, header.Value); } diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 5346858..6208557 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -3,7 +3,7 @@ latest enable enable - 5.4.0 + 5.4.1 net6.0;net7.0;net8.0;net9.0;net10.0 Authorization Interceptor Adolfok3 @@ -42,11 +42,11 @@ - + - + diff --git a/tests/AuthorizationInterceptor.Tests/Handlers/AuthorizationInterceptorHandlerTests.cs b/tests/AuthorizationInterceptor.Tests/Handlers/AuthorizationInterceptorHandlerTests.cs index beb9f77..912a724 100644 --- a/tests/AuthorizationInterceptor.Tests/Handlers/AuthorizationInterceptorHandlerTests.cs +++ b/tests/AuthorizationInterceptor.Tests/Handlers/AuthorizationInterceptorHandlerTests.cs @@ -80,7 +80,7 @@ public async Task SendAsync_WithHeaders_ShouldSendRequestCorrectly() } [Fact] - public async Task SendAsync_WithHeaders_ShouldReturnsAnauthorized() + public async Task SendAsync_WithHeaders_ShouldReturnsUnauthorized() { //Arrange _strategy.GetHeadersAsync("test", _authenticationHandler, Arg.Any()).Returns(new AuthorizationHeaders(TimeSpan.FromMinutes(3)) From f101feb3935c9fdbe7c9791753e52816b305af61 Mon Sep 17 00:00:00 2001 From: luiz_adolfo_martelli_lemos Date: Thu, 12 Feb 2026 17:05:46 -0300 Subject: [PATCH 2/2] Fixed sample test --- samples/TargetApi/Program.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/TargetApi/Program.cs b/samples/TargetApi/Program.cs index e9ee23a..a13eab3 100644 --- a/samples/TargetApi/Program.cs +++ b/samples/TargetApi/Program.cs @@ -69,7 +69,7 @@ if (!users.Users.Any(a => a.AccessToken == token && DateTimeOffset.UtcNow < a.ExpiresAt)) return Results.Unauthorized(); - return Results.Unauthorized(); + return Results.Ok(); }) .WithName("data");