mirror of
https://github.com/optim-enterprises-bv/vault.git
synced 2025-10-29 01:32:33 +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) {
|
||||
const { code } = response;
|
||||
const redirectUrl = this._buildUrl(baseUrl, { code, state });
|
||||
if (Ember.testing) {
|
||||
return { redirectUrl };
|
||||
if (!Ember.testing) {
|
||||
this.win.location.replace(redirectUrl);
|
||||
}
|
||||
this.win.location.replace(redirectUrl);
|
||||
return { redirectUrl };
|
||||
}
|
||||
_handleError(errorResp, baseUrl) {
|
||||
const redirectUrl = this._buildUrl(baseUrl, { ...errorResp });
|
||||
if (Ember.testing) {
|
||||
return { redirectUrl };
|
||||
if (!Ember.testing) {
|
||||
this.win.location.replace(redirectUrl);
|
||||
}
|
||||
this.win.location.replace(redirectUrl);
|
||||
return { redirectUrl };
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -22,7 +22,9 @@
|
||||
@onSuccess={{this._handleSuccess}}
|
||||
/>
|
||||
{{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}}
|
||||
<VaultLogoSpinner />
|
||||
{{/if}}
|
||||
|
||||
@@ -163,10 +163,11 @@ module('Acceptance | oidc provider', function (hooks) {
|
||||
await authFormComponent.login();
|
||||
await settled();
|
||||
assert.strictEqual(currentURL(), url, 'URL is as expected after login');
|
||||
assert.dom('[data-test-oidc-redirect]').exists('redirect text exists');
|
||||
assert
|
||||
.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
|
||||
await clearRecord(this.store, 'oidc/client', 'my-webapp');
|
||||
@@ -191,7 +192,9 @@ module('Acceptance | oidc provider', function (hooks) {
|
||||
await settled();
|
||||
assert
|
||||
.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
|
||||
await clearRecord(this.store, 'oidc/client', 'my-webapp');
|
||||
|
||||
Reference in New Issue
Block a user