File: AuthorizationHandler.cs
Web Access
Project: src\playground\keycloak\Keycloak.Web\Keycloak.Web.csproj (Keycloak.Web)
using System.Net.Http.Headers;
using Microsoft.AspNetCore.Authentication;
 
namespace Keycloak.Web;
 
public class AuthorizationHandler(IHttpContextAccessor httpContextAccessor) : DelegatingHandler
{
    protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
    {
        var httpContext = httpContextAccessor.HttpContext ??
            throw new InvalidOperationException("No HttpContext available from the IHttpContextAccessor!");
 
        var accessToken = await httpContext.GetTokenAsync("access_token");
 
        if (!string.IsNullOrEmpty(accessToken))
        {
            request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
        }
 
        return await base.SendAsync(request, cancellationToken);
    }
}