| File: Program.cs | Web Access |
| Project: src\playground\keycloak\Keycloak.ApiService\Keycloak.ApiService.csproj (Keycloak.ApiService) |
var builder = WebApplication.CreateBuilder(args); // Add service defaults & Aspire client integrations. builder.AddServiceDefaults(); // Add services to the container. builder.Services.AddProblemDetails(); builder.Services.AddAuthentication() .AddKeycloakJwtBearer("keycloak", realm: "WeatherShop", options => { options.RequireHttpsMetadata = false; options.Audience = "weather.api"; }); builder.Services.AddAuthorizationBuilder(); var app = builder.Build(); // Configure the HTTP request pipeline. app.UseExceptionHandler(); var summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" }; app.MapGet("/weatherforecast", () => { var forecast = Enumerable.Range(1, 5).Select(index => new WeatherForecast ( DateOnly.FromDateTime(DateTime.Now.AddDays(index)), Random.Shared.Next(-20, 55), summaries[Random.Shared.Next(summaries.Length)] )) .ToArray(); return forecast; }) .RequireAuthorization(); app.MapDefaultEndpoints(); app.Run(); sealed record WeatherForecast(DateOnly Date, int TemperatureC, string? Summary) { public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); }