27 lines
884 B
C#
27 lines
884 B
C#
namespace Core.Inventory.External.Helpers
|
|
{
|
|
/// <summary>
|
|
/// Class to inject the token in all requests.
|
|
/// </summary>
|
|
public class AuthenticatedHttpClientHandler : DelegatingHandler
|
|
{
|
|
private readonly ITokenProvider _tokenProvider;
|
|
|
|
public AuthenticatedHttpClientHandler(ITokenProvider tokenProvider)
|
|
{
|
|
_tokenProvider = tokenProvider;
|
|
}
|
|
|
|
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
|
|
{
|
|
var token = _tokenProvider.GetToken();
|
|
if (!string.IsNullOrEmpty(token))
|
|
{
|
|
request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
|
|
}
|
|
|
|
return await base.SendAsync(request, cancellationToken);
|
|
}
|
|
}
|
|
}
|