From 01738c8a0f25cdeededcb725e29a37d087b187b2 Mon Sep 17 00:00:00 2001 From: Jordan Reimer Date: Wed, 2 Mar 2022 09:45:53 -0700 Subject: [PATCH] Logout with wrapped token (#14329) * fixes issue passing wrapped_token query param to logout route * adds changelog entry --- changelog/14329.txt | 3 +++ ui/app/routes/vault/cluster/logout.js | 18 ++++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) create mode 100644 changelog/14329.txt diff --git a/changelog/14329.txt b/changelog/14329.txt new file mode 100644 index 000000000..87917be5d --- /dev/null +++ b/changelog/14329.txt @@ -0,0 +1,3 @@ +```release-note:bug +ui: Fixes issue logging out with wrapped token query parameter +``` \ No newline at end of file diff --git a/ui/app/routes/vault/cluster/logout.js b/ui/app/routes/vault/cluster/logout.js index 85da83a99..11913ffa4 100644 --- a/ui/app/routes/vault/cluster/logout.js +++ b/ui/app/routes/vault/cluster/logout.js @@ -11,14 +11,14 @@ export default Route.extend(ModelBoundaryRoute, { console: service(), permissions: service(), namespaceService: service('namespace'), + router: service(), modelTypes: computed(function () { return ['secret', 'secret-engine']; }), - beforeModel() { + beforeModel({ to: { queryParams } }) { const authType = this.auth.getAuthType(); - const baseUrl = window.location.origin; const ns = this.namespaceService.path; this.auth.deleteCurrentToken(); this.controlGroup.deleteTokens(); @@ -27,15 +27,17 @@ export default Route.extend(ModelBoundaryRoute, { this.console.clearLog(true); this.flashMessages.clearMessages(); this.permissions.reset(); + + queryParams.with = authType; + if (ns) { + queryParams.namespace = ns; + } if (Ember.testing) { // Don't redirect on the test - this.replaceWith('vault.cluster.auth', { queryParams: { with: authType } }); + this.replaceWith('vault.cluster.auth', { queryParams }); } else { - let params = `?with=${authType}`; - if (ns) { - params = `${params}&namespace=${ns}`; - } - location.assign(`${baseUrl}/ui/vault/auth${params}`); + const { cluster_name } = this.paramsFor('vault.cluster'); + location.assign(this.router.urlFor('vault.cluster.auth', cluster_name, { queryParams })); } }, });