From a1cefa9771875c9380426af20e70fc287044345f Mon Sep 17 00:00:00 2001 From: Tom Moor Date: Thu, 2 Feb 2023 21:45:33 -0500 Subject: [PATCH] fix: FORCE_HTTPS setting results in redirect loop when Outline terminates SSL --- server/services/web.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/server/services/web.ts b/server/services/web.ts index a57947184..803e5e3de 100644 --- a/server/services/web.ts +++ b/server/services/web.ts @@ -6,7 +6,10 @@ import { referrerPolicy, } from "koa-helmet"; import mount from "koa-mount"; -import enforceHttps, { xForwardedProtoResolver } from "koa-sslify"; +import enforceHttps, { + httpsResolver, + xForwardedProtoResolver, +} from "koa-sslify"; import env from "@server/env"; import Logger from "@server/logging/Logger"; import { initI18n } from "@server/utils/i18n"; @@ -45,7 +48,12 @@ export default function init(app: Koa = new Koa()): Koa { if (env.FORCE_HTTPS) { app.use( enforceHttps({ - resolver: xForwardedProtoResolver, + resolver: (ctx) => { + if (httpsResolver(ctx)) { + return true; + } + return xForwardedProtoResolver(ctx); + }, }) ); } else {