| 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); } }