diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus/Volo/Abp/AspNetCore/Mvc/Dapr/EventBus/Controllers/AbpAspNetCoreMvcDaprEventsController.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus/Volo/Abp/AspNetCore/Mvc/Dapr/EventBus/Controllers/AbpAspNetCoreMvcDaprEventsController.cs index fdfad1d722..cb4461dd9c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus/Volo/Abp/AspNetCore/Mvc/Dapr/EventBus/Controllers/AbpAspNetCoreMvcDaprEventsController.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus/Volo/Abp/AspNetCore/Mvc/Dapr/EventBus/Controllers/AbpAspNetCoreMvcDaprEventsController.cs @@ -18,7 +18,7 @@ public class AbpAspNetCoreMvcDaprEventsController : AbpController [HttpPost(AbpAspNetCoreMvcDaprPubSubConsts.DaprEventCallbackUrl)] public virtual async Task EventAsync() { - await HttpContext.ValidateDaprAppApiTokenAsync(); + HttpContext.ValidateDaprAppApiToken(); var daprSerializer = HttpContext.RequestServices.GetRequiredService(); var request = (await JsonDocument.ParseAsync(HttpContext.Request.Body)).Deserialize>(CreateJsonSerializerOptions(daprSerializer)); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr/Volo/Abp/AspNetCore/Mvc/Dapr/DaprAppApiTokenValidator.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr/Volo/Abp/AspNetCore/Mvc/Dapr/DaprAppApiTokenValidator.cs index 90432ebe53..dd0c6a5300 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr/Volo/Abp/AspNetCore/Mvc/Dapr/DaprAppApiTokenValidator.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr/Volo/Abp/AspNetCore/Mvc/Dapr/DaprAppApiTokenValidator.cs @@ -18,15 +18,15 @@ public class DaprAppApiTokenValidator : IDaprAppApiTokenValidator, ISingletonDep HttpContextAccessor = httpContextAccessor; } - public virtual async Task CheckDaprAppApiTokenAsync() + public virtual void CheckDaprAppApiToken() { - var expectedAppApiToken = await GetConfiguredAppApiTokenOrNullAsync(); + var expectedAppApiToken = GetConfiguredAppApiTokenOrNull(); if (expectedAppApiToken.IsNullOrWhiteSpace()) { return; } - var headerAppApiToken = await GetDaprAppApiTokenOrNullAsync(); + var headerAppApiToken = GetDaprAppApiTokenOrNull(); if (headerAppApiToken.IsNullOrWhiteSpace()) { throw new AbpAuthorizationException("Expected Dapr App API Token is not provided! Dapr should set the 'dapr-api-token' HTTP header."); @@ -38,35 +38,35 @@ public class DaprAppApiTokenValidator : IDaprAppApiTokenValidator, ISingletonDep } } - public virtual async Task IsValidDaprAppApiTokenAsync() + public virtual bool IsValidDaprAppApiToken() { - var expectedAppApiToken = await GetConfiguredAppApiTokenOrNullAsync(); + var expectedAppApiToken = GetConfiguredAppApiTokenOrNull(); if (expectedAppApiToken.IsNullOrWhiteSpace()) { return true; } - var headerAppApiToken = await GetDaprAppApiTokenOrNullAsync(); + var headerAppApiToken = GetDaprAppApiTokenOrNull(); return expectedAppApiToken == headerAppApiToken; } - public virtual Task GetDaprAppApiTokenOrNullAsync() + public virtual string GetDaprAppApiTokenOrNull() { string apiTokenHeader = HttpContext.Request.Headers["dapr-api-token"]; if (string.IsNullOrEmpty(apiTokenHeader) || apiTokenHeader.Length < 1) { - return Task.FromResult(null); + return null; } - return Task.FromResult(apiTokenHeader); + return apiTokenHeader; } - protected virtual async Task GetConfiguredAppApiTokenOrNullAsync() + protected virtual string GetConfiguredAppApiTokenOrNull() { - return await HttpContext + return HttpContext .RequestServices .GetRequiredService() - .GetAppApiTokenAsync(); + .GetAppApiToken(); } protected virtual HttpContext GetHttpContext() diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr/Volo/Abp/AspNetCore/Mvc/Dapr/DaprHttpContextExtensions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr/Volo/Abp/AspNetCore/Mvc/Dapr/DaprHttpContextExtensions.cs index e221af3f4d..aa81765b12 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr/Volo/Abp/AspNetCore/Mvc/Dapr/DaprHttpContextExtensions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr/Volo/Abp/AspNetCore/Mvc/Dapr/DaprHttpContextExtensions.cs @@ -6,27 +6,27 @@ namespace Volo.Abp.AspNetCore.Mvc.Dapr; public static class DaprHttpContextExtensions { - public static async Task ValidateDaprAppApiTokenAsync(this HttpContext httpContext) + public static void ValidateDaprAppApiToken(this HttpContext httpContext) { - await httpContext + httpContext .RequestServices .GetRequiredService() - .CheckDaprAppApiTokenAsync(); + .CheckDaprAppApiToken(); } - public static async Task IsValidDaprAppApiTokenAsync(this HttpContext httpContext) + public static bool IsValidDaprAppApiToken(this HttpContext httpContext) { - return await httpContext + return httpContext .RequestServices .GetRequiredService() - .IsValidDaprAppApiTokenAsync(); + .IsValidDaprAppApiToken(); } - public static async Task GetDaprAppApiTokenOrNullAsync(HttpContext httpContext) + public static string GetDaprAppApiTokenOrNull(HttpContext httpContext) { - return await httpContext + return httpContext .RequestServices .GetRequiredService() - .GetDaprAppApiTokenOrNullAsync(); + .GetDaprAppApiTokenOrNull(); } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr/Volo/Abp/AspNetCore/Mvc/Dapr/IDaprAppApiTokenValidator.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr/Volo/Abp/AspNetCore/Mvc/Dapr/IDaprAppApiTokenValidator.cs index 40ed6035cc..66fd833b77 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr/Volo/Abp/AspNetCore/Mvc/Dapr/IDaprAppApiTokenValidator.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr/Volo/Abp/AspNetCore/Mvc/Dapr/IDaprAppApiTokenValidator.cs @@ -1,12 +1,10 @@ -using System.Threading.Tasks; - namespace Volo.Abp.AspNetCore.Mvc.Dapr; public interface IDaprAppApiTokenValidator { - Task CheckDaprAppApiTokenAsync(); + void CheckDaprAppApiToken(); - Task IsValidDaprAppApiTokenAsync(); + bool IsValidDaprAppApiToken(); - Task GetDaprAppApiTokenOrNullAsync(); + string GetDaprAppApiTokenOrNull(); } 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 a2f5069214..aa14bbe7f2 100644 --- a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprClientFactory.cs +++ b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprClientFactory.cs @@ -1,7 +1,6 @@ using System; using System.Net.Http; using System.Text.Json; -using System.Threading.Tasks; using Dapr.Client; using Microsoft.Extensions.Options; using Volo.Abp.DependencyInjection; @@ -25,7 +24,7 @@ public class AbpDaprClientFactory : IAbpDaprClientFactory, ISingletonDependency JsonSerializerOptions = CreateJsonSerializerOptions(systemTextJsonSerializerOptions.Value); } - public virtual async Task CreateAsync(Action builderAction = null) + public virtual DaprClient Create(Action builderAction = null) { var builder = new DaprClientBuilder() .UseJsonSerializationOptions(JsonSerializerOptions); @@ -40,7 +39,7 @@ public class AbpDaprClientFactory : IAbpDaprClientFactory, ISingletonDependency builder.UseGrpcEndpoint(DaprOptions.GrpcEndpoint); } - var apiToken = await DaprApiTokenProvider.GetDaprApiTokenAsync(); + var apiToken = DaprApiTokenProvider.GetDaprApiToken(); if (!apiToken.IsNullOrWhiteSpace()) { builder.UseDaprApiToken(apiToken); @@ -51,7 +50,7 @@ public class AbpDaprClientFactory : IAbpDaprClientFactory, ISingletonDependency return builder.Build(); } - public virtual async Task CreateHttpClientAsync( + public virtual HttpClient CreateHttpClient( string appId = null, string daprEndpoint = null, string daprApiToken = null) @@ -65,7 +64,7 @@ public class AbpDaprClientFactory : IAbpDaprClientFactory, ISingletonDependency return DaprClient.CreateInvokeHttpClient( appId, daprEndpoint, - daprApiToken ?? await DaprApiTokenProvider.GetDaprApiTokenAsync() + 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 0434332785..4153ae2ec1 100644 --- a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprModule.cs +++ b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprModule.cs @@ -1,6 +1,4 @@ using System; -using System.Threading.Tasks; -using Dapr.Client; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; @@ -17,6 +15,12 @@ public class AbpDaprModule : AbpModule var configuration = context.Services.GetConfiguration(); ConfigureDaprOptions(configuration); + + context.Services.TryAddSingleton( + serviceProvider => serviceProvider + .GetRequiredService() + .Create() + ); } private void ConfigureDaprOptions(IConfiguration configuration) 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 982b8f26f1..10dd3913ed 100644 --- a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/DaprApiTokenProvider.cs +++ b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/DaprApiTokenProvider.cs @@ -1,4 +1,3 @@ -using System.Threading.Tasks; using Microsoft.Extensions.Options; using Volo.Abp.DependencyInjection; @@ -13,13 +12,13 @@ public class DaprApiTokenProvider : IDaprApiTokenProvider, ISingletonDependency Options = options.Value; } - public virtual Task GetDaprApiTokenAsync() + public virtual string GetDaprApiToken() { - return Task.FromResult(Options.DaprApiToken); + return Options.DaprApiToken; } - public virtual Task GetAppApiTokenAsync() + public virtual string GetAppApiToken() { - return Task.FromResult(Options.AppApiToken); + return Options.AppApiToken; } } diff --git a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IAbpDaprClientFactory.cs b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IAbpDaprClientFactory.cs index 19a42219ad..65c4e76b7e 100644 --- a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IAbpDaprClientFactory.cs +++ b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IAbpDaprClientFactory.cs @@ -1,15 +1,14 @@ using System; using System.Net.Http; -using System.Threading.Tasks; using Dapr.Client; namespace Volo.Abp.Dapr; public interface IAbpDaprClientFactory { - Task CreateAsync(Action builderAction = null); + DaprClient Create(Action builderAction = null); - Task CreateHttpClientAsync( + HttpClient CreateHttpClient( string appId = null, string daprEndpoint = null, string daprApiToken = null 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 d25cf455d9..60f2195596 100644 --- a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IDaprApiTokenProvider.cs +++ b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IDaprApiTokenProvider.cs @@ -1,10 +1,8 @@ -using System.Threading.Tasks; - namespace Volo.Abp.Dapr; public interface IDaprApiTokenProvider { - Task GetDaprApiTokenAsync(); + string GetDaprApiToken(); - Task GetAppApiTokenAsync(); + string GetAppApiToken(); } diff --git a/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo/Abp/DistributedLocking/Dapr/DaprAbpDistributedLock.cs b/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo/Abp/DistributedLocking/Dapr/DaprAbpDistributedLock.cs index 9bca2def67..974c6461a6 100644 --- a/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo/Abp/DistributedLocking/Dapr/DaprAbpDistributedLock.cs +++ b/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo/Abp/DistributedLocking/Dapr/DaprAbpDistributedLock.cs @@ -31,7 +31,7 @@ public class DaprAbpDistributedLock : IAbpDistributedLock, ITransientDependency { name = DistributedLockKeyNormalizer.NormalizeKey(name); - var daprClient = await DaprClientFactory.CreateAsync(); + var daprClient = DaprClientFactory.Create(); var lockResponse = await daprClient.Lock( DistributedLockDaprOptions.StoreName, name, diff --git a/framework/src/Volo.Abp.EventBus.Dapr/Volo/Abp/EventBus/Dapr/DaprDistributedEventBus.cs b/framework/src/Volo.Abp.EventBus.Dapr/Volo/Abp/EventBus/Dapr/DaprDistributedEventBus.cs index 7f3253d41e..a00127ac8c 100644 --- a/framework/src/Volo.Abp.EventBus.Dapr/Volo/Abp/EventBus/Dapr/DaprDistributedEventBus.cs +++ b/framework/src/Volo.Abp.EventBus.Dapr/Volo/Abp/EventBus/Dapr/DaprDistributedEventBus.cs @@ -201,7 +201,7 @@ public class DaprDistributedEventBus : DistributedEventBusBase, ISingletonDepend protected virtual async Task PublishToDaprAsync(string eventName, object eventData) { - var client = await DaprClientFactory.CreateAsync(); + var client = DaprClientFactory.Create(); await client.PublishEventAsync(pubsubName: DaprEventBusOptions.PubSubName, topicName: eventName, data: eventData); }