mirror of
https://github.com/optim-enterprises-bv/vault.git
synced 2025-11-01 19:17:58 +00:00
backport Fixed Oauth redirect not working on Android Chrome (#24715)
Co-authored-by: prajnamohan1 <36304276+prajnamohan1@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
3228bdaa91
commit
6130bbaea6
3
changelog/18513.txt
Normal file
3
changelog/18513.txt
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
```release-note:improvement
|
||||||
|
ui: latest version of chrome does not automatically redirect back to the app after authentication unless triggered by the user, hence added a link to redirect back to the app.
|
||||||
|
```
|
||||||
@@ -94,17 +94,17 @@ export default class VaultClusterOidcProviderRoute extends Route {
|
|||||||
_handleSuccess(response, baseUrl, state) {
|
_handleSuccess(response, baseUrl, state) {
|
||||||
const { code } = response;
|
const { code } = response;
|
||||||
const redirectUrl = this._buildUrl(baseUrl, { code, state });
|
const redirectUrl = this._buildUrl(baseUrl, { code, state });
|
||||||
if (Ember.testing) {
|
if (!Ember.testing) {
|
||||||
return { redirectUrl };
|
this.win.location.replace(redirectUrl);
|
||||||
}
|
}
|
||||||
this.win.location.replace(redirectUrl);
|
return { redirectUrl };
|
||||||
}
|
}
|
||||||
_handleError(errorResp, baseUrl) {
|
_handleError(errorResp, baseUrl) {
|
||||||
const redirectUrl = this._buildUrl(baseUrl, { ...errorResp });
|
const redirectUrl = this._buildUrl(baseUrl, { ...errorResp });
|
||||||
if (Ember.testing) {
|
if (!Ember.testing) {
|
||||||
return { redirectUrl };
|
this.win.location.replace(redirectUrl);
|
||||||
}
|
}
|
||||||
this.win.location.replace(redirectUrl);
|
return { redirectUrl };
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -22,7 +22,9 @@
|
|||||||
@onSuccess={{this._handleSuccess}}
|
@onSuccess={{this._handleSuccess}}
|
||||||
/>
|
/>
|
||||||
{{else if this.model.redirectUrl}}
|
{{else if this.model.redirectUrl}}
|
||||||
<div data-test-oidc-redirect>{{this.model.redirectUrl}}</div>
|
<VaultLogoSpinner />
|
||||||
|
<p>If you are not automatically redirected,
|
||||||
|
<a href={{this.model.redirectUrl}} data-test-oidc-redirect>click here to go back to app.</a></p>
|
||||||
{{else}}
|
{{else}}
|
||||||
<VaultLogoSpinner />
|
<VaultLogoSpinner />
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|||||||
@@ -163,10 +163,11 @@ module('Acceptance | oidc provider', function (hooks) {
|
|||||||
await authFormComponent.login();
|
await authFormComponent.login();
|
||||||
await settled();
|
await settled();
|
||||||
assert.strictEqual(currentURL(), url, 'URL is as expected after login');
|
assert.strictEqual(currentURL(), url, 'URL is as expected after login');
|
||||||
assert.dom('[data-test-oidc-redirect]').exists('redirect text exists');
|
|
||||||
assert
|
assert
|
||||||
.dom('[data-test-oidc-redirect]')
|
.dom('[data-test-oidc-redirect]')
|
||||||
.hasTextContaining(`${callback}?code=`, 'Successful redirect to callback');
|
.hasTextContaining(`click here to go back to app`, 'Shows link back to app');
|
||||||
|
const link = document.querySelector('[data-test-oidc-redirect]').getAttribute('href');
|
||||||
|
assert.ok(link.includes('/callback?code='), 'Redirects to correct url');
|
||||||
|
|
||||||
//* clean up test state
|
//* clean up test state
|
||||||
await clearRecord(this.store, 'oidc/client', 'my-webapp');
|
await clearRecord(this.store, 'oidc/client', 'my-webapp');
|
||||||
@@ -191,7 +192,9 @@ module('Acceptance | oidc provider', function (hooks) {
|
|||||||
await settled();
|
await settled();
|
||||||
assert
|
assert
|
||||||
.dom('[data-test-oidc-redirect]')
|
.dom('[data-test-oidc-redirect]')
|
||||||
.hasTextContaining(`${callback}?code=`, 'Successful redirect to callback');
|
.hasTextContaining(`click here to go back to app`, 'Shows link back to app');
|
||||||
|
const link = document.querySelector('[data-test-oidc-redirect]').getAttribute('href');
|
||||||
|
assert.ok(link.includes('/callback?code='), 'Redirects to correct url');
|
||||||
|
|
||||||
//* clean up test state
|
//* clean up test state
|
||||||
await clearRecord(this.store, 'oidc/client', 'my-webapp');
|
await clearRecord(this.store, 'oidc/client', 'my-webapp');
|
||||||
|
|||||||
Reference in New Issue
Block a user