Browse Source

Clean up the auth delegating handler

davidfowl/common-services
David Fowler 1 year ago
committed by Reuben Bond
parent
commit
184ed15ef6
2 changed files with 7 additions and 20 deletions
  1. +4
    -1
      src/Web/WebMVC/Extensions/Extensions.cs
  2. +3
    -19
      src/Web/WebMVC/Infrastructure/HttpClientAuthorizationDelegatingHandler.cs

+ 4
- 1
src/Web/WebMVC/Extensions/Extensions.cs View File

@ -102,7 +102,10 @@ internal static class Extensions
// Set the access token as a bearer token for the outgoing request
var accessToken = await httpContext.GetTokenAsync("access_token");
proxyRequest.Headers.Authorization = new("Bearer", accessToken);
if (accessToken is not null)
{
proxyRequest.Headers.Authorization = new("Bearer", accessToken);
}
await base.TransformRequestAsync(httpContext, proxyRequest, destinationPrefix, cancellationToken);
}


+ 3
- 19
src/Web/WebMVC/Infrastructure/HttpClientAuthorizationDelegatingHandler.cs View File

@ -12,29 +12,13 @@ public class HttpClientAuthorizationDelegatingHandler
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
var authorizationHeader = _httpContextAccessor.HttpContext
.Request.Headers["Authorization"];
var accessToken = await _httpContextAccessor.HttpContext.GetTokenAsync("access_token");
if (!string.IsNullOrEmpty(authorizationHeader))
if (accessToken is not null)
{
request.Headers.Add("Authorization", new List<string>() { authorizationHeader });
}
var token = await GetToken();
if (token != null)
{
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token);
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
}
return await base.SendAsync(request, cancellationToken);
}
async Task<string> GetToken()
{
const string ACCESS_TOKEN = "access_token";
return await _httpContextAccessor.HttpContext
.GetTokenAsync(ACCESS_TOKEN);
}
}

Loading…
Cancel
Save