From 4e2e3fab3d06a8c0520f0663cae5cb1f2d8221f2 Mon Sep 17 00:00:00 2001 From: wzh425 Date: Tue, 11 Jul 2023 16:27:12 +0800 Subject: [PATCH 1/6] reactor : EnvironmentCallerMiddleware --- ...asa.BuildingBlocks.StackSdks.Auth.Contracts.csproj | 1 + .../_Imports.cs | 1 + .../Models}/IEnvironmentModel.cs | 3 ++- .../Masa.Contrib.StackSdks.Alert.csproj | 1 + .../ServiceCollectionExtensions.cs | 8 ++++++-- .../Masa.Contrib.StackSdks.Alert/_Imports.cs | 6 +----- .../Masa.Contrib.StackSdks.Auth.csproj | 1 + .../ServiceCollectionExtensions.cs | 2 +- .../StackSdks/Masa.Contrib.StackSdks.Auth/_Imports.cs | 1 + .../EnvironmentCallerMiddleware.cs} | 11 ++++++----- .../EnvironmentModel.cs | 2 +- .../Masa.Contrib.StackSdks.Isolation/_Imports.cs | 1 + .../Masa.Contrib.StackSdks.Mc.csproj | 1 + .../ServiceCollectionExtensions.cs | 8 ++++++-- .../StackSdks/Masa.Contrib.StackSdks.Mc/_Imports.cs | 1 + .../Masa.Contrib.StackSdks.Scheduler.csproj | 1 + .../ServiceCollectionExtensions.cs | 4 +++- .../Masa.Contrib.StackSdks.Scheduler/_Imports.cs | 3 ++- 18 files changed, 37 insertions(+), 19 deletions(-) rename src/BuildingBlocks/StackSdks/{Auth/Masa.BuildingBlocks.StackSdks.Auth.Contracts/Model => Masa.BuildingBlocks.StackSdks.Isolation/Models}/IEnvironmentModel.cs (78%) rename src/Contrib/StackSdks/{Masa.Contrib.StackSdks.Auth/EnvironmentMiddleware.cs => Masa.Contrib.StackSdks.Isolation/EnvironmentCallerMiddleware.cs} (79%) rename src/Contrib/StackSdks/{Masa.Contrib.StackSdks.Auth/Model => Masa.Contrib.StackSdks.Isolation}/EnvironmentModel.cs (84%) diff --git a/src/BuildingBlocks/StackSdks/Auth/Masa.BuildingBlocks.StackSdks.Auth.Contracts/Masa.BuildingBlocks.StackSdks.Auth.Contracts.csproj b/src/BuildingBlocks/StackSdks/Auth/Masa.BuildingBlocks.StackSdks.Auth.Contracts/Masa.BuildingBlocks.StackSdks.Auth.Contracts.csproj index 09b34205e..eb726d334 100644 --- a/src/BuildingBlocks/StackSdks/Auth/Masa.BuildingBlocks.StackSdks.Auth.Contracts/Masa.BuildingBlocks.StackSdks.Auth.Contracts.csproj +++ b/src/BuildingBlocks/StackSdks/Auth/Masa.BuildingBlocks.StackSdks.Auth.Contracts/Masa.BuildingBlocks.StackSdks.Auth.Contracts.csproj @@ -9,6 +9,7 @@ + diff --git a/src/BuildingBlocks/StackSdks/Auth/Masa.BuildingBlocks.StackSdks.Auth.Contracts/_Imports.cs b/src/BuildingBlocks/StackSdks/Auth/Masa.BuildingBlocks.StackSdks.Auth.Contracts/_Imports.cs index 931121baa..2230b76fe 100644 --- a/src/BuildingBlocks/StackSdks/Auth/Masa.BuildingBlocks.StackSdks.Auth.Contracts/_Imports.cs +++ b/src/BuildingBlocks/StackSdks/Auth/Masa.BuildingBlocks.StackSdks.Auth.Contracts/_Imports.cs @@ -3,4 +3,5 @@ global using Masa.BuildingBlocks.Authentication.Identity; global using Masa.BuildingBlocks.StackSdks.Auth.Contracts.Enum; +global using Masa.BuildingBlocks.StackSdks.Isolation.Models; global using System.ComponentModel; diff --git a/src/BuildingBlocks/StackSdks/Auth/Masa.BuildingBlocks.StackSdks.Auth.Contracts/Model/IEnvironmentModel.cs b/src/BuildingBlocks/StackSdks/Masa.BuildingBlocks.StackSdks.Isolation/Models/IEnvironmentModel.cs similarity index 78% rename from src/BuildingBlocks/StackSdks/Auth/Masa.BuildingBlocks.StackSdks.Auth.Contracts/Model/IEnvironmentModel.cs rename to src/BuildingBlocks/StackSdks/Masa.BuildingBlocks.StackSdks.Isolation/Models/IEnvironmentModel.cs index b61b3f093..5ec7b569f 100644 --- a/src/BuildingBlocks/StackSdks/Auth/Masa.BuildingBlocks.StackSdks.Auth.Contracts/Model/IEnvironmentModel.cs +++ b/src/BuildingBlocks/StackSdks/Masa.BuildingBlocks.StackSdks.Isolation/Models/IEnvironmentModel.cs @@ -1,9 +1,10 @@ // Copyright (c) MASA Stack All rights reserved. // Licensed under the MIT License. See LICENSE.txt in the project root for license information. -namespace Masa.BuildingBlocks.StackSdks.Auth.Contracts.Model; +namespace Masa.BuildingBlocks.StackSdks.Isolation.Models; public interface IEnvironmentModel { public string Environment { get; set; } } + diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Alert/Masa.Contrib.StackSdks.Alert.csproj b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Alert/Masa.Contrib.StackSdks.Alert.csproj index 7766ec43c..c4c7048fd 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Alert/Masa.Contrib.StackSdks.Alert.csproj +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Alert/Masa.Contrib.StackSdks.Alert.csproj @@ -10,6 +10,7 @@ + diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Alert/ServiceCollectionExtensions.cs b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Alert/ServiceCollectionExtensions.cs index 06b5f2b05..abc359a3f 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Alert/ServiceCollectionExtensions.cs +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Alert/ServiceCollectionExtensions.cs @@ -14,7 +14,9 @@ public static IServiceCollection AddAlertClient(this IServiceCollection services callerBuilder.UseHttpClient(builder => { builder.Configure = opt => opt.BaseAddress = new Uri(alertServiceBaseAddress); - }).UseAuthentication(); + }) + .AddMiddleware() + .UseAuthentication(); }); } @@ -28,7 +30,9 @@ public static IServiceCollection AddAlertClient(this IServiceCollection services .UseHttpClient(builder => { builder.BaseAddress = alertServiceBaseAddressFunc.Invoke(); - }).UseAuthentication(); + }) + .AddMiddleware() + .UseAuthentication(); }); } diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Alert/_Imports.cs b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Alert/_Imports.cs index fa1d0bec7..c134a0b7b 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Alert/_Imports.cs +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Alert/_Imports.cs @@ -8,9 +8,5 @@ global using Masa.BuildingBlocks.StackSdks.Alert.Service; global using Masa.Contrib.StackSdks.Alert; global using Masa.Contrib.StackSdks.Alert.Service; -global using System.Collections.Concurrent; -global using System.ComponentModel; -global using System.Diagnostics.CodeAnalysis; -global using System.Globalization; -global using System.Reflection; +global using Masa.Contrib.StackSdks.Isolation; global using static Masa.Contrib.StackSdks.Alert.Constants; diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Auth/Masa.Contrib.StackSdks.Auth.csproj b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Auth/Masa.Contrib.StackSdks.Auth.csproj index ea95fff60..231af0041 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Auth/Masa.Contrib.StackSdks.Auth.csproj +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Auth/Masa.Contrib.StackSdks.Auth.csproj @@ -22,6 +22,7 @@ + diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Auth/ServiceCollectionExtensions.cs b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Auth/ServiceCollectionExtensions.cs index 0fda17c98..a8f555ecd 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Auth/ServiceCollectionExtensions.cs +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Auth/ServiceCollectionExtensions.cs @@ -26,7 +26,7 @@ public static IServiceCollection AddAuthClient(this IServiceCollection services, { callerBuilder .UseHttpClient(builder => builder.BaseAddress = authServiceBaseAddress) - .AddMiddleware() + .AddMiddleware() .UseAuthentication(); }, redisOptions); } diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Auth/_Imports.cs b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Auth/_Imports.cs index 5c433a247..37bea4e45 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Auth/_Imports.cs +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Auth/_Imports.cs @@ -17,6 +17,7 @@ global using Masa.Contrib.StackSdks.Auth; global using Masa.Contrib.StackSdks.Auth.Model; global using Masa.Contrib.StackSdks.Auth.Service; +global using Masa.Contrib.StackSdks.Isolation; global using Microsoft.Extensions.Configuration; global using Microsoft.Extensions.Logging; global using System.Text.Json; diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Auth/EnvironmentMiddleware.cs b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Isolation/EnvironmentCallerMiddleware.cs similarity index 79% rename from src/Contrib/StackSdks/Masa.Contrib.StackSdks.Auth/EnvironmentMiddleware.cs rename to src/Contrib/StackSdks/Masa.Contrib.StackSdks.Isolation/EnvironmentCallerMiddleware.cs index 878861ea0..64f42d040 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Auth/EnvironmentMiddleware.cs +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Isolation/EnvironmentCallerMiddleware.cs @@ -1,15 +1,15 @@ // Copyright (c) MASA Stack All rights reserved. // Licensed under the MIT License. See LICENSE.txt in the project root for license information. -namespace Masa.Contrib.StackSdks.Auth; +namespace Masa.Contrib.StackSdks.Isolation; -public class EnvironmentMiddleware : ICallerMiddleware +public class EnvironmentCallerMiddleware : ICallerMiddleware { - readonly ILogger? _logger; + readonly ILogger? _logger; - public EnvironmentMiddleware(ILoggerFactory? loggerFactory = null) + public EnvironmentCallerMiddleware(ILoggerFactory? loggerFactory = null) { - _logger = loggerFactory?.CreateLogger(); + _logger = loggerFactory?.CreateLogger(); } public async Task HandleAsync(MasaHttpContext masaHttpContext, CallerHandlerDelegate next, CancellationToken cancellationToken = default) @@ -40,3 +40,4 @@ public async Task HandleAsync(MasaHttpContext masaHttpContext, CallerHandlerDele } } } + diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Auth/Model/EnvironmentModel.cs b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Isolation/EnvironmentModel.cs similarity index 84% rename from src/Contrib/StackSdks/Masa.Contrib.StackSdks.Auth/Model/EnvironmentModel.cs rename to src/Contrib/StackSdks/Masa.Contrib.StackSdks.Isolation/EnvironmentModel.cs index 7be83bc54..2b4b3b48e 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Auth/Model/EnvironmentModel.cs +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Isolation/EnvironmentModel.cs @@ -1,7 +1,7 @@ // Copyright (c) MASA Stack All rights reserved. // Licensed under the MIT License. See LICENSE.txt in the project root for license information. -namespace Masa.Contrib.StackSdks.Auth.Model; +namespace Masa.Contrib.StackSdks.Isolation; internal class EnvironmentModel : IEnvironmentModel { diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Isolation/_Imports.cs b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Isolation/_Imports.cs index 3d131a0fd..d35acc303 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Isolation/_Imports.cs +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Isolation/_Imports.cs @@ -7,6 +7,7 @@ global using Masa.BuildingBlocks.Configuration.Options; global using Masa.BuildingBlocks.Data; global using Masa.BuildingBlocks.Isolation; +global using Masa.BuildingBlocks.Service.Caller; global using Masa.BuildingBlocks.StackSdks.Config; global using Masa.BuildingBlocks.StackSdks.Config.Models; global using Masa.BuildingBlocks.StackSdks.Isolation; diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Mc/Masa.Contrib.StackSdks.Mc.csproj b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Mc/Masa.Contrib.StackSdks.Mc.csproj index 5308f134e..e4c756c9c 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Mc/Masa.Contrib.StackSdks.Mc.csproj +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Mc/Masa.Contrib.StackSdks.Mc.csproj @@ -14,6 +14,7 @@ + diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Mc/ServiceCollectionExtensions.cs b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Mc/ServiceCollectionExtensions.cs index a3407f9e4..2a1de0300 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Mc/ServiceCollectionExtensions.cs +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Mc/ServiceCollectionExtensions.cs @@ -16,7 +16,9 @@ public static IServiceCollection AddMcClient(this IServiceCollection services, s callerBuilder.UseHttpClient(builder => { builder.Configure = opt => opt.BaseAddress = new Uri(mcServiceBaseAddress); - }).UseAuthentication(); + }) + .AddMiddleware() + .UseAuthentication(); }); } @@ -30,7 +32,9 @@ public static IServiceCollection AddMcClient(this IServiceCollection services, F .UseHttpClient(builder => { builder.BaseAddress = mcServiceBaseAddressFunc.Invoke(); - }).UseAuthentication(); + }) + .AddMiddleware() + .UseAuthentication(); }); } diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Mc/_Imports.cs b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Mc/_Imports.cs index 9e697ce6a..be9b80040 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Mc/_Imports.cs +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Mc/_Imports.cs @@ -9,6 +9,7 @@ global using Masa.Contrib.StackSdks.Mc; global using Masa.Contrib.StackSdks.Mc.Infrastructure.Helper; global using Masa.Contrib.StackSdks.Mc.Service; +global using Masa.Contrib.StackSdks.Isolation; global using System.Collections.Concurrent; global using System.ComponentModel; global using System.Diagnostics.CodeAnalysis; diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Scheduler/Masa.Contrib.StackSdks.Scheduler.csproj b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Scheduler/Masa.Contrib.StackSdks.Scheduler.csproj index 13add0323..8e25e7f5d 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Scheduler/Masa.Contrib.StackSdks.Scheduler.csproj +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Scheduler/Masa.Contrib.StackSdks.Scheduler.csproj @@ -15,6 +15,7 @@ + diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Scheduler/ServiceCollectionExtensions.cs b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Scheduler/ServiceCollectionExtensions.cs index 2a62456cc..eb2c66ad5 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Scheduler/ServiceCollectionExtensions.cs +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Scheduler/ServiceCollectionExtensions.cs @@ -20,7 +20,9 @@ public static IServiceCollection AddSchedulerClient(this IServiceCollection serv .UseHttpClient(builder => { builder.Configure = opt => opt.BaseAddress = new Uri(schedulerServiceBaseAddress); - }).UseAuthentication(); + }) + .AddMiddleware() + .UseAuthentication(); }); } diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Scheduler/_Imports.cs b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Scheduler/_Imports.cs index 0a9afa20a..10739e795 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Scheduler/_Imports.cs +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Scheduler/_Imports.cs @@ -8,6 +8,7 @@ global using Masa.BuildingBlocks.StackSdks.Scheduler.Model; global using Masa.BuildingBlocks.StackSdks.Scheduler.Request; global using Masa.BuildingBlocks.StackSdks.Scheduler.Service; +global using Masa.Contrib.StackSdks.Isolation; global using Masa.Contrib.StackSdks.Scheduler; global using Masa.Contrib.StackSdks.Scheduler.Logger; global using Masa.Contrib.StackSdks.Scheduler.Services; @@ -17,4 +18,4 @@ global using Microsoft.Extensions.DependencyInjection; global using Microsoft.Extensions.Logging; global using static Masa.Contrib.StackSdks.Scheduler.Constants; -global using IAuthenticationService = Masa.BuildingBlocks.Service.Caller.IAuthenticationService; + From e7b4af64207cc74fed97dc2d5e9431a58d2024aa Mon Sep 17 00:00:00 2001 From: wzh425 Date: Wed, 12 Jul 2023 14:39:07 +0800 Subject: [PATCH 2/6] fix : Add Environment to Stack SDK Request Header --- .../AuthenticationService.cs | 8 +++++++- .../MasaCallerClientBuilderExtensions.cs | 3 ++- .../StackHttpClientCaller.cs | 3 ++- .../StackSdks/Masa.Contrib.StackSdks.Caller/_Imports.cs | 1 + 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/AuthenticationService.cs b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/AuthenticationService.cs index 540d7915b..61c7adb7c 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/AuthenticationService.cs +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/AuthenticationService.cs @@ -7,12 +7,15 @@ public class AuthenticationService : IAuthenticationService { private readonly TokenProvider _tokenProvider; private readonly JwtTokenValidator? _jwtTokenValidator; + private readonly IMultiEnvironmentContext _multiEnvironmentContext; public AuthenticationService(TokenProvider tokenProvider, - JwtTokenValidator? jwtTokenValidator) + JwtTokenValidator? jwtTokenValidator, + IMultiEnvironmentContext multiEnvironmentContext) { _tokenProvider = tokenProvider; _jwtTokenValidator = jwtTokenValidator; + _multiEnvironmentContext = multiEnvironmentContext; } public async Task ExecuteAsync(HttpRequestMessage requestMessage) @@ -24,5 +27,8 @@ public async Task ExecuteAsync(HttpRequestMessage requestMessage) if (!_tokenProvider.AccessToken.IsNullOrWhiteSpace()) requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Bearer", _tokenProvider.AccessToken); + + if (!string.IsNullOrEmpty(_multiEnvironmentContext.CurrentEnvironment)) + requestMessage.Headers.Add("Environment", _multiEnvironmentContext.CurrentEnvironment); } } diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/MasaCallerClientBuilderExtensions.cs b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/MasaCallerClientBuilderExtensions.cs index daf79ec1b..53a3bab29 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/MasaCallerClientBuilderExtensions.cs +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/MasaCallerClientBuilderExtensions.cs @@ -20,7 +20,8 @@ public static IMasaCallerClientBuilder UseAuthentication( masaCallerClientBuilder.UseAuthentication(serviceProvider => new AuthenticationService( serviceProvider.GetRequiredService(), - null + null, + serviceProvider.GetRequiredService() )); return masaCallerClientBuilder; } diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/StackHttpClientCaller.cs b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/StackHttpClientCaller.cs index b03c8c8e8..08e539c26 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/StackHttpClientCaller.cs +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/StackHttpClientCaller.cs @@ -9,7 +9,8 @@ protected override void UseHttpClientPost(MasaHttpClientBuilder masaHttpClientBu { masaHttpClientBuilder.UseAuthentication(serviceProvider => new AuthenticationService( serviceProvider.GetRequiredService(), - serviceProvider.GetRequiredService() + serviceProvider.GetRequiredService(), + serviceProvider.GetRequiredService() )); base.UseHttpClientPost(masaHttpClientBuilder); } diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/_Imports.cs b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/_Imports.cs index 718d4f9e6..f38870e5b 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/_Imports.cs +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/_Imports.cs @@ -4,6 +4,7 @@ global using IdentityModel; global using IdentityModel.Client; global using Masa.BuildingBlocks.Service.Caller; +global using Masa.BuildingBlocks.Isolation; global using Masa.Contrib.Service.Caller.HttpClient; global using Masa.Contrib.StackSdks.Caller; global using Microsoft.AspNetCore.Http; From 0e1ee2b1c0f13c2a9519a2b95ee84bcb725efd5a Mon Sep 17 00:00:00 2001 From: wzh425 Date: Wed, 12 Jul 2023 14:44:13 +0800 Subject: [PATCH 3/6] chore : Remove EnvironmentCallerMiddleware --- .../Masa.Contrib.StackSdks.Alert/ServiceCollectionExtensions.cs | 2 -- .../Masa.Contrib.StackSdks.Mc/ServiceCollectionExtensions.cs | 2 -- .../ServiceCollectionExtensions.cs | 1 - 3 files changed, 5 deletions(-) diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Alert/ServiceCollectionExtensions.cs b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Alert/ServiceCollectionExtensions.cs index abc359a3f..2630dedf0 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Alert/ServiceCollectionExtensions.cs +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Alert/ServiceCollectionExtensions.cs @@ -15,7 +15,6 @@ public static IServiceCollection AddAlertClient(this IServiceCollection services { builder.Configure = opt => opt.BaseAddress = new Uri(alertServiceBaseAddress); }) - .AddMiddleware() .UseAuthentication(); }); } @@ -31,7 +30,6 @@ public static IServiceCollection AddAlertClient(this IServiceCollection services { builder.BaseAddress = alertServiceBaseAddressFunc.Invoke(); }) - .AddMiddleware() .UseAuthentication(); }); } diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Mc/ServiceCollectionExtensions.cs b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Mc/ServiceCollectionExtensions.cs index 2a1de0300..94e6887a1 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Mc/ServiceCollectionExtensions.cs +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Mc/ServiceCollectionExtensions.cs @@ -17,7 +17,6 @@ public static IServiceCollection AddMcClient(this IServiceCollection services, s { builder.Configure = opt => opt.BaseAddress = new Uri(mcServiceBaseAddress); }) - .AddMiddleware() .UseAuthentication(); }); } @@ -33,7 +32,6 @@ public static IServiceCollection AddMcClient(this IServiceCollection services, F { builder.BaseAddress = mcServiceBaseAddressFunc.Invoke(); }) - .AddMiddleware() .UseAuthentication(); }); } diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Scheduler/ServiceCollectionExtensions.cs b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Scheduler/ServiceCollectionExtensions.cs index eb2c66ad5..5c40b9924 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Scheduler/ServiceCollectionExtensions.cs +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Scheduler/ServiceCollectionExtensions.cs @@ -21,7 +21,6 @@ public static IServiceCollection AddSchedulerClient(this IServiceCollection serv { builder.Configure = opt => opt.BaseAddress = new Uri(schedulerServiceBaseAddress); }) - .AddMiddleware() .UseAuthentication(); }); } From 9b55c3b3c7a697979934f6a749ac8c0ff8c71393 Mon Sep 17 00:00:00 2001 From: wzh425 Date: Wed, 12 Jul 2023 15:03:36 +0800 Subject: [PATCH 4/6] reactor : Add a request header to determine if there is an environment present --- .../Masa.Contrib.StackSdks.Caller/AuthenticationService.cs | 6 ++++-- .../Masa.Contrib.StackSdks.Caller.csproj | 1 + .../EnvironmentCallerMiddleware.cs | 3 +-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/AuthenticationService.cs b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/AuthenticationService.cs index 61c7adb7c..f3a8c9066 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/AuthenticationService.cs +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/AuthenticationService.cs @@ -1,6 +1,8 @@ // Copyright (c) MASA Stack All rights reserved. // Licensed under the MIT License. See LICENSE.txt in the project root for license information. +using Masa.BuildingBlocks.StackSdks.Isolation; + namespace Masa.Contrib.StackSdks.Caller; public class AuthenticationService : IAuthenticationService @@ -28,7 +30,7 @@ public async Task ExecuteAsync(HttpRequestMessage requestMessage) if (!_tokenProvider.AccessToken.IsNullOrWhiteSpace()) requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Bearer", _tokenProvider.AccessToken); - if (!string.IsNullOrEmpty(_multiEnvironmentContext.CurrentEnvironment)) - requestMessage.Headers.Add("Environment", _multiEnvironmentContext.CurrentEnvironment); + if (!string.IsNullOrEmpty(_multiEnvironmentContext.CurrentEnvironment) && !requestMessage.Headers.Any(x=>x.Key == IsolationConsts.ENVIRONMENT)) + requestMessage.Headers.Add(IsolationConsts.ENVIRONMENT, _multiEnvironmentContext.CurrentEnvironment); } } diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/Masa.Contrib.StackSdks.Caller.csproj b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/Masa.Contrib.StackSdks.Caller.csproj index 59b6ed67e..a578f9aa8 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/Masa.Contrib.StackSdks.Caller.csproj +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/Masa.Contrib.StackSdks.Caller.csproj @@ -14,6 +14,7 @@ + diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Isolation/EnvironmentCallerMiddleware.cs b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Isolation/EnvironmentCallerMiddleware.cs index 64f42d040..4bf3b065f 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Isolation/EnvironmentCallerMiddleware.cs +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Isolation/EnvironmentCallerMiddleware.cs @@ -14,7 +14,6 @@ public EnvironmentCallerMiddleware(ILoggerFactory? loggerFactory = null) public async Task HandleAsync(MasaHttpContext masaHttpContext, CallerHandlerDelegate next, CancellationToken cancellationToken = default) { - try { if (masaHttpContext.RequestMessage.Content != null && masaHttpContext.RequestMessage.Content.Headers.ContentType?.MediaType == "application/json") @@ -24,7 +23,7 @@ public async Task HandleAsync(MasaHttpContext masaHttpContext, CallerHandlerDele { PropertyNameCaseInsensitive = true }); - if (!string.IsNullOrEmpty(obj?.Environment)) + if (!string.IsNullOrEmpty(obj?.Environment) && !masaHttpContext.RequestMessage.Headers.Any(x => x.Key == IsolationConsts.ENVIRONMENT)) { masaHttpContext.RequestMessage.Headers.Add(IsolationConsts.ENVIRONMENT, obj?.Environment); } From 5293e8b7bbfefe8c0f97da52078108989e4e3946 Mon Sep 17 00:00:00 2001 From: wzh425 Date: Wed, 12 Jul 2023 15:06:35 +0800 Subject: [PATCH 5/6] chore : global using --- .../Masa.Contrib.StackSdks.Caller/AuthenticationService.cs | 2 -- src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/_Imports.cs | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/AuthenticationService.cs b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/AuthenticationService.cs index f3a8c9066..343e6cc33 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/AuthenticationService.cs +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/AuthenticationService.cs @@ -1,8 +1,6 @@ // Copyright (c) MASA Stack All rights reserved. // Licensed under the MIT License. See LICENSE.txt in the project root for license information. -using Masa.BuildingBlocks.StackSdks.Isolation; - namespace Masa.Contrib.StackSdks.Caller; public class AuthenticationService : IAuthenticationService diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/_Imports.cs b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/_Imports.cs index f38870e5b..4a8844cdb 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/_Imports.cs +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/_Imports.cs @@ -4,6 +4,7 @@ global using IdentityModel; global using IdentityModel.Client; global using Masa.BuildingBlocks.Service.Caller; +global using Masa.BuildingBlocks.StackSdks.Isolation; global using Masa.BuildingBlocks.Isolation; global using Masa.Contrib.Service.Caller.HttpClient; global using Masa.Contrib.StackSdks.Caller; @@ -19,4 +20,3 @@ global using System.Reflection; global using System.Security.Claims; global using System.Security.Cryptography; - From 4e5278675faca9ed64e2cd7fc9c070f2dbc070f8 Mon Sep 17 00:00:00 2001 From: wzh425 Date: Wed, 12 Jul 2023 15:37:36 +0800 Subject: [PATCH 6/6] fix : Repair unit test failure --- .../Masa.Contrib.StackSdks.Caller.csproj | 1 + .../MasaCallerClientBuilderExtensions.cs | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/Masa.Contrib.StackSdks.Caller.csproj b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/Masa.Contrib.StackSdks.Caller.csproj index a578f9aa8..6cab1ddbe 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/Masa.Contrib.StackSdks.Caller.csproj +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/Masa.Contrib.StackSdks.Caller.csproj @@ -15,6 +15,7 @@ + diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/MasaCallerClientBuilderExtensions.cs b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/MasaCallerClientBuilderExtensions.cs index 53a3bab29..818a5c4e1 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/MasaCallerClientBuilderExtensions.cs +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Caller/MasaCallerClientBuilderExtensions.cs @@ -1,6 +1,9 @@ // Copyright (c) MASA Stack All rights reserved. // Licensed under the MIT License. See LICENSE.txt in the project root for license information. +using Masa.BuildingBlocks.Isolation; +using Masa.Contrib.Isolation.MultiEnvironment; + namespace Microsoft.Extensions.DependencyInjection; public static class MasaCallerClientBuilderExtensions @@ -17,6 +20,8 @@ public static IMasaCallerClientBuilder UseAuthentication( masaCallerClientBuilder.Services.AddHttpContextAccessor(); masaCallerClientBuilder.Services.TryAddScoped(); masaCallerClientBuilder.Services.TryAddScoped(s => s.GetRequiredService().Generater()); + masaCallerClientBuilder.Services.TryAddScoped(); + masaCallerClientBuilder.Services.TryAddScoped(typeof(IMultiEnvironmentContext), s => s.GetRequiredService()); masaCallerClientBuilder.UseAuthentication(serviceProvider => new AuthenticationService( serviceProvider.GetRequiredService(),