// *********************************************************************** // // Heath // // *********************************************************************** namespace Core.Cerberos.External.Helpers.Token { /// /// Class to inject the token in all requests. /// public class AuthenticatedHttpClientHandler : DelegatingHandler { private readonly ITokenProvider _tokenProvider; public AuthenticatedHttpClientHandler(ITokenProvider tokenProvider) { _tokenProvider = tokenProvider; } protected override async Task 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); } } }