From 461de3a299b64c78767134cf14870fc075aabea6 Mon Sep 17 00:00:00 2001 From: Slendy Date: Mon, 2 Jan 2023 00:58:57 -0600 Subject: [PATCH] Make 2FA redirect highest priority --- .../UserRequiredRedirectMiddleware.cs | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/ProjectLighthouse.Servers.Website/Middlewares/UserRequiredRedirectMiddleware.cs b/ProjectLighthouse.Servers.Website/Middlewares/UserRequiredRedirectMiddleware.cs index b915754b..26ca3909 100644 --- a/ProjectLighthouse.Servers.Website/Middlewares/UserRequiredRedirectMiddleware.cs +++ b/ProjectLighthouse.Servers.Website/Middlewares/UserRequiredRedirectMiddleware.cs @@ -11,7 +11,7 @@ public class UserRequiredRedirectMiddleware : MiddlewareDBContext public UserRequiredRedirectMiddleware(RequestDelegate next) : base(next) { } - public override async Task InvokeAsync(HttpContext ctx, Database database) + public override async Task InvokeAsync(HttpContext ctx, Database.Database database) { WebToken? token = database.WebTokenFromRequest(ctx.Request); if (token == null || pathContains(ctx, "/logout")) @@ -34,6 +34,18 @@ public class UserRequiredRedirectMiddleware : MiddlewareDBContext return; } + if (!token.Verified && ServerConfiguration.Instance.TwoFactorConfiguration.TwoFactorEnabled) + { + if (!pathContains(ctx, "/2fa")) + { + ctx.Response.Redirect("/2fa"); + return; + } + + await this.next(ctx); + return; + } + if (user.PasswordResetRequired) { if (!pathContains(ctx, "/passwordResetRequired", "/passwordReset")) @@ -77,17 +89,6 @@ public class UserRequiredRedirectMiddleware : MiddlewareDBContext return; } - if (!token.Verified && ServerConfiguration.Instance.TwoFactorConfiguration.TwoFactorEnabled) - { - if (!pathContains(ctx, "/2fa")) - { - ctx.Response.Redirect("/2fa"); - return; - } - await this.next(ctx); - return; - } - await this.next(ctx); }