From 0cebece68df7c00c71214ba7af12ebfb191bb819 Mon Sep 17 00:00:00 2001 From: Alexander Matyushentsev Date: Tue, 21 Jan 2025 09:22:50 -0800 Subject: [PATCH] fix: login return_url doesn't work with custom server paths (#21588) Signed-off-by: Alexander Matyushentsev Signed-off-by: Brett C. Dudo --- ui/src/app/app.tsx | 2 +- ui/src/app/login/components/login.tsx | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ui/src/app/app.tsx b/ui/src/app/app.tsx index 2d2e192590fa2..17851489dd610 100644 --- a/ui/src/app/app.tsx +++ b/ui/src/app/app.tsx @@ -235,7 +235,7 @@ export class App extends React.Component< } public getChildContext() { - return {history, apis: {popup: this.popupManager, notifications: this.notificationsManager, navigation: this.navigationManager}}; + return {history, apis: {popup: this.popupManager, notifications: this.notificationsManager, navigation: this.navigationManager, baseHref: base}}; } private async subscribeUnauthorized() { diff --git a/ui/src/app/login/components/login.tsx b/ui/src/app/login/components/login.tsx index 0f1aa90f26052..6d3bb97fae05c 100644 --- a/ui/src/app/login/components/login.tsx +++ b/ui/src/app/login/components/login.tsx @@ -135,7 +135,12 @@ export class Login extends React.Component, State> { this.setState({loginInProgress: false}); if (returnURL) { const url = new URL(returnURL); - this.appContext.apis.navigation.goto(url.pathname + url.search); + let redirectURL = url.pathname + url.search; + // return url already contains baseHref, so we need to remove it + if (this.appContext.apis.baseHref != '/' && redirectURL.startsWith(this.appContext.apis.baseHref)) { + redirectURL = redirectURL.substring(this.appContext.apis.baseHref.length); + } + this.appContext.apis.navigation.goto(redirectURL); } else { this.appContext.apis.navigation.goto('/applications'); }