From 590b1b87ca76f0fa5f035f6813792bb982f3bfb3 Mon Sep 17 00:00:00 2001 From: Mike Phares Date: Sat, 23 Nov 2024 13:46:53 -0700 Subject: [PATCH] InitializeCorsAndHttps --- .vscode/settings.json | 6 +++--- src/ImmichToSlideshow/Models/AppSettings.cs | 1 + .../Models/Binder/AppSettings.cs | 3 +++ src/ImmichToSlideshow/Program.cs | 3 +++ .../RequestPipeline/WebApplicationExtensions.cs | 15 +++++++++++---- 5 files changed, 21 insertions(+), 7 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index b0f4d33..13b34df 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -82,17 +82,17 @@ }, "dev": { "ownerId": "5f0b1052-466d-44de-a554-226d7256850d", - "host": "http://localhost:5003", + "host": "https://localhost:5003", "token": "ey..dev", }, "affirm": { "ownerId": "5f0b1052-466d-44de-a554-226d7256850d", - "host": "https://products.affirm.duckdns.org/", + "host": "https://immich-to-slideshow.affirm.duckdns.org/", "token": "ey..affirm" }, "phares": { "ownerId": "5f0b1052-466d-44de-a554-226d7256850d", - "host": "https://products.phares.duckdns.org/", + "host": "https://immich-to-slideshow.phares.duckdns.org/", "token": "ey..phares" } } diff --git a/src/ImmichToSlideshow/Models/AppSettings.cs b/src/ImmichToSlideshow/Models/AppSettings.cs index e116a28..bee83a2 100644 --- a/src/ImmichToSlideshow/Models/AppSettings.cs +++ b/src/ImmichToSlideshow/Models/AppSettings.cs @@ -5,6 +5,7 @@ namespace ImmichToSlideshow.Models; public record AppSettings(string Company, string ConnectionString, + string[] WithOrigins, string WorkingDirectoryName) { diff --git a/src/ImmichToSlideshow/Models/Binder/AppSettings.cs b/src/ImmichToSlideshow/Models/Binder/AppSettings.cs index 05b2eca..a3859b1 100644 --- a/src/ImmichToSlideshow/Models/Binder/AppSettings.cs +++ b/src/ImmichToSlideshow/Models/Binder/AppSettings.cs @@ -8,6 +8,7 @@ public class AppSettings public string? Company { get; set; } public string? ConnectionString { get; set; } + public string[]? WithOrigins { get; set; } public string? WorkingDirectoryName { get; set; } public override string ToString() @@ -38,9 +39,11 @@ public class AppSettings Models.AppSettings result; if (appSettings?.Company is null) throw new NullReferenceException(nameof(appSettings.Company)); if (appSettings?.ConnectionString is null) throw new NullReferenceException(nameof(appSettings.ConnectionString)); + if (appSettings?.WithOrigins is null) throw new NullReferenceException(nameof(appSettings.WithOrigins)); if (appSettings?.WorkingDirectoryName is null) throw new NullReferenceException(nameof(appSettings.WorkingDirectoryName)); result = new(appSettings.Company, appSettings.ConnectionString, + appSettings.WithOrigins, appSettings.WorkingDirectoryName); return result; } diff --git a/src/ImmichToSlideshow/Program.cs b/src/ImmichToSlideshow/Program.cs index 39cc3ad..35e16a0 100644 --- a/src/ImmichToSlideshow/Program.cs +++ b/src/ImmichToSlideshow/Program.cs @@ -15,6 +15,9 @@ public class Program _ = webApplicationBuilder.Services.AddControllers(); _ = webApplicationBuilder.Services.AddServices(appSettings); WebApplication webApplication = webApplicationBuilder.Build(); + ILogger? logger = webApplication.Services.GetRequiredService>(); + logger.LogInformation("Starting Web Application"); + _ = webApplication.InitializeCorsAndHttps(appSettings); _ = webApplication.MapControllers(); _ = webApplication.InitializeDatabase(); webApplication.Run(); diff --git a/src/ImmichToSlideshow/RequestPipeline/WebApplicationExtensions.cs b/src/ImmichToSlideshow/RequestPipeline/WebApplicationExtensions.cs index 0a16b35..b7ca600 100644 --- a/src/ImmichToSlideshow/RequestPipeline/WebApplicationExtensions.cs +++ b/src/ImmichToSlideshow/RequestPipeline/WebApplicationExtensions.cs @@ -1,13 +1,20 @@ +using ImmichToSlideshow.Models; + namespace ImmichToSlideshow.RequestPipeline; public static class WebApplicationExtensions { - public static WebApplication InitializeDatabase(this WebApplication webApplication) - { - ILogger? logger = webApplication.Services.GetRequiredService>(); - logger.LogInformation("Starting Web Application"); + public static WebApplication InitializeDatabase(this WebApplication webApplication) => // DBInitializer.Initialize(application.Configuration[DbConstants.DefaultConnectionStringPath]!); + webApplication; + + public static WebApplication InitializeCorsAndHttps(this WebApplication webApplication, AppSettings appSettings) + { + _ = webApplication.UseCors(corsPolicyBuilder => + corsPolicyBuilder.WithOrigins(appSettings.WithOrigins).AllowAnyHeader().AllowAnyMethod()); + _ = webApplication.UseHttpsRedirection(); + _ = webApplication.UseHsts(); return webApplication; }