diff --git a/Iceshrimp.Backend/Core/Configuration/Config.cs b/Iceshrimp.Backend/Core/Configuration/Config.cs index af03a628..1028abac 100644 --- a/Iceshrimp.Backend/Core/Configuration/Config.cs +++ b/Iceshrimp.Backend/Core/Configuration/Config.cs @@ -32,6 +32,9 @@ public sealed class Config [Required] public string WebDomain { get; init; } = null!; [Required] public string AccountDomain { get; init; } = null!; [Range(1, 100000)] public int CharacterLimit { get; init; } = 8192; + + public string? ExtraWebDomains { get; init; } + public string[] ExtraWebDomainsArray => ExtraWebDomains?.Split(',') ?? []; } public sealed class SecuritySection diff --git a/Iceshrimp.Backend/Core/Middleware/RequestVerificationMiddleware.cs b/Iceshrimp.Backend/Core/Middleware/RequestVerificationMiddleware.cs index b7a6aff8..7ce1ac41 100644 --- a/Iceshrimp.Backend/Core/Middleware/RequestVerificationMiddleware.cs +++ b/Iceshrimp.Backend/Core/Middleware/RequestVerificationMiddleware.cs @@ -22,6 +22,7 @@ public class RequestVerificationMiddleware( public bool IsValid(HttpRequest rq) { if (rq.Host.Host == config.Value.WebDomain) return true; + if (config.Value.ExtraWebDomainsArray.Contains(rq.Host.Host)) return true; if (rq.Host.Host == config.Value.AccountDomain && rq.Path.StartsWithSegments("/.well-known")) { if (rq.Path == "/.well-known/webfinger") return true; diff --git a/Iceshrimp.Backend/configuration.ini b/Iceshrimp.Backend/configuration.ini index 072bbe0a..c2a52bc3 100644 --- a/Iceshrimp.Backend/configuration.ini +++ b/Iceshrimp.Backend/configuration.ini @@ -10,6 +10,10 @@ WebDomain = shrimp.example.org AccountDomain = example.org ;; End of problematic settings block +;; Extra web domains this instance allows access from, separated by commas. +;; Certain frontends such as Akkoma-FE may require reverse proxy configurations that send requests through the frontend domain. +;ExtraWebDomains = + ;; Maximum number of characters allowed for local notes (must not be larger than the global limit, which is 100000 characters) CharacterLimit = 8192