Browse Source

Introduce IDaprApiTokenProvider & AbpDaprOptions.DaprApiToken

pull/14015/head
Halil İbrahim Kalkan 4 years ago
parent
commit
5b93208433
  1. 35
      framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprClientFactory.cs
  2. 4
      framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprOptions.cs
  3. 19
      framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/DaprApiTokenProvider.cs
  4. 6
      framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IDaprApiTokenProvider.cs

35
framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprClientFactory.cs

@ -10,21 +10,19 @@ public class AbpDaprClientFactory : IAbpDaprClientFactory, ISingletonDependency
{
protected AbpDaprOptions DaprOptions { get; }
protected JsonSerializerOptions JsonSerializerOptions { get; }
protected IDaprApiTokenProvider DaprApiTokenProvider { get; }
public AbpDaprClientFactory(
IOptions<AbpDaprOptions> options,
IOptions<AbpSystemTextJsonSerializerOptions> systemTextJsonSerializerOptions)
IOptions<AbpSystemTextJsonSerializerOptions> systemTextJsonSerializerOptions,
IDaprApiTokenProvider daprApiTokenProvider)
{
DaprApiTokenProvider = daprApiTokenProvider;
DaprOptions = options.Value;
JsonSerializerOptions = CreateJsonSerializerOptions(systemTextJsonSerializerOptions.Value);
}
protected virtual JsonSerializerOptions CreateJsonSerializerOptions(AbpSystemTextJsonSerializerOptions systemTextJsonSerializerOptions)
{
return new JsonSerializerOptions(systemTextJsonSerializerOptions.JsonSerializerOptions);
}
public virtual Task<DaprClient> CreateAsync(Action<DaprClientBuilder>? builderAction = null)
public virtual async Task<DaprClient> CreateAsync(Action<DaprClientBuilder>? builderAction = null)
{
var builder = new DaprClientBuilder()
.UseJsonSerializationOptions(JsonSerializerOptions);
@ -39,12 +37,18 @@ public class AbpDaprClientFactory : IAbpDaprClientFactory, ISingletonDependency
builder.UseGrpcEndpoint(DaprOptions.GrpcEndpoint);
}
var apiToken = await DaprApiTokenProvider.GetAsync();
if (!apiToken.IsNullOrWhiteSpace())
{
builder.UseDaprApiToken(apiToken);
}
builderAction?.Invoke(builder);
return Task.FromResult(builder.Build());
return builder.Build();
}
public Task<HttpClient> CreateHttpClientAsync(
public virtual async Task<HttpClient> CreateHttpClientAsync(
string? appId = null,
string? daprEndpoint = null,
string? daprApiToken = null)
@ -54,7 +58,16 @@ public class AbpDaprClientFactory : IAbpDaprClientFactory, ISingletonDependency
{
daprEndpoint = DaprOptions.HttpEndpoint;
}
return Task.FromResult(DaprClient.CreateInvokeHttpClient(appId, daprEndpoint, daprApiToken));
return DaprClient.CreateInvokeHttpClient(
appId,
daprEndpoint,
daprApiToken ?? await DaprApiTokenProvider.GetAsync()
);
}
protected virtual JsonSerializerOptions CreateJsonSerializerOptions(AbpSystemTextJsonSerializerOptions systemTextJsonSerializerOptions)
{
return new JsonSerializerOptions(systemTextJsonSerializerOptions.JsonSerializerOptions);
}
}

4
framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprOptions.cs

@ -5,4 +5,6 @@ public class AbpDaprOptions
public string HttpEndpoint { get; set; }
public string GrpcEndpoint { get; set; }
}
public string DaprApiToken { get; set; }
}

19
framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/DaprApiTokenProvider.cs

@ -0,0 +1,19 @@
using Microsoft.Extensions.Options;
using Volo.Abp.DependencyInjection;
namespace Volo.Abp.Dapr;
public class DaprApiTokenProvider : IDaprApiTokenProvider, ISingletonDependency
{
public AbpDaprOptions Options { get; }
public DaprApiTokenProvider(IOptions<AbpDaprOptions> options)
{
Options = options.Value;
}
public virtual Task<string> GetAsync()
{
return Task.FromResult(Options.DaprApiToken);
}
}

6
framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IDaprApiTokenProvider.cs

@ -0,0 +1,6 @@
namespace Volo.Abp.Dapr;
public interface IDaprApiTokenProvider
{
Task<string> GetAsync();
}
Loading…
Cancel
Save