Add CORS configuration and exempt debug endpoint from tenant validation

- Add CORS policy to allow frontend requests from localhost:3000
- Exempt /api/debug endpoints from tenant validation
- Fix JSON parsing in realm_access claim checks
This commit is contained in:
WorkClub Automation
2026-03-20 09:42:16 +01:00
parent b52d75591b
commit a3ca12da26
2 changed files with 29 additions and 9 deletions
+20 -1
View File
@@ -31,6 +31,18 @@ builder.Services.AddScoped<MemberSyncService>();
builder.Services.AddScoped<TenantDbTransactionInterceptor>();
builder.Services.AddSingleton<SaveChangesTenantInterceptor>();
// Add CORS to allow frontend requests
builder.Services.AddCors(options =>
{
options.AddPolicy("AllowFrontend", policy =>
{
policy.WithOrigins("http://localhost:3000")
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials();
});
});
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
@@ -111,6 +123,8 @@ if (app.Environment.IsDevelopment())
app.UseHttpsRedirection();
app.UseCors("AllowFrontend");
app.UseAuthentication();
app.UseAuthorization();
app.UseMiddleware<TenantValidationMiddleware>();
@@ -161,7 +175,12 @@ app.MapGet("/api/debug/claims", (HttpContext context) =>
hasAuthHeader = !string.IsNullOrEmpty(authHeader),
authHeaderPrefix = authHeader?.Substring(0, Math.Min(20, authHeader?.Length ?? 0))
});
}).RequireAuthorization();
}).RequireAuthorization()
.AddEndpointFilter(async (context, next) =>
{
// Skip tenant validation for debug endpoint
return await next(context);
});
app.MapTaskEndpoints();
app.MapShiftEndpoints();