summary refs log tree commit diff
path: root/extra/admin-api/Spacebar.UApi/Program.cs
diff options
context:
space:
mode:
Diffstat (limited to 'extra/admin-api/Spacebar.UApi/Program.cs')
-rw-r--r--extra/admin-api/Spacebar.UApi/Program.cs24
1 files changed, 20 insertions, 4 deletions
diff --git a/extra/admin-api/Spacebar.UApi/Program.cs b/extra/admin-api/Spacebar.UApi/Program.cs

index 0a2a1b32..326d0a9c 100644 --- a/extra/admin-api/Spacebar.UApi/Program.cs +++ b/extra/admin-api/Spacebar.UApi/Program.cs
@@ -11,8 +11,10 @@ using Spacebar.Models.Db.Contexts; using Spacebar.UApi.Services; var builder = WebApplication.CreateBuilder(args); -if (!string.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("APPSETTINGS_PATH"))) +if (!string.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("APPSETTINGS_PATH"))) { + Console.WriteLine("Loading appsettings from path: " + Environment.GetEnvironmentVariable("APPSETTINGS_PATH")); builder.Configuration.AddJsonFile(Environment.GetEnvironmentVariable("APPSETTINGS_PATH")!); +} // Add services to the container. @@ -70,9 +72,23 @@ app.UseAuthorization(); app.MapControllers(); StreamingHttpClient.LogRequests = false; app.Use((context, next) => { - context.Response.Headers["Access-Control-Allow-Origin"] = "*"; - context.Response.Headers["Access-Control-Allow-Methods"] = "GET, POST, PUT, DELETE, OPTIONS"; - context.Response.Headers["Access-Control-Allow-Headers"] = "*, Authorization"; + context.Response.Headers["Access-Control-Allow-Origin"] = + string.IsNullOrWhiteSpace(context.Request.Headers.Origin) + ? "*" + : context.Request.Headers.Origin; + + context.Response.Headers["Access-Control-Allow-Methods"] = + string.IsNullOrWhiteSpace(context.Request.Headers.AccessControlRequestMethod) + ? "GET, POST, PUT, DELETE, OPTIONS" + : context.Request.Headers.AccessControlRequestMethod.ToString(); + + context.Response.Headers["Access-Control-Allow-Headers"] = + string.IsNullOrWhiteSpace(context.Request.Headers.AccessControlRequestHeaders) + ? "*, Authorization" + : context.Request.Headers.AccessControlRequestHeaders.ToString(); + + context.Response.Headers.AccessControlAllowCredentials = "true"; + if (context.Request.Method == "OPTIONS") { context.Response.StatusCode = 200; return Task.CompletedTask;