From 8aee1ae8e90978c81be8189e426ef98bc8cfedc4 Mon Sep 17 00:00:00 2001 From: Giteabot Date: Thu, 30 Nov 2023 08:26:47 +0800 Subject: [PATCH] Use appSubUrl for OAuth2 callback URL tip (#28266) (#28275) Backport #28266 by @earl-warren - When crafting the OAuth2 callbackURL take into account `appSubUrl`, which is quite safe given that its strictly formatted. - No integration testing as this is all done in Javascript. - Resolves https://codeberg.org/forgejo/forgejo/issues/1795 (cherry picked from commit 27cb6b7956136f87aa78067d9adb5a4c4ce28a24) Co-authored-by: Earl Warren <109468362+earl-warren@users.noreply.github.com> Co-authored-by: Gusted (cherry picked from commit 84e65afffd203257d6b997312e33b762f6fc4981) --- web_src/js/features/admin/common.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/web_src/js/features/admin/common.js b/web_src/js/features/admin/common.js index 250608069b..044976ea7b 100644 --- a/web_src/js/features/admin/common.js +++ b/web_src/js/features/admin/common.js @@ -2,7 +2,7 @@ import $ from 'jquery'; import {checkAppUrl} from '../common-global.js'; import {hideElem, showElem, toggleElem} from '../../utils/dom.js'; -const {csrfToken} = window.config; +const {csrfToken, appSubUrl} = window.config; export function initAdminCommon() { if ($('.page-content.admin').length === 0) { @@ -172,7 +172,8 @@ export function initAdminCommon() { if ($('.admin.authentication').length > 0) { $('#auth_name').on('input', function () { - $('#oauth2-callback-url').text(`${window.location.origin}/user/oauth2/${encodeURIComponent($(this).val())}/callback`); + // appSubUrl is either empty or is a path that starts with `/` and doesn't have a trailing slash. + $('#oauth2-callback-url').text(`${window.location.origin}${appSubUrl}/user/oauth2/${encodeURIComponent($(this).val())}/callback`); }).trigger('input'); }