From 655e4d1538d1e25b3907e097fc9dbff8c5cb7aa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 15 Sep 2022 09:14:38 +0300 Subject: [PATCH] Introduce AbpDaprOptions.AppApiToken Also set defaults from environment variables. --- .../Volo/Abp/Dapr/AbpDaprClientFactory.cs | 4 +- .../Volo/Abp/Dapr/AbpDaprModule.cs | 47 ++++++++++++++++++- .../Volo/Abp/Dapr/AbpDaprOptions.cs | 2 + .../Volo/Abp/Dapr/DaprApiTokenProvider.cs | 9 +++- .../Volo/Abp/Dapr/IDaprApiTokenProvider.cs | 3 +- 5 files changed, 58 insertions(+), 7 deletions(-) diff --git a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprClientFactory.cs b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprClientFactory.cs index 255ff1b517..ad284ce156 100644 --- a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprClientFactory.cs +++ b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprClientFactory.cs @@ -37,7 +37,7 @@ public class AbpDaprClientFactory : IAbpDaprClientFactory, ISingletonDependency builder.UseGrpcEndpoint(DaprOptions.GrpcEndpoint); } - var apiToken = DaprApiTokenProvider.Get(); + var apiToken = DaprApiTokenProvider.GetDaprApiToken(); if (!apiToken.IsNullOrWhiteSpace()) { builder.UseDaprApiToken(apiToken); @@ -62,7 +62,7 @@ public class AbpDaprClientFactory : IAbpDaprClientFactory, ISingletonDependency return DaprClient.CreateInvokeHttpClient( appId, daprEndpoint, - daprApiToken ?? DaprApiTokenProvider.Get() + daprApiToken ?? DaprApiTokenProvider.GetDaprApiToken() ); } diff --git a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprModule.cs b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprModule.cs index f4210ea104..276e96895d 100644 --- a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprModule.cs +++ b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprModule.cs @@ -1,4 +1,5 @@ -using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Volo.Abp.Json; using Volo.Abp.Modularity; @@ -11,7 +12,8 @@ public class AbpDaprModule : AbpModule public override void ConfigureServices(ServiceConfigurationContext context) { var configuration = context.Services.GetConfiguration(); - Configure(configuration.GetSection("Dapr")); + + ConfigureDaprOptions(configuration); context.Services.TryAddSingleton( serviceProvider => serviceProvider @@ -19,4 +21,45 @@ public class AbpDaprModule : AbpModule .Create() ); } + + private void ConfigureDaprOptions(IConfiguration configuration) + { + Configure(configuration.GetSection("Dapr")); + Configure(options => + { + if (options.DaprApiToken.IsNullOrWhiteSpace()) + { + var confEnv = configuration["DAPR_API_TOKEN"]; + if (!confEnv.IsNullOrWhiteSpace()) + { + options.DaprApiToken = confEnv; + } + else + { + var env = Environment.GetEnvironmentVariable("DAPR_API_TOKEN"); + if (!env.IsNullOrWhiteSpace()) + { + options.DaprApiToken = env; + } + } + } + + if (options.AppApiToken.IsNullOrWhiteSpace()) + { + var confEnv = configuration["APP_API_TOKEN"]; + if (!confEnv.IsNullOrWhiteSpace()) + { + options.AppApiToken = confEnv; + } + else + { + var env = Environment.GetEnvironmentVariable("APP_API_TOKEN"); + if (!env.IsNullOrWhiteSpace()) + { + options.AppApiToken = env; + } + } + } + }); + } } diff --git a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprOptions.cs b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprOptions.cs index 1453c0aac0..7ac19ad31c 100644 --- a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprOptions.cs +++ b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprOptions.cs @@ -7,4 +7,6 @@ public class AbpDaprOptions public string GrpcEndpoint { get; set; } public string DaprApiToken { get; set; } + + public string AppApiToken { get; set; } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/DaprApiTokenProvider.cs b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/DaprApiTokenProvider.cs index 88f53da220..326d446675 100644 --- a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/DaprApiTokenProvider.cs +++ b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/DaprApiTokenProvider.cs @@ -5,15 +5,20 @@ namespace Volo.Abp.Dapr; public class DaprApiTokenProvider : IDaprApiTokenProvider, ISingletonDependency { - public AbpDaprOptions Options { get; } + protected AbpDaprOptions Options { get; } public DaprApiTokenProvider(IOptions options) { Options = options.Value; } - public virtual string Get() + public virtual string GetDaprApiToken() { return Options.DaprApiToken; } + + public virtual string GetAppApiToken() + { + return Options.AppApiToken; + } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IDaprApiTokenProvider.cs b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IDaprApiTokenProvider.cs index f08e5d4853..260b0ea709 100644 --- a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IDaprApiTokenProvider.cs +++ b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IDaprApiTokenProvider.cs @@ -2,5 +2,6 @@ namespace Volo.Abp.Dapr; public interface IDaprApiTokenProvider { - string Get(); + string GetDaprApiToken(); + string GetAppApiToken(); } \ No newline at end of file