33 lines
1.1 KiB
C#
33 lines
1.1 KiB
C#
// ***********************************************************************
|
|
// <copyright file="AuthenticatedHttpClientHandler.cs">
|
|
// Heath
|
|
// </copyright>
|
|
// ***********************************************************************
|
|
|
|
namespace Core.Cerberos.External.Helpers.Token
|
|
{
|
|
/// <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);
|
|
}
|
|
}
|
|
}
|