From 3d15ed68073c801188f07335cd377b3f5275a43b Mon Sep 17 00:00:00 2001 From: Laura Hausmann Date: Wed, 29 May 2024 20:04:22 +0200 Subject: [PATCH] [backend/asp] Add explicit routes for matching local and remote users This is necessary because MapFallbackToPage doesn't apply to routes containing special characters (dots, @ symbol) by default. --- .../Core/Extensions/WebApplicationExtensions.cs | 9 ++++++++- Iceshrimp.Backend/Startup.cs | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Iceshrimp.Backend/Core/Extensions/WebApplicationExtensions.cs b/Iceshrimp.Backend/Core/Extensions/WebApplicationExtensions.cs index 22a0a2f9..8d7856e3 100644 --- a/Iceshrimp.Backend/Core/Extensions/WebApplicationExtensions.cs +++ b/Iceshrimp.Backend/Core/Extensions/WebApplicationExtensions.cs @@ -46,6 +46,13 @@ public static class WebApplicationExtensions return app; } + public static void MapFrontendRoutes(this WebApplication app, string page) + { + app.MapFallbackToPage(page).WithOrder(int.MaxValue - 2); + app.MapFallbackToPage("/@{user}", page).WithOrder(int.MaxValue - 1); + app.MapFallbackToPage("/@{user}@{host}", page); + } + public static async Task Initialize(this WebApplication app, string[] args) { var instanceConfig = app.Configuration.GetSection("Instance").Get() ?? @@ -193,7 +200,7 @@ public static class WebApplicationExtensions app.Logger.LogInformation("Warming up meta cache..."); await meta.WarmupCache(); - + // Initialize image processing provider.GetRequiredService(); diff --git a/Iceshrimp.Backend/Startup.cs b/Iceshrimp.Backend/Startup.cs index e54857c8..cc0d84c8 100644 --- a/Iceshrimp.Backend/Startup.cs +++ b/Iceshrimp.Backend/Startup.cs @@ -69,7 +69,7 @@ app.MapFallbackToController("/api/{**slug}", "FallbackAction", "Fallback"); app.MapHub("/hubs/example"); app.MapHub("/hubs/streaming"); app.MapRazorPages(); -app.MapFallbackToPage("/Shared/FrontendSPA"); +app.MapFrontendRoutes("/Shared/FrontendSPA"); app.Urls.Clear(); if (config.ListenSocket == null)