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