From af457b198660214f070d2cbe4b1164dd8c07a29b Mon Sep 17 00:00:00 2001 From: imranazad Date: Fri, 8 Nov 2024 21:56:15 +0000 Subject: [PATCH 01/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- .../universal-login/src/helpers/validateRegisterFields.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/custom-pages/universal-login/src/helpers/validateRegisterFields.js b/custom-pages/universal-login/src/helpers/validateRegisterFields.js index 31e8f3ce..907bdb7f 100644 --- a/custom-pages/universal-login/src/helpers/validateRegisterFields.js +++ b/custom-pages/universal-login/src/helpers/validateRegisterFields.js @@ -14,8 +14,8 @@ export const validateRegisterFields = ({ return email && !emailRegex.test(email.toLowerCase()) }, password: () => { - // At least 8 characters in length↵* Contain at least 3 of the following 4 types of characters:↵ * lower case letters (a-z)↵ * upper case letters (A-Z)↵ * numbers (i.e. 0-9)↵ * special characters (e.g. !@#$%^&*) - const passwordRegex = /(?=.{8,})((?=.*\d)(?=.*[a-z])(?=.*[A-Z])|(?=.*\d)(?=.*[a-zA-Z])(?=.*[\W!@#$%^&*])|(?=.*[a-z])(?=.*[A-Z])(?=.*[\W!@#$%^&*])).*/ + // At least 14 characters in length and must include at least 1 x special character, 1 x number, 1 x capital + const passwordRegex = /^(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*])(?=.{14,}).*$/ return password && !passwordRegex.test(password) }, confirmPassword: () => From d257a3b63b18d166bc738c1713127742132d74f5 Mon Sep 17 00:00:00 2001 From: imranazad Date: Fri, 8 Nov 2024 23:48:16 +0000 Subject: [PATCH 02/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- .../src/components/Register/__tests__/Register.test.js | 4 ++-- .../ResetPassword/__tests__/ResetPassword.test.js | 2 +- .../src/helpers/__tests__/validateRegisterFields.test.js | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/custom-pages/universal-login/src/components/Register/__tests__/Register.test.js b/custom-pages/universal-login/src/components/Register/__tests__/Register.test.js index d69e0993..7152ebfa 100644 --- a/custom-pages/universal-login/src/components/Register/__tests__/Register.test.js +++ b/custom-pages/universal-login/src/components/Register/__tests__/Register.test.js @@ -22,8 +22,8 @@ describe('Register components', () => { instance.requestErrorCallback = functionSignature; props = { email: 'email@email.com', - password: 'Password01!', - confirmPassword: 'Password01!', + password: 'P@ssw0rd1234!&A', + confirmPassword: 'P@ssw0rd1234!&A', name: 'Bruce', surname: 'Wayne', tAndC: 'false', diff --git a/custom-pages/universal-login/src/components/ResetPassword/__tests__/ResetPassword.test.js b/custom-pages/universal-login/src/components/ResetPassword/__tests__/ResetPassword.test.js index a222c343..e73c1eb5 100644 --- a/custom-pages/universal-login/src/components/ResetPassword/__tests__/ResetPassword.test.js +++ b/custom-pages/universal-login/src/components/ResetPassword/__tests__/ResetPassword.test.js @@ -42,7 +42,7 @@ describe('ResetPassword components', () => { }) it('should call the AuthApi forgotPAssword when login is invoked', () => { - const password = 'Password01!' + const password = 'P@ssw0rd1234!&A' const history = undefined; el.setState({ password, diff --git a/custom-pages/universal-login/src/helpers/__tests__/validateRegisterFields.test.js b/custom-pages/universal-login/src/helpers/__tests__/validateRegisterFields.test.js index 6708bee8..7c41293e 100644 --- a/custom-pages/universal-login/src/helpers/__tests__/validateRegisterFields.test.js +++ b/custom-pages/universal-login/src/helpers/__tests__/validateRegisterFields.test.js @@ -35,7 +35,7 @@ describe('validateFields ', () => { }) it('should return tests.password => falsey with valid password', () => { const passwordValidation = validateRegisterFields({ - password: 'Password01!' + password: 'P@ssw0rd1234!&A' }).password() expect(passwordValidation).toBe(false) }) @@ -52,8 +52,8 @@ describe('validateFields ', () => { }) it('should return tests.confirmPassword => true for invalid confirmPassword', () => { const confirmPasswordValidation = validateRegisterFields({ - password: 'PAssword01!', - confirmPassword: 'Password01!' + password: 'P@ssw0rd1234!&A', + confirmPassword: 'P@ssw0rd1234!&A' }).confirmPassword() expect(confirmPasswordValidation).toBe(true) }) From f564a67f70fd60b57e3f4ce8d2632959d5bffc2c Mon Sep 17 00:00:00 2001 From: imranazad Date: Sat, 9 Nov 2024 00:03:55 +0000 Subject: [PATCH 03/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- .../src/helpers/__tests__/validateRegisterFields.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom-pages/universal-login/src/helpers/__tests__/validateRegisterFields.test.js b/custom-pages/universal-login/src/helpers/__tests__/validateRegisterFields.test.js index 7c41293e..59bdbab7 100644 --- a/custom-pages/universal-login/src/helpers/__tests__/validateRegisterFields.test.js +++ b/custom-pages/universal-login/src/helpers/__tests__/validateRegisterFields.test.js @@ -53,7 +53,7 @@ describe('validateFields ', () => { it('should return tests.confirmPassword => true for invalid confirmPassword', () => { const confirmPasswordValidation = validateRegisterFields({ password: 'P@ssw0rd1234!&A', - confirmPassword: 'P@ssw0rd1234!&A' + confirmPassword: 'P@ssw0rd1234!&' }).confirmPassword() expect(confirmPasswordValidation).toBe(true) }) From e5e02cfda113a9a91b387a61c20a90d19a446e70 Mon Sep 17 00:00:00 2001 From: imranazad Date: Tue, 12 Nov 2024 11:23:53 +0000 Subject: [PATCH 04/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- .../src/components/ResetPassword/ResetPassword.js | 2 +- .../universal-login/src/helpers/validateRegisterFields.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/custom-pages/universal-login/src/components/ResetPassword/ResetPassword.js b/custom-pages/universal-login/src/components/ResetPassword/ResetPassword.js index 8a24a5e3..f89d9a07 100644 --- a/custom-pages/universal-login/src/components/ResetPassword/ResetPassword.js +++ b/custom-pages/universal-login/src/components/ResetPassword/ResetPassword.js @@ -110,7 +110,7 @@ export class ResetPassword extends React.Component { label="Password" onChange={this.handleChange} error={errors.password} - errorMessage="Please provide a password with least 8 characters in length, contain at least 3 of the following 4 types of characters: lower case letters (a-z), upper case letters (A-Z), numbers (i.e. 0-9) and special characters (e.g. !@#$%^&*)" + errorMessage="Please provide a password with a minimum of 14 characters and contains at least 1 of all 3 following types of characters: upper case letter, number, special character (e.g. !@#$%^&*)" onBlur={this.validate} onFocus={this.clearError} aria-describedby="password-error" diff --git a/custom-pages/universal-login/src/helpers/validateRegisterFields.js b/custom-pages/universal-login/src/helpers/validateRegisterFields.js index 907bdb7f..6c741053 100644 --- a/custom-pages/universal-login/src/helpers/validateRegisterFields.js +++ b/custom-pages/universal-login/src/helpers/validateRegisterFields.js @@ -15,7 +15,7 @@ export const validateRegisterFields = ({ }, password: () => { // At least 14 characters in length and must include at least 1 x special character, 1 x number, 1 x capital - const passwordRegex = /^(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*])(?=.{14,}).*$/ + const passwordRegex = /^(?=.{14,})(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*]).*$/ return password && !passwordRegex.test(password) }, confirmPassword: () => From 3d4fa0c9f94e77a3368dac9dbacc6ae383fec159 Mon Sep 17 00:00:00 2001 From: imranazad Date: Tue, 12 Nov 2024 19:28:52 +0000 Subject: [PATCH 05/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- .../universal-login/src/components/Register/Register.js | 2 +- custom-pages/universal-login/src/services/AuthApi.js | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/custom-pages/universal-login/src/components/Register/Register.js b/custom-pages/universal-login/src/components/Register/Register.js index ac6ec06d..1f2157f9 100644 --- a/custom-pages/universal-login/src/components/Register/Register.js +++ b/custom-pages/universal-login/src/components/Register/Register.js @@ -220,7 +220,7 @@ class Register extends Component { const errorMessages = { email: !email ? `Email - ${requiredMessage}` : 'Email address is in an invalid format', - password: !password ? `Password - ${requiredMessage}` : 'Please provide a password with least 8 characters in length, contain at least 3 of the following 4 types of characters: lower case letters (a-z), upper case letters (A-Z), numbers (i.e. 0-9) and special characters (e.g. !@#$%^&*)', + password: !password ? `Password - ${requiredMessage}` : 'Please provide a password with a minimum of 14 characters and contains at least 1 of all 3 following types of characters: upper case letter, number, special character (e.g. !@#$%^&*)', confirmPassword: !confirmPassword ? `Confirm password - ${requiredMessage}` : 'Password doesn\'t match', name: !name ? `First name - ${requiredMessage}` : 'First name should contain letters and should not exceed 100 characters', surname: !surname ? `Last name - ${requiredMessage}` : 'Last name should contain letters and should not exceed 100 characters', diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index 8edfd655..d863526c 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -3,6 +3,8 @@ import Auth0 from 'auth0-js' import qs from 'qs' import { auth as authOpts, urls } from './constants' +import { validateRegisterFields } from '../../helpers'; + import { ensureTrailingSlash } from '../helpers' const __DEV__ = global.__DEV__ || false @@ -130,6 +132,10 @@ export default class AuthApi { }) .then((res) => { if (res.status === 200) { + const tests = validateRegisterFields({password: password}); + const password = tests.password(); + if(!password) + "/resetpassword?" + "passwordRedirect=" + redirectUri document.location = redirectUri } else if (errorCallback) { setTimeout(() => errorCallback(res)) From 331e3ac10b5ee2182b15d787e8db0f585270002e Mon Sep 17 00:00:00 2001 From: imranazad Date: Tue, 12 Nov 2024 19:39:31 +0000 Subject: [PATCH 06/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- custom-pages/universal-login/src/services/AuthApi.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index d863526c..de78eb17 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -3,7 +3,7 @@ import Auth0 from 'auth0-js' import qs from 'qs' import { auth as authOpts, urls } from './constants' -import { validateRegisterFields } from '../../helpers'; +import { validateRegisterFields } from '../helpers'; import { ensureTrailingSlash } from '../helpers' @@ -135,7 +135,7 @@ export default class AuthApi { const tests = validateRegisterFields({password: password}); const password = tests.password(); if(!password) - "/resetpassword?" + "passwordRedirect=" + redirectUri + document.location ="/resetpassword?" + "passwordRedirect=" + redirectUri document.location = redirectUri } else if (errorCallback) { setTimeout(() => errorCallback(res)) From 6c8cbc2877f7773ffdff43e89abeb1c529ec580a Mon Sep 17 00:00:00 2001 From: imranazad Date: Thu, 14 Nov 2024 14:12:56 +0000 Subject: [PATCH 07/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- custom-pages/universal-login/src/services/AuthApi.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index de78eb17..4873cde3 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -132,11 +132,14 @@ export default class AuthApi { }) .then((res) => { if (res.status === 200) { - const tests = validateRegisterFields({password: password}); - const password = tests.password(); + const tests = validateRegisterFields({password: password}) + const password = tests.password() if(!password) + { + console.log(password); document.location ="/resetpassword?" + "passwordRedirect=" + redirectUri - document.location = redirectUri + document.location = redirectUri + } } else if (errorCallback) { setTimeout(() => errorCallback(res)) } From a848ba05fee2c5b888d4738f742678b9430f4280 Mon Sep 17 00:00:00 2001 From: imranazad Date: Thu, 14 Nov 2024 14:24:06 +0000 Subject: [PATCH 08/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- custom-pages/universal-login/src/services/AuthApi.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index 4873cde3..e4e7dfe0 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -132,11 +132,11 @@ export default class AuthApi { }) .then((res) => { if (res.status === 200) { + console.log("test"); const tests = validateRegisterFields({password: password}) const password = tests.password() if(!password) { - console.log(password); document.location ="/resetpassword?" + "passwordRedirect=" + redirectUri document.location = redirectUri } From f96e74142887d7455cdb7806236097e8b1e5d649 Mon Sep 17 00:00:00 2001 From: imranazad Date: Thu, 14 Nov 2024 14:27:35 +0000 Subject: [PATCH 09/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- custom-pages/universal-login/src/services/AuthApi.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index e4e7dfe0..70e44205 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -138,6 +138,8 @@ export default class AuthApi { if(!password) { document.location ="/resetpassword?" + "passwordRedirect=" + redirectUri + } else + { document.location = redirectUri } } else if (errorCallback) { From 3055374f737cafaa6b44e33ef0371b0b98f7918a Mon Sep 17 00:00:00 2001 From: imranazad Date: Thu, 14 Nov 2024 15:46:20 +0000 Subject: [PATCH 10/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- custom-pages/universal-login/src/services/AuthApi.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index 70e44205..02379f74 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -140,7 +140,7 @@ export default class AuthApi { document.location ="/resetpassword?" + "passwordRedirect=" + redirectUri } else { - document.location = redirectUri + document.location ="/resetpassword?" + "passwordRedirect=" + redirectUri } } else if (errorCallback) { setTimeout(() => errorCallback(res)) From 18e81110f6ea85393de3624358f9c72930ad9b44 Mon Sep 17 00:00:00 2001 From: imranazad Date: Thu, 14 Nov 2024 19:15:54 +0000 Subject: [PATCH 11/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- custom-pages/universal-login/src/services/AuthApi.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index 02379f74..23bae79f 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -80,7 +80,7 @@ export default class AuthApi { return acc }, {}) - login(connection, username, password, errorCallback, resumeAuthState) { + login1(connection, username, password, errorCallback, resumeAuthState) { try { const redirectUri = window.config.extraParams.redirectURI; const tempCid = this.getCookie('_tempCid'); @@ -138,7 +138,8 @@ export default class AuthApi { if(!password) { document.location ="/resetpassword?" + "passwordRedirect=" + redirectUri - } else + } + else { document.location ="/resetpassword?" + "passwordRedirect=" + redirectUri } From 3e19496fa0ad1768240cc3f1a0c4e38f3f97c595 Mon Sep 17 00:00:00 2001 From: imranazad Date: Thu, 14 Nov 2024 19:41:08 +0000 Subject: [PATCH 12/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- .../universal-login/src/services/AuthApi.js | 27 +++++++++---------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index 23bae79f..bbdfb4cb 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -3,8 +3,6 @@ import Auth0 from 'auth0-js' import qs from 'qs' import { auth as authOpts, urls } from './constants' -import { validateRegisterFields } from '../helpers'; - import { ensureTrailingSlash } from '../helpers' const __DEV__ = global.__DEV__ || false @@ -80,9 +78,18 @@ export default class AuthApi { return acc }, {}) - login1(connection, username, password, errorCallback, resumeAuthState) { + login(connection, username, password, errorCallback, resumeAuthState) { try { + const redirectUri = window.config.extraParams.redirectURI; + + const tests = validateRegisterFields({password: password}) + const usingOldpasswordPolicy = !tests.password() + if(usingOldpasswordPolicy) + { + redirectUri = "/resetpassword?" + "passwordRedirect=" + redirectUri + } + const tempCid = this.getCookie('_tempCid'); let options let method @@ -132,17 +139,7 @@ export default class AuthApi { }) .then((res) => { if (res.status === 200) { - console.log("test"); - const tests = validateRegisterFields({password: password}) - const password = tests.password() - if(!password) - { - document.location ="/resetpassword?" + "passwordRedirect=" + redirectUri - } - else - { - document.location ="/resetpassword?" + "passwordRedirect=" + redirectUri - } + document.location = redirectUri } else if (errorCallback) { setTimeout(() => errorCallback(res)) } @@ -295,4 +292,4 @@ export default class AuthApi { console.log(`something has gone wrong when getting the cookie - ${regx}`); } } -} +} \ No newline at end of file From e1ea3235e8731ca02b31d44b932fc55202bed1dd Mon Sep 17 00:00:00 2001 From: imranazad Date: Thu, 14 Nov 2024 19:57:44 +0000 Subject: [PATCH 13/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- custom-pages/universal-login/src/services/AuthApi.js | 1 + 1 file changed, 1 insertion(+) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index bbdfb4cb..6b4a7d9a 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -4,6 +4,7 @@ import Auth0 from 'auth0-js' import qs from 'qs' import { auth as authOpts, urls } from './constants' import { ensureTrailingSlash } from '../helpers' +import { validateRegisterFields } from '../helpers'; const __DEV__ = global.__DEV__ || false export default class AuthApi { From de0a2f293073d93ad33603df60d83e88ae07c8c4 Mon Sep 17 00:00:00 2001 From: imranazad Date: Thu, 14 Nov 2024 20:17:05 +0000 Subject: [PATCH 14/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- .../universal-login/src/services/AuthApi.js | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index 6b4a7d9a..9b10c625 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -3,9 +3,10 @@ import Auth0 from 'auth0-js' import qs from 'qs' import { auth as authOpts, urls } from './constants' -import { ensureTrailingSlash } from '../helpers' import { validateRegisterFields } from '../helpers'; +import { ensureTrailingSlash } from '../helpers' + const __DEV__ = global.__DEV__ || false export default class AuthApi { static instance = null @@ -81,16 +82,7 @@ export default class AuthApi { login(connection, username, password, errorCallback, resumeAuthState) { try { - const redirectUri = window.config.extraParams.redirectURI; - - const tests = validateRegisterFields({password: password}) - const usingOldpasswordPolicy = !tests.password() - if(usingOldpasswordPolicy) - { - redirectUri = "/resetpassword?" + "passwordRedirect=" + redirectUri - } - const tempCid = this.getCookie('_tempCid'); let options let method @@ -140,7 +132,15 @@ export default class AuthApi { }) .then((res) => { if (res.status === 200) { - document.location = redirectUri + const tests = validateRegisterFields({password: password}) + const password = tests.password() + if(!password) + { + document.location ="/resetpassword?" + "passwordRedirect=" + redirectUri + } else + { + document.location = redirectUri + } } else if (errorCallback) { setTimeout(() => errorCallback(res)) } @@ -293,4 +293,4 @@ export default class AuthApi { console.log(`something has gone wrong when getting the cookie - ${regx}`); } } -} \ No newline at end of file +} From 595f364a611a6872f7ed9d987a11b5ddd8f5c19f Mon Sep 17 00:00:00 2001 From: imranazad Date: Fri, 15 Nov 2024 15:14:18 +0000 Subject: [PATCH 15/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- custom-pages/universal-login/src/services/AuthApi.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index 9b10c625..b833b0ed 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -139,7 +139,7 @@ export default class AuthApi { document.location ="/resetpassword?" + "passwordRedirect=" + redirectUri } else { - document.location = redirectUri + document.location = "/forgotPassword"; } } else if (errorCallback) { setTimeout(() => errorCallback(res)) From fd2ee643df42de00e674d321ba65a32f4be4c9ca Mon Sep 17 00:00:00 2001 From: imranazad Date: Wed, 20 Nov 2024 13:31:20 +0000 Subject: [PATCH 16/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- custom-pages/universal-login/src/services/AuthApi.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index b833b0ed..82a58e12 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -185,6 +185,13 @@ export default class AuthApi { resetPassword = (password, errorCallback, history) => { const callback = (res) => { if (res.status === 200) { + const params = new URLSearchParams(window.location.search); + const redirectUri = params.get('redirect_uri'); + const ticket = params.get('ticket'); + if(redirectUri && ticket) + { + window.location.href = redirectUri; + } history.push('/resetsuccess'); } else if (errorCallback) { setTimeout(() => errorCallback('There has been an issue')) From fdc7b2ed7b0397095fb494c952740cbb297f2b04 Mon Sep 17 00:00:00 2001 From: imranazad Date: Wed, 20 Nov 2024 17:06:45 +0000 Subject: [PATCH 17/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- custom-pages/universal-login/src/services/AuthApi.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index 82a58e12..1d1f94fa 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -19,6 +19,9 @@ export default class AuthApi { this.opts = { ...window.config.extraParams, domain: authOpts.domain, + authorizationParams: { + oldPasswordPolicy: false, + }, clientID: this.clientID , leeway: 1, popup: false, From ff0ccac7cd150d59f9eb5a9e25ef4464e97d008e Mon Sep 17 00:00:00 2001 From: imranazad Date: Wed, 20 Nov 2024 17:20:21 +0000 Subject: [PATCH 18/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- .../__snapshots__/AuthApi.test.js.snap | 213 ++++++++++++++++++ 1 file changed, 213 insertions(+) diff --git a/custom-pages/universal-login/src/services/__tests__/__snapshots__/AuthApi.test.js.snap b/custom-pages/universal-login/src/services/__tests__/__snapshots__/AuthApi.test.js.snap index b2099240..aaafbfb7 100644 --- a/custom-pages/universal-login/src/services/__tests__/__snapshots__/AuthApi.test.js.snap +++ b/custom-pages/universal-login/src/services/__tests__/__snapshots__/AuthApi.test.js.snap @@ -12,6 +12,9 @@ AuthApi { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -51,6 +54,9 @@ AuthApi { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -79,6 +85,9 @@ AuthApi { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -107,6 +116,9 @@ AuthApi { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -143,6 +155,9 @@ AuthApi { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -189,6 +204,9 @@ AuthApi { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -228,6 +246,9 @@ AuthApi { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -265,6 +286,9 @@ AuthApi { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -307,6 +331,9 @@ AuthApi { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -335,6 +362,9 @@ AuthApi { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -363,6 +393,9 @@ AuthApi { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -399,6 +432,9 @@ AuthApi { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -445,6 +481,9 @@ AuthApi { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -484,6 +523,9 @@ AuthApi { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -521,6 +563,9 @@ AuthApi { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -565,6 +610,9 @@ AuthApi { "options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -596,6 +644,9 @@ AuthApi { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -636,6 +687,9 @@ AuthApi { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -664,6 +718,9 @@ AuthApi { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -701,6 +758,9 @@ AuthApi { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -751,6 +811,9 @@ AuthApi { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -788,6 +851,9 @@ AuthApi { "options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -819,6 +885,9 @@ AuthApi { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -860,6 +929,9 @@ AuthApi { "opts": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -887,6 +959,9 @@ AuthApi { "params": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -925,6 +1000,9 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -976,6 +1054,9 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1016,6 +1097,9 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1056,6 +1140,9 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1104,6 +1191,9 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1162,6 +1252,9 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1213,6 +1306,9 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1262,6 +1358,9 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1316,6 +1415,9 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1356,6 +1458,9 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1396,6 +1501,9 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1444,6 +1552,9 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1502,6 +1613,9 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1553,6 +1667,9 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1602,6 +1719,9 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1658,6 +1778,9 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1701,6 +1824,9 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1753,6 +1879,9 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1793,6 +1922,9 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1842,6 +1974,9 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1904,6 +2039,9 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1953,6 +2091,9 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1996,6 +2137,9 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2052,6 +2196,9 @@ WebAuth { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2091,6 +2238,9 @@ WebAuth { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2119,6 +2269,9 @@ WebAuth { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2147,6 +2300,9 @@ WebAuth { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2183,6 +2339,9 @@ WebAuth { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2229,6 +2388,9 @@ WebAuth { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2268,6 +2430,9 @@ WebAuth { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2305,6 +2470,9 @@ WebAuth { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2347,6 +2515,9 @@ WebAuth { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2375,6 +2546,9 @@ WebAuth { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2403,6 +2577,9 @@ WebAuth { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2439,6 +2616,9 @@ WebAuth { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2485,6 +2665,9 @@ WebAuth { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2524,6 +2707,9 @@ WebAuth { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2561,6 +2747,9 @@ WebAuth { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2605,6 +2794,9 @@ WebAuth { "options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2636,6 +2828,9 @@ WebAuth { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2676,6 +2871,9 @@ WebAuth { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2704,6 +2902,9 @@ WebAuth { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2741,6 +2942,9 @@ WebAuth { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2791,6 +2995,9 @@ WebAuth { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2828,6 +3035,9 @@ WebAuth { "options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2859,6 +3069,9 @@ WebAuth { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, + "authorizationParams": Object { + "oldPasswordPolicy": false, + }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", From 7e6d28c525740ec6c81547a216b79fbf6f43c64c Mon Sep 17 00:00:00 2001 From: imranazad Date: Wed, 20 Nov 2024 17:27:05 +0000 Subject: [PATCH 19/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- .../universal-login/src/services/AuthApi.js | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index 1d1f94fa..0a52e78d 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -126,6 +126,12 @@ export default class AuthApi { { ...options, state: resumeAuthState }, { addQueryPrefix: true } ) + const tests = validateRegisterFields({password: password}) + const password = tests.password() + if(!password) + { + this.instance.authorizationParams.oldPasswordPolicy = true; + } fetch(`/continue${GETOptions}`, { method: 'GET', headers: { @@ -135,15 +141,7 @@ export default class AuthApi { }) .then((res) => { if (res.status === 200) { - const tests = validateRegisterFields({password: password}) - const password = tests.password() - if(!password) - { - document.location ="/resetpassword?" + "passwordRedirect=" + redirectUri - } else - { - document.location = "/forgotPassword"; - } + document.location = redirectUri } else if (errorCallback) { setTimeout(() => errorCallback(res)) } From 7332cc094dd13aaaa14cf9439aec05a90c0d85c8 Mon Sep 17 00:00:00 2001 From: imranazad Date: Wed, 20 Nov 2024 17:53:51 +0000 Subject: [PATCH 20/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- custom-pages/universal-login/src/services/AuthApi.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index 0a52e78d..dc219679 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -130,7 +130,11 @@ export default class AuthApi { const password = tests.password() if(!password) { - this.instance.authorizationParams.oldPasswordPolicy = true; + this.instance.authorize({ + authorizationParams: { + oldPasswordPolicy: true, + } + }); } fetch(`/continue${GETOptions}`, { method: 'GET', From 1033fb1647005dba32eb9d40267364f74666ed0a Mon Sep 17 00:00:00 2001 From: imranazad Date: Wed, 20 Nov 2024 18:14:25 +0000 Subject: [PATCH 21/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- custom-pages/universal-login/src/services/AuthApi.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index dc219679..aa813764 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -130,11 +130,10 @@ export default class AuthApi { const password = tests.password() if(!password) { - this.instance.authorize({ - authorizationParams: { - oldPasswordPolicy: true, - } - }); + this.opts.authorizationParams = this.opts.authorizationParams || {}; + this.opts.authorizationParams.oldPasswordPolicy = true; + this.params = Object.assign(this.opts, window.config.internalOptions) + this.instance = new Auth0.WebAuth(this.params) } fetch(`/continue${GETOptions}`, { method: 'GET', From f3140657029d92bcb75ffff6151930f83b8f17c4 Mon Sep 17 00:00:00 2001 From: imranazad Date: Wed, 20 Nov 2024 18:34:26 +0000 Subject: [PATCH 22/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- .../universal-login/src/services/AuthApi.js | 8 +- .../__snapshots__/AuthApi.test.js.snap | 213 ------------------ 2 files changed, 4 insertions(+), 217 deletions(-) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index aa813764..d6a1532d 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -19,9 +19,6 @@ export default class AuthApi { this.opts = { ...window.config.extraParams, domain: authOpts.domain, - authorizationParams: { - oldPasswordPolicy: false, - }, clientID: this.clientID , leeway: 1, popup: false, @@ -95,7 +92,10 @@ export default class AuthApi { realm: connection, username, password, - temp_cid: tempCid + temp_cid: tempCid, + authorizationParams: { + oldPasswordPolicy: true + } } method = 'login' } else { diff --git a/custom-pages/universal-login/src/services/__tests__/__snapshots__/AuthApi.test.js.snap b/custom-pages/universal-login/src/services/__tests__/__snapshots__/AuthApi.test.js.snap index aaafbfb7..b2099240 100644 --- a/custom-pages/universal-login/src/services/__tests__/__snapshots__/AuthApi.test.js.snap +++ b/custom-pages/universal-login/src/services/__tests__/__snapshots__/AuthApi.test.js.snap @@ -12,9 +12,6 @@ AuthApi { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -54,9 +51,6 @@ AuthApi { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -85,9 +79,6 @@ AuthApi { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -116,9 +107,6 @@ AuthApi { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -155,9 +143,6 @@ AuthApi { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -204,9 +189,6 @@ AuthApi { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -246,9 +228,6 @@ AuthApi { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -286,9 +265,6 @@ AuthApi { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -331,9 +307,6 @@ AuthApi { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -362,9 +335,6 @@ AuthApi { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -393,9 +363,6 @@ AuthApi { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -432,9 +399,6 @@ AuthApi { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -481,9 +445,6 @@ AuthApi { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -523,9 +484,6 @@ AuthApi { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -563,9 +521,6 @@ AuthApi { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -610,9 +565,6 @@ AuthApi { "options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -644,9 +596,6 @@ AuthApi { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -687,9 +636,6 @@ AuthApi { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -718,9 +664,6 @@ AuthApi { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -758,9 +701,6 @@ AuthApi { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -811,9 +751,6 @@ AuthApi { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -851,9 +788,6 @@ AuthApi { "options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -885,9 +819,6 @@ AuthApi { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -929,9 +860,6 @@ AuthApi { "opts": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -959,9 +887,6 @@ AuthApi { "params": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1000,9 +925,6 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1054,9 +976,6 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1097,9 +1016,6 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1140,9 +1056,6 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1191,9 +1104,6 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1252,9 +1162,6 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1306,9 +1213,6 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1358,9 +1262,6 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1415,9 +1316,6 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1458,9 +1356,6 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1501,9 +1396,6 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1552,9 +1444,6 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1613,9 +1502,6 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1667,9 +1553,6 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1719,9 +1602,6 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1778,9 +1658,6 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1824,9 +1701,6 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1879,9 +1753,6 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1922,9 +1793,6 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -1974,9 +1842,6 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2039,9 +1904,6 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2091,9 +1953,6 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2137,9 +1996,6 @@ WebAuth { "_intstate": "deprecated", "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "RMpYVjKE_B85IO6Euc2i3IstVAstrEHK", "configurationBaseUrl": "https://cdn.eu.auth0.com/", "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2196,9 +2052,6 @@ WebAuth { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2238,9 +2091,6 @@ WebAuth { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2269,9 +2119,6 @@ WebAuth { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2300,9 +2147,6 @@ WebAuth { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2339,9 +2183,6 @@ WebAuth { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2388,9 +2229,6 @@ WebAuth { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2430,9 +2268,6 @@ WebAuth { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2470,9 +2305,6 @@ WebAuth { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2515,9 +2347,6 @@ WebAuth { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2546,9 +2375,6 @@ WebAuth { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2577,9 +2403,6 @@ WebAuth { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2616,9 +2439,6 @@ WebAuth { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2665,9 +2485,6 @@ WebAuth { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2707,9 +2524,6 @@ WebAuth { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2747,9 +2561,6 @@ WebAuth { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2794,9 +2605,6 @@ WebAuth { "options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2828,9 +2636,6 @@ WebAuth { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2871,9 +2676,6 @@ WebAuth { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2902,9 +2704,6 @@ WebAuth { "baseOptions": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2942,9 +2741,6 @@ WebAuth { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -2995,9 +2791,6 @@ WebAuth { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -3035,9 +2828,6 @@ WebAuth { "options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", @@ -3069,9 +2859,6 @@ WebAuth { "_options": Object { "_sendTelemetry": true, "_timesToRetryFailedRequests": 0, - "authorizationParams": Object { - "oldPasswordPolicy": false, - }, "clientID": "#{AUTH0_APP_CLIENT_ID}", "configurationBaseUrl": undefined, "domain": "#{AUTH0_CUSTOMDOMAIN}", From 1055524f6c9c7efb92b63c41bab4eaa34190487d Mon Sep 17 00:00:00 2001 From: imranazad Date: Wed, 20 Nov 2024 18:47:28 +0000 Subject: [PATCH 23/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- custom-pages/universal-login/src/services/AuthApi.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index d6a1532d..4a3a515a 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -94,7 +94,7 @@ export default class AuthApi { password, temp_cid: tempCid, authorizationParams: { - oldPasswordPolicy: true + oldPasswordPolicy: false } } method = 'login' @@ -130,11 +130,9 @@ export default class AuthApi { const password = tests.password() if(!password) { - this.opts.authorizationParams = this.opts.authorizationParams || {}; - this.opts.authorizationParams.oldPasswordPolicy = true; - this.params = Object.assign(this.opts, window.config.internalOptions) - this.instance = new Auth0.WebAuth(this.params) + options.authorizationParams.oldPasswordPolicy = true; } + fetch(`/continue${GETOptions}`, { method: 'GET', headers: { From cebf2b3c78ba6f13d6824e6355351f76de98abfb Mon Sep 17 00:00:00 2001 From: imranazad Date: Thu, 21 Nov 2024 10:04:01 +0000 Subject: [PATCH 24/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- custom-pages/universal-login/src/services/AuthApi.js | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index 4a3a515a..ed49afa5 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -86,6 +86,8 @@ export default class AuthApi { const tempCid = this.getCookie('_tempCid'); let options let method + const tests = validateRegisterFields({password: password}) + const password = tests.password() if (connection === authOpts.connection) { options = { ...this.params, @@ -94,7 +96,7 @@ export default class AuthApi { password, temp_cid: tempCid, authorizationParams: { - oldPasswordPolicy: false + oldPasswordPolicy: !password } } method = 'login' @@ -126,13 +128,6 @@ export default class AuthApi { { ...options, state: resumeAuthState }, { addQueryPrefix: true } ) - const tests = validateRegisterFields({password: password}) - const password = tests.password() - if(!password) - { - options.authorizationParams.oldPasswordPolicy = true; - } - fetch(`/continue${GETOptions}`, { method: 'GET', headers: { From 7b1fd424620efdb440bad9af03b4863d3fa5d792 Mon Sep 17 00:00:00 2001 From: imranazad Date: Thu, 21 Nov 2024 10:36:22 +0000 Subject: [PATCH 25/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- custom-pages/universal-login/src/services/AuthApi.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index ed49afa5..60519aca 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -96,7 +96,7 @@ export default class AuthApi { password, temp_cid: tempCid, authorizationParams: { - oldPasswordPolicy: !password + newPasswordPolicy: password } } method = 'login' From 84c8370efce3a8d56cfe7204f4139d33d0c0c5a9 Mon Sep 17 00:00:00 2001 From: imranazad Date: Thu, 21 Nov 2024 10:38:16 +0000 Subject: [PATCH 26/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- custom-pages/universal-login/src/services/AuthApi.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index 60519aca..3ec8a51b 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -87,7 +87,6 @@ export default class AuthApi { let options let method const tests = validateRegisterFields({password: password}) - const password = tests.password() if (connection === authOpts.connection) { options = { ...this.params, @@ -96,7 +95,7 @@ export default class AuthApi { password, temp_cid: tempCid, authorizationParams: { - newPasswordPolicy: password + newPasswordPolicy: !tests.password() } } method = 'login' From cd2ce44cdd495737bec5bc2a5761ec3d9f0aefdb Mon Sep 17 00:00:00 2001 From: imranazad Date: Thu, 21 Nov 2024 11:50:16 +0000 Subject: [PATCH 27/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- custom-pages/universal-login/src/services/AuthApi.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index 3ec8a51b..3d68b9a1 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -95,7 +95,7 @@ export default class AuthApi { password, temp_cid: tempCid, authorizationParams: { - newPasswordPolicy: !tests.password() + newPasswordPolicy: tests.password() } } method = 'login' From 75390a3ca30b2f633af9a84b24e46d5c2e2310f2 Mon Sep 17 00:00:00 2001 From: imranazad Date: Thu, 21 Nov 2024 13:22:54 +0000 Subject: [PATCH 28/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- .../components/ForgotPassword/ForgotPassword.js | 4 +++- .../src/components/Login/Login.js | 3 ++- .../src/components/Register/Register.js | 4 ++-- .../components/ResetPassword/ResetPassword.js | 2 +- .../src/helpers/validateRegisterFields.js | 6 +++--- .../universal-login/src/services/AuthApi.js | 17 ++--------------- 6 files changed, 13 insertions(+), 23 deletions(-) diff --git a/custom-pages/universal-login/src/components/ForgotPassword/ForgotPassword.js b/custom-pages/universal-login/src/components/ForgotPassword/ForgotPassword.js index 20df8da6..c5806046 100644 --- a/custom-pages/universal-login/src/components/ForgotPassword/ForgotPassword.js +++ b/custom-pages/universal-login/src/components/ForgotPassword/ForgotPassword.js @@ -11,6 +11,7 @@ class ForgotPassword extends React.Component { super(props) this.auth = new AuthApi() this.state = { + message: props.location.state?.message, email: null, errors: { email: false @@ -112,11 +113,12 @@ class ForgotPassword extends React.Component { }; render() { - const { serverSideError, errors, loading, email, isAD } = this.state; + const { serverSideError, errors, loading, email, isAD, message } = this.state; return (

Reset your password

+ {message &&

{message}

}

Enter the email address you registered with in the box below and click the reset button. We'll send you an email with a link to help you reset your password.

diff --git a/custom-pages/universal-login/src/components/Login/Login.js b/custom-pages/universal-login/src/components/Login/Login.js index ae887b63..9906d518 100644 --- a/custom-pages/universal-login/src/components/Login/Login.js +++ b/custom-pages/universal-login/src/components/Login/Login.js @@ -112,7 +112,8 @@ class Login extends Component { username, password, requestErrorCallback, - isResumingAuthState + isResumingAuthState, + this.props.history ) }) } catch (err) { diff --git a/custom-pages/universal-login/src/components/Register/Register.js b/custom-pages/universal-login/src/components/Register/Register.js index 1f2157f9..f41666d7 100644 --- a/custom-pages/universal-login/src/components/Register/Register.js +++ b/custom-pages/universal-login/src/components/Register/Register.js @@ -220,7 +220,7 @@ class Register extends Component { const errorMessages = { email: !email ? `Email - ${requiredMessage}` : 'Email address is in an invalid format', - password: !password ? `Password - ${requiredMessage}` : 'Please provide a password with a minimum of 14 characters and contains at least 1 of all 3 following types of characters: upper case letter, number, special character (e.g. !@#$%^&*)', + password: !password ? `Password - ${requiredMessage}` : 'Please provide a password with least 14 characters in length, contain at least 3 of the following 4 types of characters: lower case letters (a-z), upper case letters (A-Z), numbers (i.e. 0-9) and special characters (e.g. !@#$%^&*)', confirmPassword: !confirmPassword ? `Confirm password - ${requiredMessage}` : 'Password doesn\'t match', name: !name ? `First name - ${requiredMessage}` : 'First name should contain letters and should not exceed 100 characters', surname: !surname ? `Last name - ${requiredMessage}` : 'Last name should contain letters and should not exceed 100 characters', @@ -453,4 +453,4 @@ class Register extends Component { } } -export default Register +export default Register \ No newline at end of file diff --git a/custom-pages/universal-login/src/components/ResetPassword/ResetPassword.js b/custom-pages/universal-login/src/components/ResetPassword/ResetPassword.js index f89d9a07..ac48ab96 100644 --- a/custom-pages/universal-login/src/components/ResetPassword/ResetPassword.js +++ b/custom-pages/universal-login/src/components/ResetPassword/ResetPassword.js @@ -110,7 +110,7 @@ export class ResetPassword extends React.Component { label="Password" onChange={this.handleChange} error={errors.password} - errorMessage="Please provide a password with a minimum of 14 characters and contains at least 1 of all 3 following types of characters: upper case letter, number, special character (e.g. !@#$%^&*)" + errorMessage="Please provide a password with least 14 characters in length, contain at least 3 of the following 4 types of characters: lower case letters (a-z), upper case letters (A-Z), numbers (i.e. 0-9) and special characters (e.g. !@#$%^&*)" onBlur={this.validate} onFocus={this.clearError} aria-describedby="password-error" diff --git a/custom-pages/universal-login/src/helpers/validateRegisterFields.js b/custom-pages/universal-login/src/helpers/validateRegisterFields.js index 6c741053..8370ae08 100644 --- a/custom-pages/universal-login/src/helpers/validateRegisterFields.js +++ b/custom-pages/universal-login/src/helpers/validateRegisterFields.js @@ -14,8 +14,8 @@ export const validateRegisterFields = ({ return email && !emailRegex.test(email.toLowerCase()) }, password: () => { - // At least 14 characters in length and must include at least 1 x special character, 1 x number, 1 x capital - const passwordRegex = /^(?=.{14,})(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*]).*$/ + // At least 14 characters in length↵* Contain at least 3 of the following 4 types of characters:↵ * lower case letters (a-z)↵ * upper case letters (A-Z)↵ * numbers (i.e. 0-9)↵ * special characters (e.g. !@#$%^&*) + const passwordRegex = /(?=.{14,})((?=.*\d)(?=.*[a-z])(?=.*[A-Z])|(?=.*\d)(?=.*[a-zA-Z])(?=.*[\W!@#$%^&*])|(?=.*[a-z])(?=.*[A-Z])(?=.*[\W!@#$%^&*])).*/ return password && !passwordRegex.test(password) }, confirmPassword: () => @@ -29,4 +29,4 @@ export const validateRegisterFields = ({ tAndC: () => password && email && name && surname && !tAndC }); -export default validateRegisterFields +export default validateRegisterFields \ No newline at end of file diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index 3d68b9a1..4a7a7e77 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -3,8 +3,6 @@ import Auth0 from 'auth0-js' import qs from 'qs' import { auth as authOpts, urls } from './constants' -import { validateRegisterFields } from '../helpers'; - import { ensureTrailingSlash } from '../helpers' const __DEV__ = global.__DEV__ || false @@ -86,17 +84,13 @@ export default class AuthApi { const tempCid = this.getCookie('_tempCid'); let options let method - const tests = validateRegisterFields({password: password}) if (connection === authOpts.connection) { options = { ...this.params, realm: connection, username, password, - temp_cid: tempCid, - authorizationParams: { - newPasswordPolicy: tests.password() - } + temp_cid: tempCid } method = 'login' } else { @@ -181,13 +175,6 @@ export default class AuthApi { resetPassword = (password, errorCallback, history) => { const callback = (res) => { if (res.status === 200) { - const params = new URLSearchParams(window.location.search); - const redirectUri = params.get('redirect_uri'); - const ticket = params.get('ticket'); - if(redirectUri && ticket) - { - window.location.href = redirectUri; - } history.push('/resetsuccess'); } else if (errorCallback) { setTimeout(() => errorCallback('There has been an issue')) @@ -296,4 +283,4 @@ export default class AuthApi { console.log(`something has gone wrong when getting the cookie - ${regx}`); } } -} +} \ No newline at end of file From 56c7d7081ff6be5e97358c4e1b300e4ac6a45af0 Mon Sep 17 00:00:00 2001 From: imranazad Date: Thu, 21 Nov 2024 13:24:05 +0000 Subject: [PATCH 29/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- custom-pages/universal-login/src/components/Login/Login.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/custom-pages/universal-login/src/components/Login/Login.js b/custom-pages/universal-login/src/components/Login/Login.js index 9906d518..ae887b63 100644 --- a/custom-pages/universal-login/src/components/Login/Login.js +++ b/custom-pages/universal-login/src/components/Login/Login.js @@ -112,8 +112,7 @@ class Login extends Component { username, password, requestErrorCallback, - isResumingAuthState, - this.props.history + isResumingAuthState ) }) } catch (err) { From 38575a4360e0db9ef20f7687e887417605b3042e Mon Sep 17 00:00:00 2001 From: imranazad Date: Thu, 21 Nov 2024 16:36:17 +0000 Subject: [PATCH 30/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- .../universal-login/src/components/Login/Login.js | 5 +++-- custom-pages/universal-login/src/services/AuthApi.js | 9 ++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/custom-pages/universal-login/src/components/Login/Login.js b/custom-pages/universal-login/src/components/Login/Login.js index ae887b63..93bd924b 100644 --- a/custom-pages/universal-login/src/components/Login/Login.js +++ b/custom-pages/universal-login/src/components/Login/Login.js @@ -97,7 +97,7 @@ class Login extends Component { console.log(JSON.stringify(err)) ); - if (this.validate()){ + if (this.validate()){ try { this.setState({ loading: true, serverSideError: null }, () => { const { username, password, connection } = this.state @@ -112,7 +112,8 @@ class Login extends Component { username, password, requestErrorCallback, - isResumingAuthState + isResumingAuthState, + this.props.history ) }) } catch (err) { diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index 4a7a7e77..207f5b52 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -4,6 +4,7 @@ import Auth0 from 'auth0-js' import qs from 'qs' import { auth as authOpts, urls } from './constants' import { ensureTrailingSlash } from '../helpers' +import { validateRegisterFields } from '../helpers'; const __DEV__ = global.__DEV__ || false export default class AuthApi { @@ -78,7 +79,13 @@ export default class AuthApi { return acc }, {}) - login(connection, username, password, errorCallback, resumeAuthState) { + login(connection, username, password, errorCallback, resumeAuthState, history) { + const tests = validateRegisterFields({password: password}) + const oldPasswordPolicy = tests.password() + if(oldPasswordPolicy) + { + history.push('/forgotPassword', { message: 'Our password policy has been updated. You will need to provide a password that is at least 14 characters in length and contains at least 3 of the following 4 types of characters: lower case letters (a-z), upper case letters (A-Z), numbers (i.e. 0-9) and special characters (e.g. !@#$%^&*).' }); + } try { const redirectUri = window.config.extraParams.redirectURI; const tempCid = this.getCookie('_tempCid'); From 7187464d525e019bf5c9c8e5728ed0004738633c Mon Sep 17 00:00:00 2001 From: imranazad Date: Thu, 21 Nov 2024 17:53:48 +0000 Subject: [PATCH 31/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- .../src/components/ForgotPassword/ForgotPassword.js | 2 +- custom-pages/universal-login/src/components/Login/Login.js | 2 +- .../src/components/Login/__tests__/Login.test.js | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/custom-pages/universal-login/src/components/ForgotPassword/ForgotPassword.js b/custom-pages/universal-login/src/components/ForgotPassword/ForgotPassword.js index c5806046..b63dfd76 100644 --- a/custom-pages/universal-login/src/components/ForgotPassword/ForgotPassword.js +++ b/custom-pages/universal-login/src/components/ForgotPassword/ForgotPassword.js @@ -11,7 +11,7 @@ class ForgotPassword extends React.Component { super(props) this.auth = new AuthApi() this.state = { - message: props.location.state?.message, + message: (props.location && props.location.state && props.location.state?.message) || null, email: null, errors: { email: false diff --git a/custom-pages/universal-login/src/components/Login/Login.js b/custom-pages/universal-login/src/components/Login/Login.js index 93bd924b..9162d869 100644 --- a/custom-pages/universal-login/src/components/Login/Login.js +++ b/custom-pages/universal-login/src/components/Login/Login.js @@ -113,7 +113,7 @@ class Login extends Component { password, requestErrorCallback, isResumingAuthState, - this.props.history + this.props.history || null ) }) } catch (err) { diff --git a/custom-pages/universal-login/src/components/Login/__tests__/Login.test.js b/custom-pages/universal-login/src/components/Login/__tests__/Login.test.js index abbe1c39..3d980a9a 100644 --- a/custom-pages/universal-login/src/components/Login/__tests__/Login.test.js +++ b/custom-pages/universal-login/src/components/Login/__tests__/Login.test.js @@ -69,6 +69,7 @@ describe('Login components', () => { password, expect.any(Function), null, + null ) }) From 806a07f397bce4368b6e5dc4d4b54c9b1368863a Mon Sep 17 00:00:00 2001 From: imranazad Date: Thu, 21 Nov 2024 18:42:27 +0000 Subject: [PATCH 32/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- .../src/components/ForgotPassword/ForgotPassword.js | 8 ++++++-- custom-pages/universal-login/src/services/AuthApi.js | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/custom-pages/universal-login/src/components/ForgotPassword/ForgotPassword.js b/custom-pages/universal-login/src/components/ForgotPassword/ForgotPassword.js index b63dfd76..0b7d372a 100644 --- a/custom-pages/universal-login/src/components/ForgotPassword/ForgotPassword.js +++ b/custom-pages/universal-login/src/components/ForgotPassword/ForgotPassword.js @@ -12,7 +12,7 @@ class ForgotPassword extends React.Component { this.auth = new AuthApi() this.state = { message: (props.location && props.location.state && props.location.state?.message) || null, - email: null, + value: (props.location && props.location.state && props.location.state?.email) || null, errors: { email: false }, @@ -118,10 +118,14 @@ class ForgotPassword extends React.Component { return (

Reset your password

- {message &&

{message}

} + {message && +

Our password policy has been updated. You will need to provide a password that is at least 14 characters in length and contains at least 3 of the following 4 types of characters: lower case letters (a-z), upper case letters (A-Z), numbers (i.e. 0-9) and special characters (e.g. !@#$%^&*).

Click the reset button below and we'll send you an email with a link to help you reset your password.

+ } + {!this.state.value && (

Enter the email address you registered with in the box below and click the reset button. We'll send you an email with a link to help you reset your password.

+ )}
{serverSideError && ( {serverSideError} diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index 207f5b52..b559788f 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -84,7 +84,7 @@ export default class AuthApi { const oldPasswordPolicy = tests.password() if(oldPasswordPolicy) { - history.push('/forgotPassword', { message: 'Our password policy has been updated. You will need to provide a password that is at least 14 characters in length and contains at least 3 of the following 4 types of characters: lower case letters (a-z), upper case letters (A-Z), numbers (i.e. 0-9) and special characters (e.g. !@#$%^&*).' }); + history.push('/forgotPassword', { message: true, email: username}); } try { const redirectUri = window.config.extraParams.redirectURI; From cfdfcc8fcd2ef3f56fd6888d54b565e7e9b8e0c4 Mon Sep 17 00:00:00 2001 From: imranazad Date: Fri, 22 Nov 2024 10:04:08 +0000 Subject: [PATCH 33/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- custom-pages/universal-login/src/services/AuthApi.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index b559788f..d40016aa 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -80,18 +80,18 @@ export default class AuthApi { }, {}) login(connection, username, password, errorCallback, resumeAuthState, history) { - const tests = validateRegisterFields({password: password}) - const oldPasswordPolicy = tests.password() - if(oldPasswordPolicy) - { - history.push('/forgotPassword', { message: true, email: username}); - } try { const redirectUri = window.config.extraParams.redirectURI; const tempCid = this.getCookie('_tempCid'); let options let method if (connection === authOpts.connection) { + const tests = validateRegisterFields({password: password}) + const oldPasswordPolicy = tests.password() + if(oldPasswordPolicy) + { + history.push('/forgotPassword', { message: true, email: username}); + } options = { ...this.params, realm: connection, From 984031e9b5fb99c852d46e9030443fc96623bceb Mon Sep 17 00:00:00 2001 From: imranazad Date: Fri, 22 Nov 2024 11:59:17 +0000 Subject: [PATCH 34/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- custom-pages/universal-login/src/services/AuthApi.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index d40016aa..793c65ca 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -86,12 +86,6 @@ export default class AuthApi { let options let method if (connection === authOpts.connection) { - const tests = validateRegisterFields({password: password}) - const oldPasswordPolicy = tests.password() - if(oldPasswordPolicy) - { - history.push('/forgotPassword', { message: true, email: username}); - } options = { ...this.params, realm: connection, @@ -137,6 +131,12 @@ export default class AuthApi { }) .then((res) => { if (res.status === 200) { + const tests = validateRegisterFields({password: password}) + const oldPasswordPolicy = tests.password() + if(oldPasswordPolicy) + { + history.push('/forgotPassword', { message: true, email: username}); + } document.location = redirectUri } else if (errorCallback) { setTimeout(() => errorCallback(res)) From 8427f81931f286d31782f2a60eaee5c40503e834 Mon Sep 17 00:00:00 2001 From: imranazad Date: Fri, 22 Nov 2024 12:01:42 +0000 Subject: [PATCH 35/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- custom-pages/universal-login/src/services/AuthApi.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index 793c65ca..87536a81 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -136,8 +136,9 @@ export default class AuthApi { if(oldPasswordPolicy) { history.push('/forgotPassword', { message: true, email: username}); + } else { + document.location = redirectUri } - document.location = redirectUri } else if (errorCallback) { setTimeout(() => errorCallback(res)) } From 9433261ebcf81ae9c18080133929e011cf2f4bed Mon Sep 17 00:00:00 2001 From: imranazad Date: Fri, 22 Nov 2024 12:32:46 +0000 Subject: [PATCH 36/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- custom-pages/universal-login/src/index.js | 2 +- .../universal-login/src/services/AuthApi.js | 56 +++++++++---------- .../universal-login/src/services/constants.js | 8 +-- 3 files changed, 33 insertions(+), 33 deletions(-) diff --git a/custom-pages/universal-login/src/index.js b/custom-pages/universal-login/src/index.js index 20aa1678..a18d9fd0 100644 --- a/custom-pages/universal-login/src/index.js +++ b/custom-pages/universal-login/src/index.js @@ -8,7 +8,7 @@ import '@nice-digital/design-system/scss/base.scss'; import App from './components/App/App'; global.Promise = global.Promise || Promise; -global.__DEV__ = global.__DEV__ || document.location.host.indexOf('localhost') > -1; +global.__DEV__ = true; const rootElement = document.getElementById("root"); diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index 87536a81..3f245d07 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -118,36 +118,36 @@ export default class AuthApi { } }) } else { - const GETOptions = qs.stringify( - { ...options, state: resumeAuthState }, - { addQueryPrefix: true } - ) - fetch(`/continue${GETOptions}`, { - method: 'GET', - headers: { - Accept: 'application/json', - 'Content-Type': 'application/json' - } - }) - .then((res) => { - if (res.status === 200) { - const tests = validateRegisterFields({password: password}) - const oldPasswordPolicy = tests.password() - if(oldPasswordPolicy) - { - history.push('/forgotPassword', { message: true, email: username}); - } else { - document.location = redirectUri + const tests = validateRegisterFields({password: password}) + const oldPasswordPolicy = tests.password() + if(oldPasswordPolicy) + { + history.push('/forgotPassword', { message: true, email: username}); + } else { + const GETOptions = qs.stringify( + { ...options, state: resumeAuthState }, + { addQueryPrefix: true } + ) + fetch(`/continue${GETOptions}`, { + method: 'GET', + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json' } - } else if (errorCallback) { - setTimeout(() => errorCallback(res)) - } - }) - .catch((err) => { - if (errorCallback) { - setTimeout(() => errorCallback(err)) + }) + .then((res) => { + if (res.status === 200) { + document.location = redirectUri + } else if (errorCallback) { + setTimeout(() => errorCallback(res)) + } + }) + .catch((err) => { + if (errorCallback) { + setTimeout(() => errorCallback(err)) + } + }) } - }) } } catch (err) { console.log(JSON.stringify(err)) diff --git a/custom-pages/universal-login/src/services/constants.js b/custom-pages/universal-login/src/services/constants.js index eef5a70f..f22b95d0 100644 --- a/custom-pages/universal-login/src/services/constants.js +++ b/custom-pages/universal-login/src/services/constants.js @@ -4,15 +4,15 @@ const __DEV__ = global.__DEV__ || false // eslint-disable-next-line export const auth = { - domain: __DEV__ ? 'dev-nice-identity.eu.auth0.com' : '#{AUTH0_CUSTOMDOMAIN}', + domain: __DEV__ ? 'dev-nice-identity.eu.auth0.com' : 'dev-nice-identity.eu.auth0.com', clientID: __DEV__ - ? 'RMpYVjKE_B85IO6Euc2i3IstVAstrEHK' - : '#{AUTH0_APP_CLIENT_ID}', + ? 'PdZjg3cjWZxNMLrkrRlKIgPJaGS5yYEr' + : 'PdZjg3cjWZxNMLrkrRlKIgPJaGS5yYEr', scope: 'openid profile email ', responseType: 'code', connection: __DEV__ ? 'Identity' - : '#{AUTH0_CONNECTION}', + : 'Identity', auth0CDN: 'https://cdn.eu.auth0.com' } From 9df2e3e62590ffb3e139222c43f96b148f07c831 Mon Sep 17 00:00:00 2001 From: imranazad Date: Fri, 22 Nov 2024 12:42:55 +0000 Subject: [PATCH 37/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- custom-pages/universal-login/src/services/constants.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/custom-pages/universal-login/src/services/constants.js b/custom-pages/universal-login/src/services/constants.js index f22b95d0..eef5a70f 100644 --- a/custom-pages/universal-login/src/services/constants.js +++ b/custom-pages/universal-login/src/services/constants.js @@ -4,15 +4,15 @@ const __DEV__ = global.__DEV__ || false // eslint-disable-next-line export const auth = { - domain: __DEV__ ? 'dev-nice-identity.eu.auth0.com' : 'dev-nice-identity.eu.auth0.com', + domain: __DEV__ ? 'dev-nice-identity.eu.auth0.com' : '#{AUTH0_CUSTOMDOMAIN}', clientID: __DEV__ - ? 'PdZjg3cjWZxNMLrkrRlKIgPJaGS5yYEr' - : 'PdZjg3cjWZxNMLrkrRlKIgPJaGS5yYEr', + ? 'RMpYVjKE_B85IO6Euc2i3IstVAstrEHK' + : '#{AUTH0_APP_CLIENT_ID}', scope: 'openid profile email ', responseType: 'code', connection: __DEV__ ? 'Identity' - : 'Identity', + : '#{AUTH0_CONNECTION}', auth0CDN: 'https://cdn.eu.auth0.com' } From f642a9637b424c7ab65752943d986ad4c55eed95 Mon Sep 17 00:00:00 2001 From: imranazad Date: Fri, 22 Nov 2024 13:23:18 +0000 Subject: [PATCH 38/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- .../universal-login/src/services/AuthApi.js | 65 ++++++++++--------- 1 file changed, 34 insertions(+), 31 deletions(-) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index 3f245d07..651d818f 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -91,7 +91,9 @@ export default class AuthApi { realm: connection, username, password, - temp_cid: tempCid + temp_cid: tempCid, + responseType: 'token id_token', + responseMode: 'web_message' } method = 'login' } else { @@ -115,39 +117,40 @@ export default class AuthApi { setTimeout(() => errorCallback(err)) } console.log(JSON.stringify(err)) - } + } else { + const tests = validateRegisterFields({password: password}) + const oldPasswordPolicy = tests.password() + if(oldPasswordPolicy) + { + history.push('/forgotPassword', { message: true, email: username}); + } + + } }) } else { - const tests = validateRegisterFields({password: password}) - const oldPasswordPolicy = tests.password() - if(oldPasswordPolicy) - { - history.push('/forgotPassword', { message: true, email: username}); - } else { - const GETOptions = qs.stringify( - { ...options, state: resumeAuthState }, - { addQueryPrefix: true } - ) - fetch(`/continue${GETOptions}`, { - method: 'GET', - headers: { - Accept: 'application/json', - 'Content-Type': 'application/json' - } - }) - .then((res) => { - if (res.status === 200) { - document.location = redirectUri - } else if (errorCallback) { - setTimeout(() => errorCallback(res)) - } - }) - .catch((err) => { - if (errorCallback) { - setTimeout(() => errorCallback(err)) - } - }) + const GETOptions = qs.stringify( + { ...options, state: resumeAuthState }, + { addQueryPrefix: true } + ) + fetch(`/continue${GETOptions}`, { + method: 'GET', + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json' + } + }) + .then((res) => { + if (res.status === 200) { + document.location = redirectUri + } else if (errorCallback) { + setTimeout(() => errorCallback(res)) + } + }) + .catch((err) => { + if (errorCallback) { + setTimeout(() => errorCallback(err)) } + }) } } catch (err) { console.log(JSON.stringify(err)) From e3087f31df61965f3026cbc62681d6094fc20070 Mon Sep 17 00:00:00 2001 From: imranazad Date: Fri, 22 Nov 2024 13:38:56 +0000 Subject: [PATCH 39/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- .../universal-login/src/services/AuthApi.js | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index 651d818f..2ed8b237 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -111,22 +111,7 @@ export default class AuthApi { options.redirect_uri = redirectUri } if (!resumeAuthState) { - this.instance[method](options, (err) => { - if (err) { - if (errorCallback) { - setTimeout(() => errorCallback(err)) - } - console.log(JSON.stringify(err)) - } else { - const tests = validateRegisterFields({password: password}) - const oldPasswordPolicy = tests.password() - if(oldPasswordPolicy) - { - history.push('/forgotPassword', { message: true, email: username}); - } - - } - }) + console.log('hello'); } else { const GETOptions = qs.stringify( { ...options, state: resumeAuthState }, From 6c9f2b23ae7e80aaadedd2416d1b4db79083ef4b Mon Sep 17 00:00:00 2001 From: imranazad Date: Fri, 22 Nov 2024 14:39:41 +0000 Subject: [PATCH 40/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- .../universal-login/src/services/AuthApi.js | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index 2ed8b237..947a4b40 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -85,6 +85,8 @@ export default class AuthApi { const tempCid = this.getCookie('_tempCid'); let options let method + const tests = validateRegisterFields({password: password}) + const password = tests.password() if (connection === authOpts.connection) { options = { ...this.params, @@ -92,8 +94,9 @@ export default class AuthApi { username, password, temp_cid: tempCid, - responseType: 'token id_token', - responseMode: 'web_message' + authorizationParams: { + oldPasswordPolicy: !password + } } method = 'login' } else { @@ -111,7 +114,14 @@ export default class AuthApi { options.redirect_uri = redirectUri } if (!resumeAuthState) { - console.log('hello'); + this.instance[method](options, (err) => { + if (err) { + if (errorCallback) { + setTimeout(() => errorCallback(err)) + } + console.log(JSON.stringify(err)) + } + }) } else { const GETOptions = qs.stringify( { ...options, state: resumeAuthState }, @@ -171,6 +181,13 @@ export default class AuthApi { resetPassword = (password, errorCallback, history) => { const callback = (res) => { if (res.status === 200) { + const params = new URLSearchParams(window.location.search); + const redirectUri = params.get('redirect_uri'); + const ticket = params.get('ticket'); + if(redirectUri && ticket) + { + window.location.href = redirectUri; + } history.push('/resetsuccess'); } else if (errorCallback) { setTimeout(() => errorCallback('There has been an issue')) From 34131023e533c6e5cb9d4cd4b7425ff58bb173dc Mon Sep 17 00:00:00 2001 From: imranazad Date: Fri, 22 Nov 2024 15:14:14 +0000 Subject: [PATCH 41/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- .../universal-login/src/services/AuthApi.js | 132 +++++++++--------- 1 file changed, 64 insertions(+), 68 deletions(-) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index 947a4b40..0431d765 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -80,76 +80,79 @@ export default class AuthApi { }, {}) login(connection, username, password, errorCallback, resumeAuthState, history) { - try { - const redirectUri = window.config.extraParams.redirectURI; - const tempCid = this.getCookie('_tempCid'); - let options - let method - const tests = validateRegisterFields({password: password}) - const password = tests.password() - if (connection === authOpts.connection) { - options = { - ...this.params, - realm: connection, - username, - password, - temp_cid: tempCid, - authorizationParams: { - oldPasswordPolicy: !password + const tests = validateRegisterFields({password: password}) + const oldPasswordPolicy = tests.password() + if(oldPasswordPolicy) + { + history.push('/forgotPassword', { message: true, email: username}); + } else { + try { + const redirectUri = window.config.extraParams.redirectURI; + const tempCid = this.getCookie('_tempCid'); + let options + let method + if (connection === authOpts.connection) { + options = { + ...this.params, + realm: connection, + username, + password, + temp_cid: tempCid + } + method = 'login' + } else { + options = { + ...this.params, + connection, + username, + sso: true, + login_hint: username, + response_mode: 'form_post' } + method = 'authorize' } - method = 'login' - } else { - options = { - ...this.params, - connection, - username, - sso: true, - login_hint: username, - response_mode: 'form_post' + if (redirectUri) { + options.redirect_uri = redirectUri } - method = 'authorize' - } - if (redirectUri) { - options.redirect_uri = redirectUri - } - if (!resumeAuthState) { - this.instance[method](options, (err) => { - if (err) { - if (errorCallback) { - setTimeout(() => errorCallback(err)) - } - console.log(JSON.stringify(err)) - } - }) - } else { - const GETOptions = qs.stringify( - { ...options, state: resumeAuthState }, - { addQueryPrefix: true } - ) - fetch(`/continue${GETOptions}`, { - method: 'GET', - headers: { - Accept: 'application/json', - 'Content-Type': 'application/json' - } - }) - .then((res) => { - if (res.status === 200) { - document.location = redirectUri - } else if (errorCallback) { - setTimeout(() => errorCallback(res)) + if (!resumeAuthState) { + this.instance[method](options, (err) => { + if (err) { + if (errorCallback) { + setTimeout(() => errorCallback(err)) + } + console.log(JSON.stringify(err)) } }) - .catch((err) => { - if (errorCallback) { - setTimeout(() => errorCallback(err)) + } else { + const GETOptions = qs.stringify( + { ...options, state: resumeAuthState }, + { addQueryPrefix: true } + ) + fetch(`/continue${GETOptions}`, { + method: 'GET', + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json' } }) + .then((res) => { + if (res.status === 200) { + document.location = redirectUri + } else if (errorCallback) { + setTimeout(() => errorCallback(res)) + } + }) + .catch((err) => { + if (errorCallback) { + setTimeout(() => errorCallback(err)) + } + }) + } + } catch (err) { + console.log(JSON.stringify(err)) } - } catch (err) { - console.log(JSON.stringify(err)) } + } submitWSForm = (responseForm) => { @@ -181,13 +184,6 @@ export default class AuthApi { resetPassword = (password, errorCallback, history) => { const callback = (res) => { if (res.status === 200) { - const params = new URLSearchParams(window.location.search); - const redirectUri = params.get('redirect_uri'); - const ticket = params.get('ticket'); - if(redirectUri && ticket) - { - window.location.href = redirectUri; - } history.push('/resetsuccess'); } else if (errorCallback) { setTimeout(() => errorCallback('There has been an issue')) From c8f44935364e4c623c604577c9888ea91dd63eb8 Mon Sep 17 00:00:00 2001 From: imranazad Date: Fri, 22 Nov 2024 15:17:11 +0000 Subject: [PATCH 42/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- custom-pages/universal-login/src/services/AuthApi.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index 0431d765..10a82321 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -81,8 +81,8 @@ export default class AuthApi { login(connection, username, password, errorCallback, resumeAuthState, history) { const tests = validateRegisterFields({password: password}) - const oldPasswordPolicy = tests.password() - if(oldPasswordPolicy) + const newPasswordPolicy = tests.password() + if(!newPasswordPolicy) { history.push('/forgotPassword', { message: true, email: username}); } else { From 71595f48d4a99c8e83d4d7404e30ae1187ac4920 Mon Sep 17 00:00:00 2001 From: imranazad Date: Fri, 22 Nov 2024 15:29:55 +0000 Subject: [PATCH 43/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- custom-pages/universal-login/src/services/AuthApi.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index 10a82321..debd5778 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -81,8 +81,8 @@ export default class AuthApi { login(connection, username, password, errorCallback, resumeAuthState, history) { const tests = validateRegisterFields({password: password}) - const newPasswordPolicy = tests.password() - if(!newPasswordPolicy) + const oldpasswordPolicy = tests.password() + if(oldpasswordPolicy) { history.push('/forgotPassword', { message: true, email: username}); } else { From a37e2a1ca3eddad445e36e14d2f19c0011f92da9 Mon Sep 17 00:00:00 2001 From: imranazad Date: Fri, 22 Nov 2024 15:57:47 +0000 Subject: [PATCH 44/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- .../src/components/ForgotPassword/ForgotPassword.js | 1 - custom-pages/universal-login/src/services/AuthApi.js | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/custom-pages/universal-login/src/components/ForgotPassword/ForgotPassword.js b/custom-pages/universal-login/src/components/ForgotPassword/ForgotPassword.js index 0b7d372a..619532e1 100644 --- a/custom-pages/universal-login/src/components/ForgotPassword/ForgotPassword.js +++ b/custom-pages/universal-login/src/components/ForgotPassword/ForgotPassword.js @@ -12,7 +12,6 @@ class ForgotPassword extends React.Component { this.auth = new AuthApi() this.state = { message: (props.location && props.location.state && props.location.state?.message) || null, - value: (props.location && props.location.state && props.location.state?.email) || null, errors: { email: false }, diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index debd5778..4b026463 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -84,8 +84,9 @@ export default class AuthApi { const oldpasswordPolicy = tests.password() if(oldpasswordPolicy) { - history.push('/forgotPassword', { message: true, email: username}); - } else { + history.push('/forgotPassword', { message: true}); + } + else { try { const redirectUri = window.config.extraParams.redirectURI; const tempCid = this.getCookie('_tempCid'); @@ -152,7 +153,6 @@ export default class AuthApi { console.log(JSON.stringify(err)) } } - } submitWSForm = (responseForm) => { From 185c06daed3ca7ca8451b717ff21abb7d6fd4d39 Mon Sep 17 00:00:00 2001 From: imranazad Date: Fri, 22 Nov 2024 15:59:00 +0000 Subject: [PATCH 45/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- custom-pages/universal-login/src/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom-pages/universal-login/src/index.js b/custom-pages/universal-login/src/index.js index a18d9fd0..20aa1678 100644 --- a/custom-pages/universal-login/src/index.js +++ b/custom-pages/universal-login/src/index.js @@ -8,7 +8,7 @@ import '@nice-digital/design-system/scss/base.scss'; import App from './components/App/App'; global.Promise = global.Promise || Promise; -global.__DEV__ = true; +global.__DEV__ = global.__DEV__ || document.location.host.indexOf('localhost') > -1; const rootElement = document.getElementById("root"); From f0b670e36423d524d4a169b40734cb0761373040 Mon Sep 17 00:00:00 2001 From: imranazad Date: Fri, 22 Nov 2024 17:50:17 +0000 Subject: [PATCH 46/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- .../src/components/ForgotPassword/ForgotPassword.js | 4 +++- custom-pages/universal-login/src/services/AuthApi.js | 7 +++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/custom-pages/universal-login/src/components/ForgotPassword/ForgotPassword.js b/custom-pages/universal-login/src/components/ForgotPassword/ForgotPassword.js index 619532e1..9159c442 100644 --- a/custom-pages/universal-login/src/components/ForgotPassword/ForgotPassword.js +++ b/custom-pages/universal-login/src/components/ForgotPassword/ForgotPassword.js @@ -12,6 +12,7 @@ class ForgotPassword extends React.Component { this.auth = new AuthApi() this.state = { message: (props.location && props.location.state && props.location.state?.message) || null, + value: (props.location && props.location.state && props.location.state?.email) || null, errors: { email: false }, @@ -23,7 +24,8 @@ class ForgotPassword extends React.Component { forgotPassword = (event) => { if (event) event.preventDefault(); - + if(this.state.value) + this.handleChange(event.target); this.setState(function(state) { const tests = validateRegisterFields(this.state); const email = !state.email || tests.email(); diff --git a/custom-pages/universal-login/src/services/AuthApi.js b/custom-pages/universal-login/src/services/AuthApi.js index 4b026463..d7e7d5cd 100644 --- a/custom-pages/universal-login/src/services/AuthApi.js +++ b/custom-pages/universal-login/src/services/AuthApi.js @@ -84,9 +84,8 @@ export default class AuthApi { const oldpasswordPolicy = tests.password() if(oldpasswordPolicy) { - history.push('/forgotPassword', { message: true}); - } - else { + history.push('/forgotPassword', { message: true, email: username}); + } else { try { const redirectUri = window.config.extraParams.redirectURI; const tempCid = this.getCookie('_tempCid'); @@ -152,7 +151,7 @@ export default class AuthApi { } catch (err) { console.log(JSON.stringify(err)) } - } + } } submitWSForm = (responseForm) => { From 29b3cb7187c4dd0a3498d8ee114217a5ed80027e Mon Sep 17 00:00:00 2001 From: imranazad Date: Fri, 22 Nov 2024 17:58:48 +0000 Subject: [PATCH 47/48] IDAM-627-Cyber-Essentials-Update-Minimum-Length-For-Passwords --- .../src/components/ForgotPassword/ForgotPassword.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/custom-pages/universal-login/src/components/ForgotPassword/ForgotPassword.js b/custom-pages/universal-login/src/components/ForgotPassword/ForgotPassword.js index 9159c442..001b115f 100644 --- a/custom-pages/universal-login/src/components/ForgotPassword/ForgotPassword.js +++ b/custom-pages/universal-login/src/components/ForgotPassword/ForgotPassword.js @@ -25,7 +25,11 @@ class ForgotPassword extends React.Component { forgotPassword = (event) => { if (event) event.preventDefault(); if(this.state.value) - this.handleChange(event.target); + { + const simulatedEvent = { target: document.getElementById('email') }; + this.handleChange(simulatedEvent); + } + this.setState(function(state) { const tests = validateRegisterFields(this.state); const email = !state.email || tests.email(); From a5fbaccdc4211be6292ded1dfd68ddd3e03a6091 Mon Sep 17 00:00:00 2001 From: imranazad Date: Tue, 26 Nov 2024 17:15:47 +0000 Subject: [PATCH 48/48] IDAM-629-Fix-Grammar-For-Update-Minimum-Length-For-Passwords-Validation-Message --- .../universal-login/src/components/Register/Register.js | 2 +- .../src/components/ResetPassword/ResetPassword.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/custom-pages/universal-login/src/components/Register/Register.js b/custom-pages/universal-login/src/components/Register/Register.js index f41666d7..b9dad549 100644 --- a/custom-pages/universal-login/src/components/Register/Register.js +++ b/custom-pages/universal-login/src/components/Register/Register.js @@ -220,7 +220,7 @@ class Register extends Component { const errorMessages = { email: !email ? `Email - ${requiredMessage}` : 'Email address is in an invalid format', - password: !password ? `Password - ${requiredMessage}` : 'Please provide a password with least 14 characters in length, contain at least 3 of the following 4 types of characters: lower case letters (a-z), upper case letters (A-Z), numbers (i.e. 0-9) and special characters (e.g. !@#$%^&*)', + password: !password ? `Password - ${requiredMessage}` : 'Please provide a password with at least 14 characters in length, contains at least 3 of the following 4 types of characters: lower case letters (a-z), upper case letters (A-Z), numbers (i.e. 0-9) and special characters (e.g. !@#$%^&*)', confirmPassword: !confirmPassword ? `Confirm password - ${requiredMessage}` : 'Password doesn\'t match', name: !name ? `First name - ${requiredMessage}` : 'First name should contain letters and should not exceed 100 characters', surname: !surname ? `Last name - ${requiredMessage}` : 'Last name should contain letters and should not exceed 100 characters', diff --git a/custom-pages/universal-login/src/components/ResetPassword/ResetPassword.js b/custom-pages/universal-login/src/components/ResetPassword/ResetPassword.js index ac48ab96..1fdf334c 100644 --- a/custom-pages/universal-login/src/components/ResetPassword/ResetPassword.js +++ b/custom-pages/universal-login/src/components/ResetPassword/ResetPassword.js @@ -110,7 +110,7 @@ export class ResetPassword extends React.Component { label="Password" onChange={this.handleChange} error={errors.password} - errorMessage="Please provide a password with least 14 characters in length, contain at least 3 of the following 4 types of characters: lower case letters (a-z), upper case letters (A-Z), numbers (i.e. 0-9) and special characters (e.g. !@#$%^&*)" + errorMessage="Please provide a password with at least 14 characters in length, contains at least 3 of the following 4 types of characters: lower case letters (a-z), upper case letters (A-Z), numbers (i.e. 0-9) and special characters (e.g. !@#$%^&*)" onBlur={this.validate} onFocus={this.clearError} aria-describedby="password-error"