diff --git a/lib/login/addon/components/login-saml/component.js b/lib/login/addon/components/login-saml/component.js index 005a10082..d9f129d74 100644 --- a/lib/login/addon/components/login-saml/component.js +++ b/lib/login/addon/components/login-saml/component.js @@ -9,7 +9,7 @@ export default Component.extend({ actions: { authenticate() { - get(this, 'saml').login(get(this, 'provider')).catch( ( err ) => { + get(this, 'saml').login(get(this, 'provider'), get(this, 'socketId')).catch( ( err ) => { set(this, 'errors', [err.message]) }); } diff --git a/lib/login/addon/login/controller.js b/lib/login/addon/login/controller.js index f9ee97cef..ff6e2cc5a 100644 --- a/lib/login/addon/login/controller.js +++ b/lib/login/addon/login/controller.js @@ -22,7 +22,7 @@ export default Controller.extend({ router: service(), session: service(), - queryParams: ['errorMsg', 'resetPassword', 'errorCode'], + queryParams: ['errorMsg', 'resetPassword', 'errorCode', 'socketId'], waiting: false, adWaiting: false, localWaiting: false, diff --git a/lib/login/addon/login/template.hbs b/lib/login/addon/login/template.hbs index 28710c333..64e181f88 100644 --- a/lib/login/addon/login/template.hbs +++ b/lib/login/addon/login/template.hbs @@ -39,6 +39,7 @@ {{login-saml action=(action "started") provider="shibboleth" + socketId=socketId }} {{/if}} @@ -77,6 +78,7 @@ {{login-saml action=(action "started") provider="ping" + socketId=socketId }} {{/if}} @@ -84,6 +86,7 @@ {{login-saml action=(action "started") provider="adfs" + socketId=socketId }} {{/if}} @@ -91,6 +94,7 @@ {{login-saml action=(action "started") provider="okta" + socketId=socketId }} {{/if}} @@ -98,6 +102,7 @@ {{login-saml action=(action "started") provider="keycloak" + socketId=socketId }} {{/if}} {{/if}} diff --git a/lib/shared/addon/saml/service.js b/lib/shared/addon/saml/service.js index 82e39d4a6..451a3b481 100644 --- a/lib/shared/addon/saml/service.js +++ b/lib/shared/addon/saml/service.js @@ -9,11 +9,15 @@ export default Service.extend({ app: service(), intl: service(), - login(providerName) { + login(providerName, socketId) { const finalUrl = window.location.origin; const provider = get(this, 'access.providers').findBy('id', providerName); + const args = { + finalRedirectUrl: finalUrl, + socketId + }; - return provider.doAction('login', { finalRedirectUrl: finalUrl }).then( ( resp ) => { + return provider.doAction('login', args).then( ( resp ) => { return window.location.href = resp.idpRedirectUrl; }).catch(() => { return {