diff --git a/.changeset/great-moons-tease.md b/.changeset/great-moons-tease.md new file mode 100644 index 00000000000..0c356a1cfd6 --- /dev/null +++ b/.changeset/great-moons-tease.md @@ -0,0 +1,11 @@ +--- +"@wso2is/admin.connections.v1": patch +"@wso2is/admin.extensions.v1": patch +"@wso2is/console": patch +"@wso2is/myaccount": patch +"@wso2is/theme": patch +--- + +Add console support for the Daon TrustX connection templates: hide the tabs the templates do not use, +resolve the registration and recovery redirect URIs in the create wizard help panel, and ship the +connection logo diff --git a/.changeset/lazy-pandas-repeat.md b/.changeset/lazy-pandas-repeat.md new file mode 100644 index 00000000000..8ba5be11901 --- /dev/null +++ b/.changeset/lazy-pandas-repeat.md @@ -0,0 +1,7 @@ +--- +"@wso2is/identity-apps-core": patch +--- + +Surface errors raised by a connector deployed on the server in the registration, invited user +registration and password recovery flows, and render the login failure banner on authentication steps +that have no local authenticator diff --git a/apps/console/src/public/resources/assets/images/icons/daon.svg b/apps/console/src/public/resources/assets/images/icons/daon.svg new file mode 100644 index 00000000000..3df2c3f5bc0 --- /dev/null +++ b/apps/console/src/public/resources/assets/images/icons/daon.svg @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/apps/console/src/public/resources/connections/assets/images/logos/daon.svg b/apps/console/src/public/resources/connections/assets/images/logos/daon.svg new file mode 100644 index 00000000000..3df2c3f5bc0 --- /dev/null +++ b/apps/console/src/public/resources/connections/assets/images/logos/daon.svg @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/apps/myaccount/src/public/resources/connections/assets/images/logos/daon.svg b/apps/myaccount/src/public/resources/connections/assets/images/logos/daon.svg new file mode 100644 index 00000000000..3df2c3f5bc0 --- /dev/null +++ b/apps/myaccount/src/public/resources/connections/assets/images/logos/daon.svg @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/features/admin.connections.v1/components/create/create-wizard-help.tsx b/features/admin.connections.v1/components/create/create-wizard-help.tsx index d5ff33d72cb..c1de777f791 100644 --- a/features/admin.connections.v1/components/create/create-wizard-help.tsx +++ b/features/admin.connections.v1/components/create/create-wizard-help.tsx @@ -100,6 +100,10 @@ CreateConnectionWizardHelpPropsInterface> = ( return value.replace(value, deploymentConfig.customServerHost); case "redirect_uri": return value.replace(value, deploymentConfig.customServerHost + "/commonauth"); + case "registration_redirect_uri": + return value.replace(value, deploymentConfig.customServerHost + "/accounts/register"); + case "recovery_redirect_uri": + return value.replace(value, deploymentConfig.customServerHost + "/accounts/recovery"); default: return value; } diff --git a/features/admin.connections.v1/constants/common-authenticator-constants.ts b/features/admin.connections.v1/constants/common-authenticator-constants.ts index 60c33c465b0..d7fbd4f1460 100644 --- a/features/admin.connections.v1/constants/common-authenticator-constants.ts +++ b/features/admin.connections.v1/constants/common-authenticator-constants.ts @@ -44,6 +44,8 @@ export class CommonAuthenticatorConstants { public static readonly CONNECTION_TEMPLATE_IDS: { APPLE: string; CUSTOM_AUTHENTICATOR: string; + DAON_AUTHENTICATOR: string; + DAON_IDV: string; DUO: string; ENTERPRISE: string; EXPERT_MODE: string; @@ -68,6 +70,8 @@ export class CommonAuthenticatorConstants { } = { APPLE: "apple-idp", CUSTOM_AUTHENTICATOR: "custom-authenticator", + DAON_AUTHENTICATOR: "daon-authenticator", + DAON_IDV: "daon-idv", DUO: "duo-idp", ENTERPRISE: "enterprise-idp", EXPERT_MODE: "expert-mode-idp", diff --git a/features/admin.extensions.v1/configs/identity-provider.tsx b/features/admin.extensions.v1/configs/identity-provider.tsx index 01971bbc1d1..0a4d5d851e8 100644 --- a/features/admin.extensions.v1/configs/identity-provider.tsx +++ b/features/admin.extensions.v1/configs/identity-provider.tsx @@ -133,7 +133,8 @@ export const identityProviderConfig: IdentityProviderConfig = { IdentityProviderTabTypes.ATTRIBUTES, new Set([ CommonAuthenticatorConstants.CONNECTION_TEMPLATE_IDS.TRUSTED_TOKEN_ISSUER, CommonAuthenticatorConstants.CONNECTION_TEMPLATE_IDS.IPROOV, - CommonAuthenticatorConstants.CONNECTION_TEMPLATE_IDS.OUTBOUND_PROVISIONING_CONNECTION + CommonAuthenticatorConstants.CONNECTION_TEMPLATE_IDS.OUTBOUND_PROVISIONING_CONNECTION, + CommonAuthenticatorConstants.CONNECTION_TEMPLATE_IDS.DAON_AUTHENTICATOR ]) ], [ @@ -144,6 +145,8 @@ export const identityProviderConfig: IdentityProviderConfig = { ], [ IdentityProviderTabTypes.IDENTITY_PROVIDER_GROUPS, new Set([ + CommonAuthenticatorConstants.CONNECTION_TEMPLATE_IDS.DAON_AUTHENTICATOR, + CommonAuthenticatorConstants.CONNECTION_TEMPLATE_IDS.DAON_IDV, CommonAuthenticatorConstants.CONNECTION_TEMPLATE_IDS.FACEBOOK, CommonAuthenticatorConstants.CONNECTION_TEMPLATE_IDS.GOOGLE, CommonAuthenticatorConstants.CONNECTION_TEMPLATE_IDS.GITHUB, @@ -158,11 +161,15 @@ export const identityProviderConfig: IdentityProviderConfig = { [ IdentityProviderTabTypes.OUTBOUND_PROVISIONING, new Set([ CommonAuthenticatorConstants.CONNECTION_TEMPLATE_IDS.TRUSTED_TOKEN_ISSUER, - CommonAuthenticatorConstants.CONNECTION_TEMPLATE_IDS.IPROOV + CommonAuthenticatorConstants.CONNECTION_TEMPLATE_IDS.IPROOV, + CommonAuthenticatorConstants.CONNECTION_TEMPLATE_IDS.DAON_AUTHENTICATOR, + CommonAuthenticatorConstants.CONNECTION_TEMPLATE_IDS.DAON_IDV ]) ], [ IdentityProviderTabTypes.JIT_PROVISIONING, new Set([ + CommonAuthenticatorConstants.CONNECTION_TEMPLATE_IDS.DAON_AUTHENTICATOR, + CommonAuthenticatorConstants.CONNECTION_TEMPLATE_IDS.DAON_IDV, CommonAuthenticatorConstants.CONNECTION_TEMPLATE_IDS.TRUSTED_TOKEN_ISSUER, CommonAuthenticatorConstants.CONNECTION_TEMPLATE_IDS.IPROOV, CommonAuthenticatorConstants.CONNECTION_TEMPLATE_IDS.OUTBOUND_PROVISIONING_CONNECTION @@ -170,6 +177,8 @@ export const identityProviderConfig: IdentityProviderConfig = { ], [ IdentityProviderTabTypes.ADVANCED, new Set([ + CommonAuthenticatorConstants.CONNECTION_TEMPLATE_IDS.DAON_AUTHENTICATOR, + CommonAuthenticatorConstants.CONNECTION_TEMPLATE_IDS.DAON_IDV, CommonAuthenticatorConstants.CONNECTION_TEMPLATE_IDS.IPROOV, CommonAuthenticatorConstants.CONNECTION_TEMPLATE_IDS.OUTBOUND_PROVISIONING_CONNECTION ]) diff --git a/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources.properties b/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources.properties index e7607da5cb6..dcf62f7096b 100644 --- a/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources.properties +++ b/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources.properties @@ -166,3 +166,15 @@ account.locked.pending.email.verification=Your account is locked due to pending account.locked.pending.ask.password=Your account is locked due to pending password setup. account.locked.pending.admin.forced.password.reset=Your account is locked due to forced password reset. account.disabled=Your account is disabled. + +# Daon identity verification errors +daon.identity.verification.not.enrolled.message=Identity Verification Required +daon.identity.verification.not.enrolled.description=Your account is not enrolled for identity verification with Daon TrustX. Please contact your administrator. +daon.identity.verification.cancelled.message=Identity Verification Not Completed +daon.identity.verification.cancelled.description=The identity verification was cancelled before it finished. Please try again. +daon.identity.verification.details.mismatch.message=Details Do Not Match +daon.identity.verification.details.mismatch.description=The details you entered do not match your identity document. Please check your information and try again. +daon.identity.verification.identity.mismatch.message=Identity Verification Failed +daon.identity.verification.identity.mismatch.description=The verified identity does not match this account. Please present a valid identity document. +daon.identity.verification.failed.message=Identity Verification Failed +daon.identity.verification.failed.description=We couldn't verify your identity. Please try again or contact support. diff --git a/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_de_DE.properties b/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_de_DE.properties index c050a45f039..3127c32901e 100644 --- a/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_de_DE.properties +++ b/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_de_DE.properties @@ -157,3 +157,15 @@ account.locked.pending.email.verification=Ihr Konto ist wegen ausstehender E-Mai account.locked.pending.ask.password=Ihr Konto ist wegen ausstehender Passworteinrichtung gesperrt. account.locked.pending.admin.forced.password.reset=Ihr Konto ist wegen erzwungener Passwortzurücksetzung gesperrt. account.disabled=Ihr Konto ist deaktiviert. + +# Daon identity verification errors +daon.identity.verification.not.enrolled.message=Identitätsprüfung nicht eingerichtet +daon.identity.verification.not.enrolled.description=Ihr Konto ist nicht für die Identitätsprüfung registriert. Bitte wenden Sie sich an Ihren Administrator. +daon.identity.verification.cancelled.message=Identitätsprüfung nicht abgeschlossen +daon.identity.verification.cancelled.description=Die Identitätsprüfung wurde vor dem Abschluss abgebrochen. Bitte versuchen Sie es erneut. +daon.identity.verification.details.mismatch.message=Angaben stimmen nicht überein +daon.identity.verification.details.mismatch.description=Die von Ihnen eingegebenen Angaben stimmen nicht mit Ihrem Ausweisdokument überein. Bitte überprüfen Sie Ihre Angaben und versuchen Sie es erneut. +daon.identity.verification.identity.mismatch.message=Identitätsprüfung fehlgeschlagen +daon.identity.verification.identity.mismatch.description=Die geprüfte Identität stimmt nicht mit diesem Konto überein. Bitte legen Sie ein gültiges Ausweisdokument vor. +daon.identity.verification.failed.message=Identitätsprüfung fehlgeschlagen +daon.identity.verification.failed.description=Wir konnten Ihre Identität nicht überprüfen. Bitte versuchen Sie es erneut oder wenden Sie sich an den Support. diff --git a/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_es_ES.properties b/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_es_ES.properties index 67be7a03ca9..a23a732851d 100644 --- a/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_es_ES.properties +++ b/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_es_ES.properties @@ -157,3 +157,15 @@ account.locked.pending.email.verification=Su cuenta está bloqueada por verifica account.locked.pending.ask.password=Su cuenta está bloqueada por configuración de contraseña pendiente. account.locked.pending.admin.forced.password.reset=Su cuenta está bloqueada por restablecimiento de contraseña forzado. account.disabled=Su cuenta está deshabilitada. + +# Daon identity verification errors +daon.identity.verification.not.enrolled.message=Verificación de identidad no configurada +daon.identity.verification.not.enrolled.description=Su cuenta no está inscrita en la verificación de identidad. Póngase en contacto con su administrador. +daon.identity.verification.cancelled.message=Verificación de identidad no completada +daon.identity.verification.cancelled.description=La verificación de identidad se canceló antes de finalizar. Vuelva a intentarlo. +daon.identity.verification.details.mismatch.message=Los datos no coinciden +daon.identity.verification.details.mismatch.description=Los datos que ha introducido no coinciden con su documento de identidad. Compruebe su información y vuelva a intentarlo. +daon.identity.verification.identity.mismatch.message=Error en la verificación de identidad +daon.identity.verification.identity.mismatch.description=La identidad verificada no coincide con esta cuenta. Presente un documento de identidad válido. +daon.identity.verification.failed.message=Error en la verificación de identidad +daon.identity.verification.failed.description=No pudimos verificar su identidad. Vuelva a intentarlo o póngase en contacto con el soporte técnico. diff --git a/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_fr_FR.properties b/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_fr_FR.properties index 5f5da694777..67fa6e47b95 100644 --- a/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_fr_FR.properties +++ b/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_fr_FR.properties @@ -157,3 +157,15 @@ account.locked.pending.email.verification=Votre compte est verrouillé en raison account.locked.pending.ask.password=Votre compte est verrouillé en raison d'une configuration du mot de passe en attente. account.locked.pending.admin.forced.password.reset=Votre compte est verrouillé en raison d'une réinitialisation forcée du mot de passe. account.disabled=Votre compte est désactivé. + +# Daon identity verification errors +daon.identity.verification.not.enrolled.message=Vérification d'identité non configurée +daon.identity.verification.not.enrolled.description=Votre compte n'est pas inscrit à la vérification d'identité. Veuillez contacter votre administrateur. +daon.identity.verification.cancelled.message=Vérification d'identité non terminée +daon.identity.verification.cancelled.description=La vérification d'identité a été annulée avant son achèvement. Veuillez réessayer. +daon.identity.verification.details.mismatch.message=Les informations ne correspondent pas +daon.identity.verification.details.mismatch.description=Les informations que vous avez saisies ne correspondent pas à votre pièce d'identité. Veuillez vérifier vos informations et réessayer. +daon.identity.verification.identity.mismatch.message=Échec de la vérification d'identité +daon.identity.verification.identity.mismatch.description=L'identité vérifiée ne correspond pas à ce compte. Veuillez présenter une pièce d'identité valide. +daon.identity.verification.failed.message=Échec de la vérification d'identité +daon.identity.verification.failed.description=Nous n'avons pas pu vérifier votre identité. Veuillez réessayer ou contacter le support. diff --git a/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_ja_JP.properties b/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_ja_JP.properties index f0e54bddfa1..8e7a6faa875 100644 --- a/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_ja_JP.properties +++ b/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_ja_JP.properties @@ -157,3 +157,15 @@ account.locked.pending.email.verification=メール確認が保留中のため account.locked.pending.ask.password=パスワード設定が保留中のため、お客様のアカウントはロックされています。 account.locked.pending.admin.forced.password.reset=パスワードの強制リセットのため、お客様のアカウントはロックされています。 account.disabled=お客様のアカウントは無効化されています。 + +# Daon identity verification errors +daon.identity.verification.not.enrolled.message=本人確認が設定されていません +daon.identity.verification.not.enrolled.description=お客様のアカウントは本人確認に登録されていません。管理者にお問い合わせください。 +daon.identity.verification.cancelled.message=本人確認が完了していません +daon.identity.verification.cancelled.description=本人確認は完了する前にキャンセルされました。もう一度お試しください。 +daon.identity.verification.details.mismatch.message=情報が一致しません +daon.identity.verification.details.mismatch.description=入力された情報が本人確認書類と一致しません。情報をご確認のうえ、もう一度お試しください。 +daon.identity.verification.identity.mismatch.message=本人確認に失敗しました +daon.identity.verification.identity.mismatch.description=確認された本人情報はこのアカウントと一致しません。有効な本人確認書類をご提示ください。 +daon.identity.verification.failed.message=本人確認に失敗しました +daon.identity.verification.failed.description=お客様の本人確認ができませんでした。もう一度お試しいただくか、サポートにお問い合わせください。 diff --git a/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_nl_NL.properties b/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_nl_NL.properties index 0e89982402d..93527443490 100644 --- a/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_nl_NL.properties +++ b/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_nl_NL.properties @@ -166,3 +166,15 @@ account.locked.pending.email.verification=Uw account is vergrendeld wegens opens account.locked.pending.ask.password=Uw account is vergrendeld wegens openstaande wachtwoordinstelling. account.locked.pending.admin.forced.password.reset=Uw account is vergrendeld wegens een verplichte wachtwoordreset. account.disabled=Uw account is uitgeschakeld. + +# Daon identity verification errors +daon.identity.verification.not.enrolled.message=Identiteitsverificatie niet ingesteld +daon.identity.verification.not.enrolled.description=Uw account is niet geregistreerd voor identiteitsverificatie. Neem contact op met uw beheerder. +daon.identity.verification.cancelled.message=Identiteitsverificatie niet voltooid +daon.identity.verification.cancelled.description=De identiteitsverificatie is geannuleerd voordat deze was voltooid. Probeer het opnieuw. +daon.identity.verification.details.mismatch.message=Gegevens komen niet overeen +daon.identity.verification.details.mismatch.description=De gegevens die u hebt ingevoerd, komen niet overeen met uw identiteitsdocument. Controleer uw gegevens en probeer het opnieuw. +daon.identity.verification.identity.mismatch.message=Identiteitsverificatie mislukt +daon.identity.verification.identity.mismatch.description=De geverifieerde identiteit komt niet overeen met dit account. Leg een geldig identiteitsdocument voor. +daon.identity.verification.failed.message=Identiteitsverificatie mislukt +daon.identity.verification.failed.description=We konden uw identiteit niet verifiëren. Probeer het opnieuw of neem contact op met de ondersteuning. diff --git a/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_pt_BR.properties b/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_pt_BR.properties index baf8510e24f..66165a0e9fc 100644 --- a/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_pt_BR.properties +++ b/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_pt_BR.properties @@ -157,3 +157,15 @@ account.locked.pending.email.verification=Sua conta está bloqueada devido a ver account.locked.pending.ask.password=Sua conta está bloqueada devido a configuração de senha pendente. account.locked.pending.admin.forced.password.reset=Sua conta está bloqueada devido a redefinição de senha forçada. account.disabled=Sua conta está desativada. + +# Daon identity verification errors +daon.identity.verification.not.enrolled.message=Verificação de identidade não configurada +daon.identity.verification.not.enrolled.description=Sua conta não está inscrita na verificação de identidade. Entre em contato com o seu administrador. +daon.identity.verification.cancelled.message=Verificação de identidade não concluída +daon.identity.verification.cancelled.description=A verificação de identidade foi cancelada antes de ser concluída. Tente novamente. +daon.identity.verification.details.mismatch.message=Os dados não coincidem +daon.identity.verification.details.mismatch.description=Os dados que você informou não coincidem com o seu documento de identidade. Verifique suas informações e tente novamente. +daon.identity.verification.identity.mismatch.message=Falha na verificação de identidade +daon.identity.verification.identity.mismatch.description=A identidade verificada não corresponde a esta conta. Apresente um documento de identidade válido. +daon.identity.verification.failed.message=Falha na verificação de identidade +daon.identity.verification.failed.description=Não foi possível verificar sua identidade. Tente novamente ou entre em contato com o suporte. diff --git a/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_pt_PT.properties b/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_pt_PT.properties index b67fa08e8ff..f065fa50612 100644 --- a/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_pt_PT.properties +++ b/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_pt_PT.properties @@ -157,3 +157,15 @@ account.locked.pending.email.verification=A sua conta está bloqueada devido a v account.locked.pending.ask.password=A sua conta está bloqueada devido a configuração de palavra-passe pendente. account.locked.pending.admin.forced.password.reset=A sua conta está bloqueada devido a reposição de palavra-passe forçada. account.disabled=A sua conta está desativada. + +# Daon identity verification errors +daon.identity.verification.not.enrolled.message=Verificação de identidade não configurada +daon.identity.verification.not.enrolled.description=A sua conta não está inscrita na verificação de identidade. Contacte o seu administrador. +daon.identity.verification.cancelled.message=Verificação de identidade não concluída +daon.identity.verification.cancelled.description=A verificação de identidade foi cancelada antes de ficar concluída. Tente novamente. +daon.identity.verification.details.mismatch.message=Os dados não correspondem +daon.identity.verification.details.mismatch.description=Os dados que introduziu não correspondem ao seu documento de identificação. Verifique as suas informações e tente novamente. +daon.identity.verification.identity.mismatch.message=Falha na verificação de identidade +daon.identity.verification.identity.mismatch.description=A identidade verificada não corresponde a esta conta. Apresente um documento de identificação válido. +daon.identity.verification.failed.message=Falha na verificação de identidade +daon.identity.verification.failed.description=Não foi possível verificar a sua identidade. Tente novamente ou contacte o suporte. diff --git a/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_zh_CN.properties b/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_zh_CN.properties index 399894ba27d..ddf9efc79ba 100644 --- a/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_zh_CN.properties +++ b/identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources_zh_CN.properties @@ -157,3 +157,15 @@ account.locked.pending.email.verification=您的账户因电子邮件验证待 account.locked.pending.ask.password=您的账户因密码设置待处理而被锁定。 account.locked.pending.admin.forced.password.reset=您的账户因强制重置密码而被锁定。 account.disabled=您的账户已被禁用。 + +# Daon identity verification errors +daon.identity.verification.not.enrolled.message=身份验证未设置 +daon.identity.verification.not.enrolled.description=您的账户未注册身份验证。请联系您的管理员。 +daon.identity.verification.cancelled.message=身份验证未完成 +daon.identity.verification.cancelled.description=身份验证在完成前已被取消。请重试。 +daon.identity.verification.details.mismatch.message=信息不匹配 +daon.identity.verification.details.mismatch.description=您输入的信息与您的身份证件不匹配。请核对您的信息后重试。 +daon.identity.verification.identity.mismatch.message=身份验证失败 +daon.identity.verification.identity.mismatch.description=已验证的身份与此账户不匹配。请出示有效的身份证件。 +daon.identity.verification.failed.message=身份验证失败 +daon.identity.verification.failed.description=我们无法验证您的身份。请重试或联系支持人员。 diff --git a/identity-apps-core/apps/accounts/src/main/webapp/execution-flow.jsp b/identity-apps-core/apps/accounts/src/main/webapp/execution-flow.jsp index 7a2f3f8a567..021bcb5f587 100644 --- a/identity-apps-core/apps/accounts/src/main/webapp/execution-flow.jsp +++ b/identity-apps-core/apps/accounts/src/main/webapp/execution-flow.jsp @@ -77,6 +77,9 @@ final String INVITED_USER_REGISTRATION = "INVITED_USER_REGISTRATION"; final String PASSWORD_RECOVERY = "PASSWORD_RECOVERY"; + String authError = request.getParameter("error"); + String authErrorDescription = request.getParameter("error_description"); + if (StringUtils.isBlank(spId) && !StringUtils.isBlank(sp)) { try { if (sp.equals("My Account")) { @@ -204,6 +207,8 @@ const mlt = "<%= Encode.forJavaScript(mlt) != null ? Encode.forJavaScript(mlt) : null %>"; const flowId = "<%= Encode.forJavaScript(flowId) != null ? Encode.forJavaScript(flowId) : null %>"; const spId = "<%= !StringUtils.isBlank(spId) && spId != "null" ? Encode.forJavaScript(spId) : "new-application" %>"; + const authError = "<%= Encode.forJavaScript(authError) != null ? Encode.forJavaScript(authError) : null %>"; + const authErrorDescription = "<%= Encode.forJavaScript(authErrorDescription) != null ? Encode.forJavaScript(authErrorDescription) : null %>"; const anonymousProfileTracker = "<%= Encode.forJavaScript(anonymousProfileTracker) != null ? Encode.forJavaScript(anonymousProfileTracker) : null %>"; const extendedInputResolvers = [ @@ -243,8 +248,22 @@ state } }); + + return; + } + + if (authError !== "null" && state !== "null") { + setPostBody({ + flowId: savedFlowId, + actionId: "", + inputs: { + error: authError, + error_description: authErrorDescription === "null" ? "" : authErrorDescription, + state + } + }); } - }, [code, state]); + }, [code, state, authError]); useEffect(() => { if (mlt !== "null" && flowId !== "null") { @@ -272,9 +291,9 @@ }, [confirmationCode, confirmationEffectDone]); useEffect(() => { - if (!postBody && code === "null" && confirmationCode === "null" && mlt === "null" && flowId === "null" && flowType == "null") { + if (!postBody && authError === "null" && code === "null" && confirmationCode === "null" && mlt === "null" && flowId === "null" && flowType == "null") { setPostBody({ applicationId: spId, flowType: "REGISTRATION", ...getExtendedFlowInputs("REGISTRATION") }); - } else if (!postBody && code === "null" && confirmationCode === "null" && mlt === "null" && flowId === "null" && flowType !== "null") { + } else if (!postBody && authError === "null" && code === "null" && confirmationCode === "null" && mlt === "null" && flowId === "null" && flowType !== "null") { setPostBody({ applicationId: spId, flowType: flowType, ...getExtendedFlowInputs(flowType) }); } }, []); diff --git a/identity-apps-core/apps/accounts/src/main/webapp/js/error-utils.js b/identity-apps-core/apps/accounts/src/main/webapp/js/error-utils.js index 32154b98b1e..a34f08882fd 100644 --- a/identity-apps-core/apps/accounts/src/main/webapp/js/error-utils.js +++ b/identity-apps-core/apps/accounts/src/main/webapp/js/error-utils.js @@ -28,6 +28,13 @@ function stripBraces(s) { return s && s.startsWith("{{") && s.endsWith("}}") ? s.slice(2, -2) : s; } +/** + * Whether a string is an i18n token. + */ +function isI18nToken(s) { + return !!s && s.startsWith("{{") && s.endsWith("}}"); +} + /** * Returns the i18n keys for the given error code. * @@ -234,6 +241,19 @@ function getI18nKeyForError(errorCode, flowType, errorMessage, errorDescription) default: + // An executor registered by a connector deployed on the server has no case above. Those can be handled through here. + if (isI18nToken(errorMessage) || isI18nToken(errorDescription)) { + return { + message: isI18nToken(errorMessage) + ? stripBraces(errorMessage) + : "orchestration.flow.error.failed.message", + description: isI18nToken(errorDescription) + ? stripBraces(errorDescription) + : "orchestration.flow.error.failed.description", + portalUrlStatus: "true" + }; + } + return { message: "orchestration.flow.error.failed.message", description: "orchestration.flow.error.failed.description", diff --git a/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources.properties b/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources.properties index be93733132d..88317ef595d 100644 --- a/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources.properties +++ b/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources.properties @@ -587,6 +587,10 @@ iproov.timeout.error=Authentication failed due to timeout. Please try again late iproov.generic.error=Authentication failed. Please try again later. iproov.auth.start=Authentication in progress. Please wait... +# Daon +daon.identity.verification.not.enrolled.message=Identity Verification Required +daon.identity.verification.not.enrolled.description=Your account is not enrolled for identity verification with Daon TrustX. Please contact your administrator. + # Errors error.occurred=Error Occurred error.400=Error 400 - Bad Request diff --git a/identity-apps-core/apps/authentication-portal/src/main/webapp/retry.jsp b/identity-apps-core/apps/authentication-portal/src/main/webapp/retry.jsp index faa39f974a0..da6e6774dcc 100644 --- a/identity-apps-core/apps/authentication-portal/src/main/webapp/retry.jsp +++ b/identity-apps-core/apps/authentication-portal/src/main/webapp/retry.jsp @@ -53,6 +53,28 @@ * Tracked with https://github.com/wso2/product-is/issues/16932 */ private static final String UNVERIFIED_EMAIL_IN_MSFT_ERROR_CODE = "17101"; + + private static final String I18N_TOKEN_PREFIX = "{{"; + private static final String I18N_TOKEN_SUFFIX = "}}"; + + /** + * Checks whether the given value is an i18n token. + */ + private static boolean isI18nToken(String value) { + + return StringUtils.isNotBlank(value) && value.startsWith(I18N_TOKEN_PREFIX) + && value.endsWith(I18N_TOKEN_SUFFIX); + } + + /** + * Strips the surrounding double curly braces from the given i18n token. + */ + private static String stripBraces(String value) { + + return isI18nToken(value) + ? value.substring(I18N_TOKEN_PREFIX.length(), value.length() - I18N_TOKEN_SUFFIX.length()) + : value; + } %> <% String stat = request.getParameter(Constants.STATUS); @@ -72,11 +94,21 @@ statusMsgAuthParam = authRequest.getAuthParameter(Constants.STATUS_MSG); } - // If auth params are available, can skip i18n mapping validations. This is to allow displaying - // custom error messages. + // Auth params take precedence over the request params. This is to allow displaying custom error messages. if (StringUtils.isNotEmpty(statAuthParam) || StringUtils.isNotEmpty(statusMsgAuthParam)) { stat = statAuthParam; statusMessage = statusMsgAuthParam; + } + + if (isI18nToken(stat) || isI18nToken(statusMessage)) { + // A dynamically registered executor from a connector can return an i18n token as the error message. + stat = isI18nToken(stat) + ? i18n(resourceBundle, customText, stripBraces(stat)) + : AuthenticationEndpointUtil.i18n(resourceBundle, "authentication.error"); + statusMessage = isI18nToken(statusMessage) + ? i18n(resourceBundle, customText, stripBraces(statusMessage)) + : AuthenticationEndpointUtil.i18n(resourceBundle, "something.went.wrong.during.authentication"); + } else if (StringUtils.isNotEmpty(statAuthParam) || StringUtils.isNotEmpty(statusMsgAuthParam)) { if (StringUtils.isNotEmpty(stat)) { stat = AuthenticationEndpointUtil.customi18n(resourceBundle, stat); } diff --git a/modules/theme/src/themes/default/assets/images/identity-providers/daon.svg b/modules/theme/src/themes/default/assets/images/identity-providers/daon.svg new file mode 100644 index 00000000000..3df2c3f5bc0 --- /dev/null +++ b/modules/theme/src/themes/default/assets/images/identity-providers/daon.svg @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file