// *********************************************************************** // // AgileWebs // // *********************************************************************** using Core.Cerberos.Adapters.Contracts; namespace Core.Cerberos.Adapters.Handlers { /// /// Class to inject the token in all requests. /// public class AuthenticatedHttpClientHandler(ITokenProvider tokenProvider) : DelegatingHandler { private readonly ITokenProvider _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); } } }