new configuration version

This commit is contained in:
haburger 2024-08-19 12:04:20 +00:00
parent e1746dac41
commit 654c61eaf7
78 changed files with 808 additions and 909 deletions

View File

@ -27,25 +27,20 @@ spec:
livenessProbe:
soap:
tcpSocket: true
periodSeconds: 5
initialDelaySeconds: 40
periodSeconds: 20
timeoutSeconds: 4
readinessProbe:
management:
httpGet:
path: "/nevisauth/liveness"
periodSeconds: 5
initialDelaySeconds: 40
periodSeconds: 30
timeoutSeconds: 6
startupProbe:
management:
httpGet:
path: "/nevisauth/liveness"
periodSeconds: 5
timeoutSeconds: 6
failureThreshold: 50
podDisruptionBudget:
maxUnavailable: "50%"
git:
tag: "r-90c0ddd9c0c4d9011252ef186298ca61c939e952"
tag: "r-5560b9df58bc00fcf3fc92f29f5f7840af9dbf26"
dir: "DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth-sts"
credentials: "git-credentials"
keystores:

View File

@ -1,24 +1,24 @@
-----BEGIN CERTIFICATE-----
MIIEGDCCAwCgAwIBAgIBBDANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQGEwJjaDEQ
MA4GA1UEChMHQWRub3Z1bTEXMBUGA1UEAxMOYml0ZWlhbS1yb290Q0EwHhcNMjAw
MzA1MTYzMDAwWhcNMzAwMzAzMTYzMDAwWjA0MQswCQYDVQQGEwJjaDEQMA4GA1UE
ChMHQWRub3Z1bTETMBEGA1UEAxMKc2lnbmVyRkVEUzCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAJoWqbsYhNXW0mDsDJPAiTN896e4QML9qnt7FIhVKKe3
T66lT/nfOkFPUZuKejgbjFFDEDChRJf0Achq7lWGKPrNPnrTxZmU7Bcu86BER76L
4kDcGF/x03W9fgUgQ7X45CXYeq4vqfpzNC+lkZA1OxbpcXZA/4Z39Z3pm7CWXnAg
v6nFABKJ9kVAyhuPyb5yIuGHcdLL+068aVp5sxY/6HoXf889+iVFDgTwSXVYKMyZ
nZbvvd/IIod4WuiXsOspPS9yj+E9yMvtsUtChghcQ17ubo7S1P8JxAQWXngopH8Y
nDeOiesJfR2APDdg7EXWYewARSFr10GxuXoKDjLe148CAwEAAaOCAS8wggErMAkG
A1UdEwQCMAAwPwYJYIZIAYb4QgENBDIWME5ldmlzIEtleUJveCBHZW5lcmF0ZWQg
Q2VydGlmaWNhdGUgdXNpbmcgT3BlblNTTDALBgNVHQ8EBAMCA6gwHQYDVR0lBBYw
FAYIKwYBBQUHAwEGCCsGAQUFBwMCMB0GA1UdDgQWBBQ4zYpzY1lB5/bKeg3z1kJO
kkdYgDBoBgNVHSMEYTBfgBRRdKau0TH9VQ0E8ob0J+WyYkcs4aE8pDowODELMAkG
A1UEBhMCY2gxEDAOBgNVBAoTB0Fkbm92dW0xFzAVBgNVBAMTDmJpdGVpYW0tcm9v
dENBggkA+97eIJWmttcwEQYJYIZIAYb4QgEBBAQDAgbAMBUGA1UdEQQOMAyCCnNp
Z25lckZFRFMwDQYJKoZIhvcNAQELBQADggEBAHGHJ7DzRNdPl6Kiy4rCoQR/nhTa
VbBsAeB070NpWma2iun3Wf5zIoefbSlPoofP4tOVYUoKtMHTWCYAUnHIEg5H985y
Ym2MFY0vwgMZ+Jvcs7NCHzK9O/tN+uUjkFNLSCfzTb+K9vyF6lj4L4lQWa5++DZ6
kWPaDWvwY/NOSoIehmJupmcJlA1qxzlTc+659xoOk1WyhusNkuiOUjFrLQ+tgRnD
7dGuzJQyBV1Iy/A4IhpN2ootVgrI7NMJ2YetCq7yuipRZka3RoeVhUs8CWFfYRtc
saTCck7atYyMVlPUf03EppC18ILBmbNzYJ58KT2oQywa7+Sdsqx4+5cOOOU=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEGDCCAwCgAwIBAgIBBDANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQGEwJjaDEQ
MA4GA1UEChMHQWRub3Z1bTEXMBUGA1UEAxMOYml0ZWlhbS1yb290Q0EwHhcNMjAw
MzA1MTYzMDAwWhcNMzAwMzAzMTYzMDAwWjA0MQswCQYDVQQGEwJjaDEQMA4GA1UE
ChMHQWRub3Z1bTETMBEGA1UEAxMKc2lnbmVyRkVEUzCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAJoWqbsYhNXW0mDsDJPAiTN896e4QML9qnt7FIhVKKe3
T66lT/nfOkFPUZuKejgbjFFDEDChRJf0Achq7lWGKPrNPnrTxZmU7Bcu86BER76L
4kDcGF/x03W9fgUgQ7X45CXYeq4vqfpzNC+lkZA1OxbpcXZA/4Z39Z3pm7CWXnAg
v6nFABKJ9kVAyhuPyb5yIuGHcdLL+068aVp5sxY/6HoXf889+iVFDgTwSXVYKMyZ
nZbvvd/IIod4WuiXsOspPS9yj+E9yMvtsUtChghcQ17ubo7S1P8JxAQWXngopH8Y
nDeOiesJfR2APDdg7EXWYewARSFr10GxuXoKDjLe148CAwEAAaOCAS8wggErMAkG
A1UdEwQCMAAwPwYJYIZIAYb4QgENBDIWME5ldmlzIEtleUJveCBHZW5lcmF0ZWQg
Q2VydGlmaWNhdGUgdXNpbmcgT3BlblNTTDALBgNVHQ8EBAMCA6gwHQYDVR0lBBYw
FAYIKwYBBQUHAwEGCCsGAQUFBwMCMB0GA1UdDgQWBBQ4zYpzY1lB5/bKeg3z1kJO
kkdYgDBoBgNVHSMEYTBfgBRRdKau0TH9VQ0E8ob0J+WyYkcs4aE8pDowODELMAkG
A1UEBhMCY2gxEDAOBgNVBAoTB0Fkbm92dW0xFzAVBgNVBAMTDmJpdGVpYW0tcm9v
dENBggkA+97eIJWmttcwEQYJYIZIAYb4QgEBBAQDAgbAMBUGA1UdEQQOMAyCCnNp
Z25lckZFRFMwDQYJKoZIhvcNAQELBQADggEBAHGHJ7DzRNdPl6Kiy4rCoQR/nhTa
VbBsAeB070NpWma2iun3Wf5zIoefbSlPoofP4tOVYUoKtMHTWCYAUnHIEg5H985y
Ym2MFY0vwgMZ+Jvcs7NCHzK9O/tN+uUjkFNLSCfzTb+K9vyF6lj4L4lQWa5++DZ6
kWPaDWvwY/NOSoIehmJupmcJlA1qxzlTc+659xoOk1WyhusNkuiOUjFrLQ+tgRnD
7dGuzJQyBV1Iy/A4IhpN2ootVgrI7NMJ2YetCq7yuipRZka3RoeVhUs8CWFfYRtc
saTCck7atYyMVlPUf03EppC18ILBmbNzYJ58KT2oQywa7+Sdsqx4+5cOOOU=
-----END CERTIFICATE-----

View File

@ -1,8 +1,8 @@
RTENV_SECURITY_CHECK=no_shell
JAVA_OPTS=(
"-XX:+UseContainerSupport"
"-Dfile.encoding=UTF-8"
"-XX:+UseContainerSupport"
"-XX:MaxRAMPercentage=80.0"
"-Djava.net.preferIPv4Stack=true"
"-Djava.net.connectionTimeout=10000"

View File

@ -54,7 +54,7 @@
</Domain>
<AuthState name="Auth_Realm_Main_STS_Check_Trusted_Caller" class="ch.nevis.esauth.auth.states.cache.ReadFromCacheState" final="false" resumeState="true">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<ResultCond name="miss" next="Auth_Realm_Main_STS_Validation_Client_Cert"/>
<ResultCond name="miss" next="Auth_Realm_Main_STS_Dispatcher_TokenType"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<ResultCond name="ok" next="Auth_Realm_Main_STS_Dispatcher_TokenType"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
@ -66,25 +66,6 @@
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="sess:agov.techuser.extId" value="#{request.getActorCertAsString()}"/>
</AuthState>
<AuthState name="Auth_Realm_Main_STS_Validation_Client_Cert" class="ch.nevis.idm.authstate.IdmX509State" final="false" resumeState="true">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<ResultCond name="default" next="Auth_Realm_Main_STS_STS_Audit_Failure"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<ResultCond name="ok" next="Auth_Realm_Main_STS_Validation_Client_Cert_PostProcessing"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<Response value="AUTH_ERROR">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<Gui name="AuthErrorDialog">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<GuiElem name="lasterror" type="error" label="#{notes.containsKey('lasterror') ? 'error.login.cert.' : ''}#{notes['lasterror']}"/>
</Gui>
</Response>
<propertyRef name="nevisIDM_Connector"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="user.certificate" value="#{request.getActorCertAsString()}"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="client.name" value="Default"/>
</AuthState>
<AuthState name="Auth_Realm_Main_STS_Dispatcher_TokenType" class="ch.nevis.esauth.auth.states.standard.ConditionalDispatcherState" final="false" resumeState="true">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<ResultCond name="SamlAssertion" next="Auth_Realm_Main_STS_Service_Provider_State"/>
@ -106,38 +87,6 @@
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="condition:usernameToken" value="${request:currentResource:/nevisauth/services/sts/username:true}"/>
</AuthState>
<AuthState name="Auth_Realm_Main_STS_STS_Audit_Failure" class="ch.nevis.esauth.auth.states.scripting.ScriptState" final="false" resumeState="true">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<ResultCond name="error" next="Auth_Realm_Main_STS_Authentication_Failed"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<ResultCond name="ok" next="Auth_Realm_Main_STS_Authentication_Failed"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<Response value="AUTH_ERROR">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<Arg name="ch.nevis.isiweb4.response.status" value="403"/>
</Response>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="scriptTraceGroup" value="AGOV-ACCT"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="script" value="file:///var/opt/nevisauth/default/conf/sts_audit_failure.groovy"/>
</AuthState>
<AuthState name="Auth_Realm_Main_STS_Validation_Client_Cert_PostProcessing" class="ch.nevis.idm.authstate.IdmGetPropertiesState" final="false" resumeState="true">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<ResultCond name="default" next="Auth_Realm_Main_STS_STS_Audit_Failure"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<ResultCond name="ok" next="Auth_Realm_Main_STS_Check_Impersonator"/>
<propertyRef name="nevisIDM_Connector"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="detaillevel.default" value="EXCLUDE"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="chooseDefaultProfile" value="true"/>
</AuthState>
<AuthState name="nevisIDM_Connector" class="ch.nevis.esauth.auth.states.standard.AuthGeneric" final="false">
<!-- source: pattern://8d94681ba6da73f92618e32d -->
<property name="login.service.connection.0" value="https://idm:8989/nevisidm/services/v1/LoginService"/>
<!-- source: pattern://8d94681ba6da73f92618e32d -->
<property name="admin.service.connection.0" value="https://idm:8989/nevisidm/services/v1/AdminService"/>
</AuthState>
<AuthState name="Auth_Realm_Main_STS_Service_Provider_State" class="ch.nevis.esauth.auth.states.saml.ServiceProviderState" final="false" resumeState="true">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<ResultCond name="default" next="Auth_Realm_Main_STS_STS_Audit_Failure"/>
@ -225,6 +174,21 @@
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="detaillevel.default" value="EXCLUDE"/>
</AuthState>
<AuthState name="Auth_Realm_Main_STS_STS_Audit_Failure" class="ch.nevis.esauth.auth.states.scripting.ScriptState" final="false" resumeState="true">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<ResultCond name="error" next="Auth_Realm_Main_STS_Authentication_Failed"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<ResultCond name="ok" next="Auth_Realm_Main_STS_Authentication_Failed"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<Response value="AUTH_ERROR">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<Arg name="ch.nevis.isiweb4.response.status" value="403"/>
</Response>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="scriptTraceGroup" value="AGOV-ACCT"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="script" value="file:///var/opt/nevisauth/default/conf/sts_audit_failure.groovy"/>
</AuthState>
<AuthState name="Auth_Realm_Main_STS_Verify_User_extID" class="ch.nevis.idm.authstate.IdmUserVerifyState" final="false" resumeState="true">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<ResultCond name="clientNotFound" next="Auth_Realm_Main_STS_STS_Audit_Failure"/>
@ -243,31 +207,6 @@
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="client.name" value="agov"/>
</AuthState>
<AuthState name="Auth_Realm_Main_STS_Authentication_Failed" class="ch.nevis.esauth.auth.states.standard.AuthError" final="false" resumeState="true">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<Response value="AUTH_ERROR">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<Gui name="Error">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<GuiElem name="info" type="error" label="error_99"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<GuiElem name="submit" type="button" label="continue.button.label"/>
</Gui>
</Response>
</AuthState>
<AuthState name="Auth_Realm_Main_STS_Check_Impersonator" class="ch.nevis.esauth.auth.states.standard.ConditionalDispatcherState" final="false" resumeState="true">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<ResultCond name="default" next="Auth_Realm_Main_STS_STS_Audit_Failure"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<ResultCond name="isImpersonator" next="Auth_Realm_Main_STS_Clear_Session"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<Response value="AUTH_ERROR">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<Arg name="ch.nevis.isiweb4.response.status" value="403"/>
</Response>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="condition:isImpersonator" value="${response/actualRoles/^.*(nevisIdm\.Impersonator).*$}"/>
</AuthState>
<AuthState name="Auth_Realm_Main_STS_Verify_Shadow_User_Error" class="ch.nevis.esauth.auth.states.standard.AuthLogout" final="true" resumeState="true">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<Response value="AUTH_ERROR">
@ -293,6 +232,24 @@
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="cred.type" value="CONTEXT_PASSWORD"/>
</AuthState>
<AuthState name="nevisIDM_Connector" class="ch.nevis.esauth.auth.states.standard.AuthGeneric" final="false">
<!-- source: pattern://8d94681ba6da73f92618e32d -->
<property name="login.service.connection.0" value="https://idm:8989/nevisidm/services/v1/LoginService"/>
<!-- source: pattern://8d94681ba6da73f92618e32d -->
<property name="admin.service.connection.0" value="https://idm:8989/nevisidm/services/v1/AdminService"/>
</AuthState>
<AuthState name="Auth_Realm_Main_STS_Authentication_Failed" class="ch.nevis.esauth.auth.states.standard.AuthError" final="false" resumeState="true">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<Response value="AUTH_ERROR">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<Gui name="Error">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<GuiElem name="info" type="error" label="error_99"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<GuiElem name="submit" type="button" label="continue.button.label"/>
</Gui>
</Response>
</AuthState>
<AuthState name="Auth_Realm_Main_STS_Verify_User_extID_IdmGetPropertiesState" class="ch.nevis.idm.authstate.IdmGetPropertiesState" final="false" resumeState="true">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<ResultCond name="SOAP:showGui" next="Auth_Realm_Main_STS_STS_Audit_Success"/>
@ -314,43 +271,6 @@
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="chooseDefaultProfile" value="true"/>
</AuthState>
<AuthState name="Auth_Realm_Main_STS_Clear_Session" class="ch.nevis.esauth.auth.states.standard.TransformAttributes" final="false" resumeState="true">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<ResultCond name="ok" next="Auth_Realm_Main_STS_Cache_Trusted_Caller"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<Response value="AUTH_ERROR">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<Arg name="ch.nevis.isiweb4.response.status" value="403"/>
</Response>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="sess:agov.techuser.extId" value="${sess:ch.adnovum.nevisidm.user.extId}"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="sess:ch.adnovum.nevisidm.clientExtId" value=""/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="sess:ch.adnovum.nevisidm.clientId" value=""/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="sess:ch.adnovum.nevisidm.clientName" value=""/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="sess:ch.adnovum.nevisidm.profileExtId" value=""/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="sess:ch.adnovum.nevisidm.profileId" value=""/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="sess:ch.adnovum.nevisidm.profileName" value=""/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="sess:ch.adnovum.nevisidm.user.clientExtId" value=""/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="sess:ch.adnovum.nevisidm.user.extId" value=""/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="sess:ch.adnovum.nevisidm.user.loginId" value=""/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="sess:ch.adnovum.nevisidm.userDto" value=""/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="sess:ch.adnovum.nevisidm.userExtId" value=""/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="sess:ch.nevis.idm.User.extId" value=""/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="removeOnEmptyValue" value="true"/>
</AuthState>
<AuthState name="Auth_Realm_Main_STS_STS_Audit_Success" class="ch.nevis.esauth.auth.states.scripting.ScriptState" final="false" resumeState="true">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<ResultCond name="error" next="Auth_Realm_Main_STS_Authentication_Failed"/>
@ -366,26 +286,6 @@
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="script" value="file:///var/opt/nevisauth/default/conf/sts_audit_success.groovy"/>
</AuthState>
<AuthState name="Auth_Realm_Main_STS_Cache_Trusted_Caller" class="ch.nevis.esauth.auth.states.cache.WriteToCacheState" final="false" resumeState="true">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<ResultCond name="failed" next="Auth_Realm_Main_STS_STS_Audit_Failure"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<ResultCond name="ok" next="Auth_Realm_Main_STS_Dispatcher_TokenType"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<Response value="AUTH_ERROR"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="cacheSpace" value="TechAuthCache"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="hashAlgorithm" value="SHA-512"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="maxAge" value="3600"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="maxEntries" value="2"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="overwriteOldEntries" value="false"/>
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<property name="#{request.getActorCertAsString()}" value="${sess:agov.techuser.extId}"/>
</AuthState>
<AuthState name="Auth_Realm_Main_STS_Auth_Done" class="ch.nevis.esauth.auth.states.standard.AuthDone" final="false" resumeState="true">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->
<Response value="AUTH_DONE">

View File

@ -1,4 +1,4 @@
otel.service.name = auth-sts
otel.traces.exporter = none
otel.metrics.exporter = none
otel.logs.exporter = none
otel.service.name=auth-sts
otel.traces.exporter=none
otel.metrics.exporter=none
otel.logs.exporter=none

View File

@ -27,25 +27,20 @@ spec:
livenessProbe:
soap:
tcpSocket: true
periodSeconds: 5
initialDelaySeconds: 40
periodSeconds: 20
timeoutSeconds: 4
readinessProbe:
management:
httpGet:
path: "/nevisauth/liveness"
periodSeconds: 5
initialDelaySeconds: 40
periodSeconds: 30
timeoutSeconds: 6
startupProbe:
management:
httpGet:
path: "/nevisauth/liveness"
periodSeconds: 5
timeoutSeconds: 6
failureThreshold: 50
podDisruptionBudget:
maxUnavailable: "50%"
git:
tag: "r-90c0ddd9c0c4d9011252ef186298ca61c939e952"
tag: "r-5560b9df58bc00fcf3fc92f29f5f7840af9dbf26"
dir: "DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth"
credentials: "git-credentials"
keystores:

View File

@ -1,22 +1,32 @@
-----BEGIN CERTIFICATE-----
MIIDlDCCAnwCCQC4xKJxfbSLBzANBgkqhkiG9w0BAQsFADCBizELMAkGA1UEBhMC
Y2gxEDAOBgNVBAoMB2Fkbm92dW0xDTALBgNVBAsMBGFnb3YxJzAlBgNVBAMMHmph
a29iLmFnb3YtZC5henVyZS5hZG5vdnVtLm5ldDEyMDAGCSqGSIb3DQEJARYjaW5m
b0BqYWtvYi5hZ292LWQuYXp1cmUuYWRub3Z1bS5uZXQwHhcNMjMwMzIxMTUyMjI0
WhcNMjgwMzE5MTUyMjI0WjCBizELMAkGA1UEBhMCY2gxEDAOBgNVBAoMB2Fkbm92
dW0xDTALBgNVBAsMBGFnb3YxJzAlBgNVBAMMHmpha29iLmFnb3YtZC5henVyZS5h
ZG5vdnVtLm5ldDEyMDAGCSqGSIb3DQEJARYjaW5mb0BqYWtvYi5hZ292LWQuYXp1
cmUuYWRub3Z1bS5uZXQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDB
8LPO6Nack2z1whTratLxRD9KraO8QGrVTEa0p+23EKJH4WYE0QGzXbX4oFl2maXE
QDeCBofTnrl8sL3yVxBy56qO8T3VxYtt9akjty6PujO48bgJr2VGjGgtPYPUeOEk
lzCS616732Bnxc2iqo267G/tGooRIOOqefSyhEGmbI3KGv/zYZn/qxQo/A+5f+6y
zEoKdmnBF6vnowvffKfdFKI8udd5eKmfyrc5iNYHXoVP/HmqKbkyrBw1U0ysihRJ
3vyJVDtirQ5chLn0jOZ4UZ5SBck9+784yrVqpNbsWAe3NU+Vfx4wCk/rPWRDa1E2
fk+gEVvEMUFt4UvU25BdAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAIxToc9muu9z
d4yycZCgZbDtzrq2Un+m/m3TrBNzLV7UBbGt7HW9/kxvdFJTKgNEj+ZD1cY6O6D7
vrWV0Xb1XPgkaAfypc4Y7IOUTFDR/ib4siP9gPkHvr5WSIip3mFgX9yIV910N/hh
ImE9/Jtf/q9MopBu8J6zRmL/J8mVewVdcU3xqz27OVMMSht0Du8FcpIrNQwqc1LN
tCgdj+pw5vl7NH546WlyYNpLEkAeBpJ3XCBDDwcQftC+/cQ7GKJGtOJ4ODdxWMyX
ThsHJ7MCTiN+MoW5CeioGSmngezh4Gs5SpGAGVvwNvXW2jiGdRDdHmyxDPjCQvYA
wwZrmgtpYE0=
-----END CERTIFICATE-----
MIIFjTCCA3WgAwIBAgIUezb8qY+kCx4eW1J9g24Y+bsf+kYwDQYJKoZIhvcNAQEL
BQAwVjELMAkGA1UEBhMCY2gxEDAOBgNVBAoMB0Fkbm92dW0xDTALBgNVBAsMBEFH
T1YxJjAkBgNVBAMMHWF1dGguYWdvdi13LmF6dXJlLmFkbm92dW0ubmV0MB4XDTI0
MDgxOTExNTE0N1oXDTM0MDgxNzExNTE0N1owVjELMAkGA1UEBhMCY2gxEDAOBgNV
BAoMB0Fkbm92dW0xDTALBgNVBAsMBEFHT1YxJjAkBgNVBAMMHWF1dGguYWdvdi13
LmF6dXJlLmFkbm92dW0ubmV0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
AgEA1wWp33BH4/HjxovF60ac3LYCr0OuRq37K7vZrFZ0CxdnrZNgOTqW6PK72aOZ
rrL/9GHS7kr+6ORrtRcaQYJttqFWkyQVIQyb5wTRT8rAaugFFCon+FhIPNbrPU3l
PSqNEnxYCPsjA32qfAg96gHhn1ZpSe/SYOguB6mAOh+5vCFAvGOTfL9Gugayqe8L
3IAs7caDrEqB+sGo52P47Pz3fFnwlKnDZTFd2pOx43JYSNTE4bYBIOWwaTuN1MPM
1XcDZXJ1eEab/euwJ6zDdTE09h+ZGEo89ogJmC0Ragpi/7SyY2431QaoC9q4tlen
tQegWJWTMU/KhzdUamd9jJGa8bL7uO2edvHh+f0dIZxd/hPq0LteKiDXe258tpci
0laY/9SHgDNJv366dnL0HwkpqUZrKhGv+3EMqwCsqHN7Dhswz8AMWOShvdOPkGjF
gFJhdvGay1gyM1RFhlcEhl3yEdkVWAP3dJkmlSRotdZRsgfpgQHuWE5K5C96fSny
yiRN4+LpYkZksFsGoWiMcpCIY2/s7uuv4Xo3Ql63gPL/dDjSCNHeXAI0BqGpVk9D
dopXU06dfsY5p46Su3ku8do2QMpMi/b1bCtSOrpRKrr/4GJcr8OKyNsTNaFdh/Mm
xhJ6+U3JkMNuAWcUAVxiNpF25R+xPV+kO+zDs+8IwJtMutcCAwEAAaNTMFEwHQYD
VR0OBBYEFPvUI3yPIDXHsmoSRBzTlFcKVVA9MB8GA1UdIwQYMBaAFPvUI3yPIDXH
smoSRBzTlFcKVVA9MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggIB
AGzBJmppDmQPapUAI+bHpsXIxA+Uk3fFJIUDbzn2q3kkjWzszldBGJ+R+dmA/ROE
rokT9oNggvoSGzf5Lyu9oniB8FoWxp2mWRzXiTXsuz0ZLmT3ZxOah1g9MtXLD567
mdeKgjMFCM82OIRMsazdCtb43fJ0mvjuZ2Dv0Dt6O5I9TOWzTSx+ieGj2q/ZIQzl
3sfNcIuovVHjiiGl5wpHVQfUeRhRyB2xnetfe+UqdJVjJm3WXpomdJh6GxGYnH78
ZhnD6TJLhb41s5WF7dSxAQhTYJJuTTsF68bQEL787Mccqi4Ft4GqtF+vYTSAjWcM
jVjXbd1Bk0gHqsCl+TxJg8VfBiauFf5WP96xnVw8Hx9aOMVNejLWVjYE/ExVyW8g
94SJsL+cXjMjlZeL60yY9vgd59BHBOxBBq+5Qbx5bcfaIvXgaxt6sm1dk40D+YzR
UqFMJtGMvPfRl+2yUQ36VinQxyFbbf6Yq4s/E0We5aRPp2CFiRqmtip9Chvk/7fP
+b8zZvJgTUJZFWtvVNs6QqOu/yOxtFpWzfHmlvp3ticepBuT6bKtUJHtEnHheCCX
FF4MB65pTI/NrDVOec6PgRChz3UPGBEAtjjTCQUOe4HKQmOKedZKts51LuvHSuRu
S9JPohzGT95cglskfqPn51n5hJOOTnMfg/Qj6uXQZU9+
-----END CERTIFICATE-----

View File

@ -1,30 +1,54 @@
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFKzBVBgkqhkiG9w0BBQ0wSDAnBgkqhkiG9w0BBQwwGgQUKIdhme1LQ2vMonbp
aes9/gRupIYCAggAMB0GCWCGSAFlAwQBKgQQeuo/hWDbfC4vCB3F5pfeKgSCBNAR
HeV95Ar67bUkkWrHUC0jCRvnMjh9wyC6w1pFP2nW+++Qkl93v+gIjr4b9Rw9RBTd
QsOVkaB7vvQ5qjvWya9HJ2aHZ6KwMb2GJdY0ouH16ga/YRZFKQ0aCfO9spezUJ7t
2KesD78IxFbey5mRYXmvTW6+BeUt+d4TQbgR0/PdqC9WOg7H3iBvs61MQgro2Itc
sxQ9SBHa358oyUkGuIz2XKo/enikX49LOjpwB5EdFKky+YhtvGx9NHQIzs8RZqfd
Lpe6VsWXTTSSiXD8r7WEsCnfThpneOE1Pz58woeT3QHt6WscPsUGPx/coQNKzx+R
0d+gt73kwqFbIbI9DkUoaruv6qsLcZ2yC36YNie7ggaqCC6dhan2tx3U+vRTn6I8
dOCAuP7bx/iQDfHXsUC5Tatu91OkEbGA4Oz3WXpSyhmMXsSrRP7Rjivb0e7rLlde
Q3TWYpa5KWqVeFpZhUFyrwJrtmMwzdu2tLfZDFKEriA/UbB3djHWM/O4/LvFqvpV
VQfKtrD8OcnElGt5nJoFOGO8cXWD4opaZ5nGboLpuLuOtZN59EnZwtI1lyALdrB4
MDENw0tVx7LBo13jvAtgx7vXgSPzNpJvp+A+0V2yeT+cHWeX1T1H79QcNE0vGkr/
aURDUTAEIYO2TOp+14Ag1Y9T8j+z0m6lxqwO33Hf07wqzeVHaNBh3Ckv4+xUNl+U
MDx/ZSmdPe07mvVrleb83XYvkC8rytS43mKxke912l+++GPWHLDl6wz1LwAQbI2b
5S/iPJI08O3y9cylRMOSBGXnIh8Ml748zEJVeac+B32cqt3nQ16WwCxfF6UjEeEE
aMKhPsdgB0pRRGFL8otK2bheqlJrtFk0FfFJ4B1gbO0oHPCygWvV5Cnz8UcNOMIS
u5rIjD4wz8Gcclk3c5fvfKb9xhcpop3sAJy/srteKRDJrJNlHwleCDgkVE5PkuDP
z0B6OyTsprupTVx3eLbiA1yRT8HzaaGo6xfc7dKwWZW7J+jmbKVsbjcxSo/ChsMg
ZP+cWGh2SLQ04mNkWetOYHMODlSAfrYYRIPkMUyLJCDPgynLeOa0u8xWxpQsmt8x
6bVhtJhf4NxyZpKYgNfdkYoerqyBOhbUlcfud1qdqRCfp6gq4rBhBktGbGkgaNk0
bGLu+/uWm3pDPSWRWnhC8gXvEwMtr3kMzAe5f0yQ6L/nsBPGs+A8rGTGDg0wfoxW
Pn+AX9ywY1DWHBCK02QooIJKfvVnwr8qnhHVrqOOJlP5GMIXpx5eYkSrUtDxGwR8
JOgUMAJ9GVwvxqi3g8MFPrb76b6ZheofBU5MI8rzGsXN1qWf7Ml0UQc2PcShvyNX
BW0xuX5dK1UZRKJcDGIWdeFjrnAhXayJCQse0wsXSRt9WUxSNUb/MxhO7BIWrEQf
Famdx2jz/RlnXinUizdlRL+ws8KknA90JdSlT+j+pvsyTHuzJ+Xzex8R+1AmlT2O
4ZVzzx2JLOcFu5j08t5U5CKbfitsINakPVATekJdov1bCo803dUExfT2OsTxrqR9
mx6GJTWYE32tg/v4PASu1986ojVNLi2WjrX8NJzkqlUE+4xIeVWN0HE1SflJsL6x
YXTHWodpQ9VTd0OliSFvzOjFtV768c1+ySV6QngCOQ==
MIIJqzBVBgkqhkiG9w0BBQ0wSDAnBgkqhkiG9w0BBQwwGgQUbPUZn/3VpMbderej
CK2+IC16nwwCAggAMB0GCWCGSAFlAwQBKgQQvPO51vuHnkHznERAJ+mJngSCCVDI
JlL/aK5MTWYntg5qFJ2L3w4GNTaKeVXrCE1Q/UrXo4/OnNVQdHnyWiuzOt0FoGow
H22nWxbehwlykBPhPNw4719QOiMWQJqggR/61IUh8xOBrchqjQ2irIDjiXnTgD1N
ADmtLHZC6duXncdFOtpeooHKMW61P6+KGBck0n8jM96+DuIKZKF2VO0hEzrUCF3d
4ODXNX8EEc4l1UdGUU0l7r/SvxoDyprGnFW1Di+PZCRWwUkHbDrqOWEzs5UIzTRM
2Tyt5osJB7v+0XB3f2PeBEHkQQhd9mvPIiSO5EwQF4JNQx7LMcnV1eFYXGF30pVb
g9nG3UFbI68uH+uuuEU66yug/h/0RzMSBp8Le6eIck5/jaXBPzDstrc3VW5f1f+n
I3LsVplUE5znK5okwcGNKr84Ppf6QJ0Hjmbx927j8/n5yMYAn8xa1X5XNeC0dmy8
Fjbsz1YpiTx9uQ33thXWbpQXno3fJzXvTVJ258GciPwcwqUTiudkMz3eD/tk/Ehd
SM2oxCKIFDjEUnTSJ89uj+vz9OlTAdaUr0uEfpM6vwq+610UviVRPrNpI2v/qiqJ
SCeCsce4cN4eIjdpgPIt89H/ISDaOlpeCNQ8yLkkM4P89zXjir7Mt7jt3Uh58xoO
rOHwQW8xUp+92BvES17PS072ywPS2jO/+hVQv6lf1LPHOmIlEWUln8no6KUBupMM
ukaW+AmBxxYA1nycC+7IyXDUGiX8MU8GhT45xBpj6t5gKr5QwvJpGcH5oJ0qqq+s
5B4bmIkaDUgbyAcnishANkHt8/wPvKLbefgRPkpRzaPFQqXu18nRr5GTa+dWfS1y
GJOVtKcGEyMCHTWfvT9NQZryP3uSsVvl4unEcScWqUL12rDfe31EuTr8JD79I7US
ssJoDtOKSsP/fFcUatUDcfsb+hkBGN19CdDb4LvPY23FhUc1ApYbWmU5HlY16uQx
zjoVVZ3lCckJHojPlXpgv0y/CC6tOyEwKxC2u2voPunbR/D7rJ+5AIWDDc3pzzPZ
KH1jfJPL8KbM8lBc+hpyLBtSnQpj/osN/jLY7El3ciFcux/NFSffeWKn/QuYYC8p
LtJzWZiURZ6SWFZ4llPKbDeXsKhSOuroMt0aRUfQu2zHw++Ss94X+wJ3Tg64uP/9
Bw9B5LFdTogChz7ObmGr9OnyJuQaj9/riWP6kowjXSQhku30RMpf6MQnxg8KLhI/
99y4rGp+OLcxZcKbmENWIl9QcEVbyPfBq2yGSk/drT3xUJghCcPjObKToutHRs9r
cN0IE6kzRiruRdm2bejgni+v5BhioiZRiSwr5om57G1N4e8BseTxY+zQrU2WwdJp
ll1zqk5t2J+83uU/EQBmIkXpP+xqrod/uOUm84d5nYRXuO94DLUDwqU0KI7QKoHK
W6XSU5TDzmynPrycl1IGW1l6ddb92h4FPYyYsppb+G78v2WfVFSsze2aBIDbDZUh
QEaElJuNIOA+bOSctpTr0i70HXhGzVMXStXJMAIFgR9wKppxW+0IXdjYzhKVE8gx
uXiJfwJx5pSDBWFDZqLM8uTH3hGOuvRX06iSHIFCsxjds7VWXBh91iGw9Xef9D50
DVaIhF12dTRsrdi5AqYYkTb4AEzpUQXg7HPi678F6UnsOzCVYZqMWZaF3Ec1UHxu
PZ9A27DvK1MsUm4QZ+7XrzWrRdkmRFXqhtfxCxHRpF+YlRPTyWSVmx0fEkGjLiAd
uHU0D14lcqNvmusWOWXVYePOS44R3DrQFULgzfsly09bKFqRZdKGQavVjUbokP1S
+MDQOca4I6KSxo2358rUGDhq3A0xI5U24wjinNWHktTPXkJbvcJubx/sHb8QMxST
qSXr5vYjJfms1sU3v2QYrORU42CBOvUAaZYTwLDq+PSN37IcyQoAhTU2ZgPSzSQe
8aJvxgZWgWedsoeKpKK54yk7rG7b+Qhk6ZHrvFS6cI0YasYQ4GHZHfieG0dTGlVS
FAAF+HF9/TI3vZPx5qzS6jhtpy6bI/MxjCachA1suShqHZNn4dGW13C6Kf6a6Ci8
fOMVK/3t4H5oU+2fqoo41jU/1MmLuNUFt7F08X+3eRw/dmhGuf6Mcd46L9SMPtXp
quSmX/q8kG1YUfj0vXfxBox9rQWYY8kNjp6OUkvAwBYoy6a1j0h420ZQhyNS0vzy
w2d3UjTjoEdo3qOKCDKLGA9ILSJvK/jzDEoS0G23eiaQJ5DHDK6m++izm+2oCMwM
+5fcoRhn0SVzAgE63x80btbGuo52sMp57PcGZq50s8yeVYziyZEVPIb5I/vau8BH
CxZ++8ENtvKmYWX84hXApR+2rX6hWWi/b34YIG4jtCr+aeaNumv5NT19G+g84BsL
akcBUtt3px2icLZtUv+ck/JCG/7pUvIqZ2HMKLZgsSZan1pfdfdl1Q28xG97X/dR
gCzr15ZjlX8bwtRNQs+xhv6lDQtFOv0wgYYW6rolZS3SOaGhWU4/E1a+RT16NUvS
lajoYD1jFCk6Y2WWIB1tHxAlNC06EQB3oT+gPtzZ9upcM3Qv0X0RyXgPcLFcveiC
aZZtBY6MElzXiRpRB8y6XNyvJz+1vB05DDlcCnx2ovztHAk74AiUp0VlSk6ylqDQ
DKOaXHz5ZzFT+Ptaj3m1xBYc3m4Iyw98RXX7IGs7hOY2roaqO3rI/lmgTVuA3hv7
m3CX8vbk3gqV1+Rt2ObuddnKtkrG07lP72HliZBLNRgEoaX1DSKdWq7A8G5uNWJj
xvwWUDIu/PESII1x8D52pmZ0QH1VQmas17Ezme/4BGvOR5/0vwKUEXPYWhHvtB31
4q/HMWpCCH5wF5DF0JfWmOhDpR3EvtG8HnNMzP8cdHbCLaG4SUz5uNKgJ6pI5cjV
E+HS+McIN1wp5mFodR3qwjMdLoH2uJ4YOqP05qri1b40xXM/j6+p9tXXYuV/8d6K
+L8sZxNvORwf6z8yys2cAHC5xPYBC8c0qKE9a1GtYJRPpjXona+iHoM5KooGFmYx
qZz2AvqbPYIwTHD5sV/K0wA3Zjlw6HOHBnZ6C7ZINAL/idY5uLOP6c3HCmVLRz3a
KIZCBintlvOKVSlzfGh7MjAJpEkzqGBNQIFCkRflrJW13R4/fiRL2fqRm2UjbU7q
QQo+ffs3emwCxkfxdOpubKUoANiFdXvQlKiC2BP/Yw==
-----END ENCRYPTED PRIVATE KEY-----

View File

@ -1,53 +1,87 @@
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFKzBVBgkqhkiG9w0BBQ0wSDAnBgkqhkiG9w0BBQwwGgQUKIdhme1LQ2vMonbp
aes9/gRupIYCAggAMB0GCWCGSAFlAwQBKgQQeuo/hWDbfC4vCB3F5pfeKgSCBNAR
HeV95Ar67bUkkWrHUC0jCRvnMjh9wyC6w1pFP2nW+++Qkl93v+gIjr4b9Rw9RBTd
QsOVkaB7vvQ5qjvWya9HJ2aHZ6KwMb2GJdY0ouH16ga/YRZFKQ0aCfO9spezUJ7t
2KesD78IxFbey5mRYXmvTW6+BeUt+d4TQbgR0/PdqC9WOg7H3iBvs61MQgro2Itc
sxQ9SBHa358oyUkGuIz2XKo/enikX49LOjpwB5EdFKky+YhtvGx9NHQIzs8RZqfd
Lpe6VsWXTTSSiXD8r7WEsCnfThpneOE1Pz58woeT3QHt6WscPsUGPx/coQNKzx+R
0d+gt73kwqFbIbI9DkUoaruv6qsLcZ2yC36YNie7ggaqCC6dhan2tx3U+vRTn6I8
dOCAuP7bx/iQDfHXsUC5Tatu91OkEbGA4Oz3WXpSyhmMXsSrRP7Rjivb0e7rLlde
Q3TWYpa5KWqVeFpZhUFyrwJrtmMwzdu2tLfZDFKEriA/UbB3djHWM/O4/LvFqvpV
VQfKtrD8OcnElGt5nJoFOGO8cXWD4opaZ5nGboLpuLuOtZN59EnZwtI1lyALdrB4
MDENw0tVx7LBo13jvAtgx7vXgSPzNpJvp+A+0V2yeT+cHWeX1T1H79QcNE0vGkr/
aURDUTAEIYO2TOp+14Ag1Y9T8j+z0m6lxqwO33Hf07wqzeVHaNBh3Ckv4+xUNl+U
MDx/ZSmdPe07mvVrleb83XYvkC8rytS43mKxke912l+++GPWHLDl6wz1LwAQbI2b
5S/iPJI08O3y9cylRMOSBGXnIh8Ml748zEJVeac+B32cqt3nQ16WwCxfF6UjEeEE
aMKhPsdgB0pRRGFL8otK2bheqlJrtFk0FfFJ4B1gbO0oHPCygWvV5Cnz8UcNOMIS
u5rIjD4wz8Gcclk3c5fvfKb9xhcpop3sAJy/srteKRDJrJNlHwleCDgkVE5PkuDP
z0B6OyTsprupTVx3eLbiA1yRT8HzaaGo6xfc7dKwWZW7J+jmbKVsbjcxSo/ChsMg
ZP+cWGh2SLQ04mNkWetOYHMODlSAfrYYRIPkMUyLJCDPgynLeOa0u8xWxpQsmt8x
6bVhtJhf4NxyZpKYgNfdkYoerqyBOhbUlcfud1qdqRCfp6gq4rBhBktGbGkgaNk0
bGLu+/uWm3pDPSWRWnhC8gXvEwMtr3kMzAe5f0yQ6L/nsBPGs+A8rGTGDg0wfoxW
Pn+AX9ywY1DWHBCK02QooIJKfvVnwr8qnhHVrqOOJlP5GMIXpx5eYkSrUtDxGwR8
JOgUMAJ9GVwvxqi3g8MFPrb76b6ZheofBU5MI8rzGsXN1qWf7Ml0UQc2PcShvyNX
BW0xuX5dK1UZRKJcDGIWdeFjrnAhXayJCQse0wsXSRt9WUxSNUb/MxhO7BIWrEQf
Famdx2jz/RlnXinUizdlRL+ws8KknA90JdSlT+j+pvsyTHuzJ+Xzex8R+1AmlT2O
4ZVzzx2JLOcFu5j08t5U5CKbfitsINakPVATekJdov1bCo803dUExfT2OsTxrqR9
mx6GJTWYE32tg/v4PASu1986ojVNLi2WjrX8NJzkqlUE+4xIeVWN0HE1SflJsL6x
YXTHWodpQ9VTd0OliSFvzOjFtV768c1+ySV6QngCOQ==
MIIJqzBVBgkqhkiG9w0BBQ0wSDAnBgkqhkiG9w0BBQwwGgQUbPUZn/3VpMbderej
CK2+IC16nwwCAggAMB0GCWCGSAFlAwQBKgQQvPO51vuHnkHznERAJ+mJngSCCVDI
JlL/aK5MTWYntg5qFJ2L3w4GNTaKeVXrCE1Q/UrXo4/OnNVQdHnyWiuzOt0FoGow
H22nWxbehwlykBPhPNw4719QOiMWQJqggR/61IUh8xOBrchqjQ2irIDjiXnTgD1N
ADmtLHZC6duXncdFOtpeooHKMW61P6+KGBck0n8jM96+DuIKZKF2VO0hEzrUCF3d
4ODXNX8EEc4l1UdGUU0l7r/SvxoDyprGnFW1Di+PZCRWwUkHbDrqOWEzs5UIzTRM
2Tyt5osJB7v+0XB3f2PeBEHkQQhd9mvPIiSO5EwQF4JNQx7LMcnV1eFYXGF30pVb
g9nG3UFbI68uH+uuuEU66yug/h/0RzMSBp8Le6eIck5/jaXBPzDstrc3VW5f1f+n
I3LsVplUE5znK5okwcGNKr84Ppf6QJ0Hjmbx927j8/n5yMYAn8xa1X5XNeC0dmy8
Fjbsz1YpiTx9uQ33thXWbpQXno3fJzXvTVJ258GciPwcwqUTiudkMz3eD/tk/Ehd
SM2oxCKIFDjEUnTSJ89uj+vz9OlTAdaUr0uEfpM6vwq+610UviVRPrNpI2v/qiqJ
SCeCsce4cN4eIjdpgPIt89H/ISDaOlpeCNQ8yLkkM4P89zXjir7Mt7jt3Uh58xoO
rOHwQW8xUp+92BvES17PS072ywPS2jO/+hVQv6lf1LPHOmIlEWUln8no6KUBupMM
ukaW+AmBxxYA1nycC+7IyXDUGiX8MU8GhT45xBpj6t5gKr5QwvJpGcH5oJ0qqq+s
5B4bmIkaDUgbyAcnishANkHt8/wPvKLbefgRPkpRzaPFQqXu18nRr5GTa+dWfS1y
GJOVtKcGEyMCHTWfvT9NQZryP3uSsVvl4unEcScWqUL12rDfe31EuTr8JD79I7US
ssJoDtOKSsP/fFcUatUDcfsb+hkBGN19CdDb4LvPY23FhUc1ApYbWmU5HlY16uQx
zjoVVZ3lCckJHojPlXpgv0y/CC6tOyEwKxC2u2voPunbR/D7rJ+5AIWDDc3pzzPZ
KH1jfJPL8KbM8lBc+hpyLBtSnQpj/osN/jLY7El3ciFcux/NFSffeWKn/QuYYC8p
LtJzWZiURZ6SWFZ4llPKbDeXsKhSOuroMt0aRUfQu2zHw++Ss94X+wJ3Tg64uP/9
Bw9B5LFdTogChz7ObmGr9OnyJuQaj9/riWP6kowjXSQhku30RMpf6MQnxg8KLhI/
99y4rGp+OLcxZcKbmENWIl9QcEVbyPfBq2yGSk/drT3xUJghCcPjObKToutHRs9r
cN0IE6kzRiruRdm2bejgni+v5BhioiZRiSwr5om57G1N4e8BseTxY+zQrU2WwdJp
ll1zqk5t2J+83uU/EQBmIkXpP+xqrod/uOUm84d5nYRXuO94DLUDwqU0KI7QKoHK
W6XSU5TDzmynPrycl1IGW1l6ddb92h4FPYyYsppb+G78v2WfVFSsze2aBIDbDZUh
QEaElJuNIOA+bOSctpTr0i70HXhGzVMXStXJMAIFgR9wKppxW+0IXdjYzhKVE8gx
uXiJfwJx5pSDBWFDZqLM8uTH3hGOuvRX06iSHIFCsxjds7VWXBh91iGw9Xef9D50
DVaIhF12dTRsrdi5AqYYkTb4AEzpUQXg7HPi678F6UnsOzCVYZqMWZaF3Ec1UHxu
PZ9A27DvK1MsUm4QZ+7XrzWrRdkmRFXqhtfxCxHRpF+YlRPTyWSVmx0fEkGjLiAd
uHU0D14lcqNvmusWOWXVYePOS44R3DrQFULgzfsly09bKFqRZdKGQavVjUbokP1S
+MDQOca4I6KSxo2358rUGDhq3A0xI5U24wjinNWHktTPXkJbvcJubx/sHb8QMxST
qSXr5vYjJfms1sU3v2QYrORU42CBOvUAaZYTwLDq+PSN37IcyQoAhTU2ZgPSzSQe
8aJvxgZWgWedsoeKpKK54yk7rG7b+Qhk6ZHrvFS6cI0YasYQ4GHZHfieG0dTGlVS
FAAF+HF9/TI3vZPx5qzS6jhtpy6bI/MxjCachA1suShqHZNn4dGW13C6Kf6a6Ci8
fOMVK/3t4H5oU+2fqoo41jU/1MmLuNUFt7F08X+3eRw/dmhGuf6Mcd46L9SMPtXp
quSmX/q8kG1YUfj0vXfxBox9rQWYY8kNjp6OUkvAwBYoy6a1j0h420ZQhyNS0vzy
w2d3UjTjoEdo3qOKCDKLGA9ILSJvK/jzDEoS0G23eiaQJ5DHDK6m++izm+2oCMwM
+5fcoRhn0SVzAgE63x80btbGuo52sMp57PcGZq50s8yeVYziyZEVPIb5I/vau8BH
CxZ++8ENtvKmYWX84hXApR+2rX6hWWi/b34YIG4jtCr+aeaNumv5NT19G+g84BsL
akcBUtt3px2icLZtUv+ck/JCG/7pUvIqZ2HMKLZgsSZan1pfdfdl1Q28xG97X/dR
gCzr15ZjlX8bwtRNQs+xhv6lDQtFOv0wgYYW6rolZS3SOaGhWU4/E1a+RT16NUvS
lajoYD1jFCk6Y2WWIB1tHxAlNC06EQB3oT+gPtzZ9upcM3Qv0X0RyXgPcLFcveiC
aZZtBY6MElzXiRpRB8y6XNyvJz+1vB05DDlcCnx2ovztHAk74AiUp0VlSk6ylqDQ
DKOaXHz5ZzFT+Ptaj3m1xBYc3m4Iyw98RXX7IGs7hOY2roaqO3rI/lmgTVuA3hv7
m3CX8vbk3gqV1+Rt2ObuddnKtkrG07lP72HliZBLNRgEoaX1DSKdWq7A8G5uNWJj
xvwWUDIu/PESII1x8D52pmZ0QH1VQmas17Ezme/4BGvOR5/0vwKUEXPYWhHvtB31
4q/HMWpCCH5wF5DF0JfWmOhDpR3EvtG8HnNMzP8cdHbCLaG4SUz5uNKgJ6pI5cjV
E+HS+McIN1wp5mFodR3qwjMdLoH2uJ4YOqP05qri1b40xXM/j6+p9tXXYuV/8d6K
+L8sZxNvORwf6z8yys2cAHC5xPYBC8c0qKE9a1GtYJRPpjXona+iHoM5KooGFmYx
qZz2AvqbPYIwTHD5sV/K0wA3Zjlw6HOHBnZ6C7ZINAL/idY5uLOP6c3HCmVLRz3a
KIZCBintlvOKVSlzfGh7MjAJpEkzqGBNQIFCkRflrJW13R4/fiRL2fqRm2UjbU7q
QQo+ffs3emwCxkfxdOpubKUoANiFdXvQlKiC2BP/Yw==
-----END ENCRYPTED PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIDlDCCAnwCCQC4xKJxfbSLBzANBgkqhkiG9w0BAQsFADCBizELMAkGA1UEBhMC
Y2gxEDAOBgNVBAoMB2Fkbm92dW0xDTALBgNVBAsMBGFnb3YxJzAlBgNVBAMMHmph
a29iLmFnb3YtZC5henVyZS5hZG5vdnVtLm5ldDEyMDAGCSqGSIb3DQEJARYjaW5m
b0BqYWtvYi5hZ292LWQuYXp1cmUuYWRub3Z1bS5uZXQwHhcNMjMwMzIxMTUyMjI0
WhcNMjgwMzE5MTUyMjI0WjCBizELMAkGA1UEBhMCY2gxEDAOBgNVBAoMB2Fkbm92
dW0xDTALBgNVBAsMBGFnb3YxJzAlBgNVBAMMHmpha29iLmFnb3YtZC5henVyZS5h
ZG5vdnVtLm5ldDEyMDAGCSqGSIb3DQEJARYjaW5mb0BqYWtvYi5hZ292LWQuYXp1
cmUuYWRub3Z1bS5uZXQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDB
8LPO6Nack2z1whTratLxRD9KraO8QGrVTEa0p+23EKJH4WYE0QGzXbX4oFl2maXE
QDeCBofTnrl8sL3yVxBy56qO8T3VxYtt9akjty6PujO48bgJr2VGjGgtPYPUeOEk
lzCS616732Bnxc2iqo267G/tGooRIOOqefSyhEGmbI3KGv/zYZn/qxQo/A+5f+6y
zEoKdmnBF6vnowvffKfdFKI8udd5eKmfyrc5iNYHXoVP/HmqKbkyrBw1U0ysihRJ
3vyJVDtirQ5chLn0jOZ4UZ5SBck9+784yrVqpNbsWAe3NU+Vfx4wCk/rPWRDa1E2
fk+gEVvEMUFt4UvU25BdAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAIxToc9muu9z
d4yycZCgZbDtzrq2Un+m/m3TrBNzLV7UBbGt7HW9/kxvdFJTKgNEj+ZD1cY6O6D7
vrWV0Xb1XPgkaAfypc4Y7IOUTFDR/ib4siP9gPkHvr5WSIip3mFgX9yIV910N/hh
ImE9/Jtf/q9MopBu8J6zRmL/J8mVewVdcU3xqz27OVMMSht0Du8FcpIrNQwqc1LN
tCgdj+pw5vl7NH546WlyYNpLEkAeBpJ3XCBDDwcQftC+/cQ7GKJGtOJ4ODdxWMyX
ThsHJ7MCTiN+MoW5CeioGSmngezh4Gs5SpGAGVvwNvXW2jiGdRDdHmyxDPjCQvYA
wwZrmgtpYE0=
-----END CERTIFICATE-----
MIIFjTCCA3WgAwIBAgIUezb8qY+kCx4eW1J9g24Y+bsf+kYwDQYJKoZIhvcNAQEL
BQAwVjELMAkGA1UEBhMCY2gxEDAOBgNVBAoMB0Fkbm92dW0xDTALBgNVBAsMBEFH
T1YxJjAkBgNVBAMMHWF1dGguYWdvdi13LmF6dXJlLmFkbm92dW0ubmV0MB4XDTI0
MDgxOTExNTE0N1oXDTM0MDgxNzExNTE0N1owVjELMAkGA1UEBhMCY2gxEDAOBgNV
BAoMB0Fkbm92dW0xDTALBgNVBAsMBEFHT1YxJjAkBgNVBAMMHWF1dGguYWdvdi13
LmF6dXJlLmFkbm92dW0ubmV0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
AgEA1wWp33BH4/HjxovF60ac3LYCr0OuRq37K7vZrFZ0CxdnrZNgOTqW6PK72aOZ
rrL/9GHS7kr+6ORrtRcaQYJttqFWkyQVIQyb5wTRT8rAaugFFCon+FhIPNbrPU3l
PSqNEnxYCPsjA32qfAg96gHhn1ZpSe/SYOguB6mAOh+5vCFAvGOTfL9Gugayqe8L
3IAs7caDrEqB+sGo52P47Pz3fFnwlKnDZTFd2pOx43JYSNTE4bYBIOWwaTuN1MPM
1XcDZXJ1eEab/euwJ6zDdTE09h+ZGEo89ogJmC0Ragpi/7SyY2431QaoC9q4tlen
tQegWJWTMU/KhzdUamd9jJGa8bL7uO2edvHh+f0dIZxd/hPq0LteKiDXe258tpci
0laY/9SHgDNJv366dnL0HwkpqUZrKhGv+3EMqwCsqHN7Dhswz8AMWOShvdOPkGjF
gFJhdvGay1gyM1RFhlcEhl3yEdkVWAP3dJkmlSRotdZRsgfpgQHuWE5K5C96fSny
yiRN4+LpYkZksFsGoWiMcpCIY2/s7uuv4Xo3Ql63gPL/dDjSCNHeXAI0BqGpVk9D
dopXU06dfsY5p46Su3ku8do2QMpMi/b1bCtSOrpRKrr/4GJcr8OKyNsTNaFdh/Mm
xhJ6+U3JkMNuAWcUAVxiNpF25R+xPV+kO+zDs+8IwJtMutcCAwEAAaNTMFEwHQYD
VR0OBBYEFPvUI3yPIDXHsmoSRBzTlFcKVVA9MB8GA1UdIwQYMBaAFPvUI3yPIDXH
smoSRBzTlFcKVVA9MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggIB
AGzBJmppDmQPapUAI+bHpsXIxA+Uk3fFJIUDbzn2q3kkjWzszldBGJ+R+dmA/ROE
rokT9oNggvoSGzf5Lyu9oniB8FoWxp2mWRzXiTXsuz0ZLmT3ZxOah1g9MtXLD567
mdeKgjMFCM82OIRMsazdCtb43fJ0mvjuZ2Dv0Dt6O5I9TOWzTSx+ieGj2q/ZIQzl
3sfNcIuovVHjiiGl5wpHVQfUeRhRyB2xnetfe+UqdJVjJm3WXpomdJh6GxGYnH78
ZhnD6TJLhb41s5WF7dSxAQhTYJJuTTsF68bQEL787Mccqi4Ft4GqtF+vYTSAjWcM
jVjXbd1Bk0gHqsCl+TxJg8VfBiauFf5WP96xnVw8Hx9aOMVNejLWVjYE/ExVyW8g
94SJsL+cXjMjlZeL60yY9vgd59BHBOxBBq+5Qbx5bcfaIvXgaxt6sm1dk40D+YzR
UqFMJtGMvPfRl+2yUQ36VinQxyFbbf6Yq4s/E0We5aRPp2CFiRqmtip9Chvk/7fP
+b8zZvJgTUJZFWtvVNs6QqOu/yOxtFpWzfHmlvp3ticepBuT6bKtUJHtEnHheCCX
FF4MB65pTI/NrDVOec6PgRChz3UPGBEAtjjTCQUOe4HKQmOKedZKts51LuvHSuRu
S9JPohzGT95cglskfqPn51n5hJOOTnMfg/Qj6uXQZU9+
-----END CERTIFICATE-----

View File

@ -1,24 +1,24 @@
-----BEGIN CERTIFICATE-----
MIIEGDCCAwCgAwIBAgIBBDANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQGEwJjaDEQ
MA4GA1UEChMHQWRub3Z1bTEXMBUGA1UEAxMOYml0ZWlhbS1yb290Q0EwHhcNMjAw
MzA1MTYzMDAwWhcNMzAwMzAzMTYzMDAwWjA0MQswCQYDVQQGEwJjaDEQMA4GA1UE
ChMHQWRub3Z1bTETMBEGA1UEAxMKc2lnbmVyRkVEUzCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAJoWqbsYhNXW0mDsDJPAiTN896e4QML9qnt7FIhVKKe3
T66lT/nfOkFPUZuKejgbjFFDEDChRJf0Achq7lWGKPrNPnrTxZmU7Bcu86BER76L
4kDcGF/x03W9fgUgQ7X45CXYeq4vqfpzNC+lkZA1OxbpcXZA/4Z39Z3pm7CWXnAg
v6nFABKJ9kVAyhuPyb5yIuGHcdLL+068aVp5sxY/6HoXf889+iVFDgTwSXVYKMyZ
nZbvvd/IIod4WuiXsOspPS9yj+E9yMvtsUtChghcQ17ubo7S1P8JxAQWXngopH8Y
nDeOiesJfR2APDdg7EXWYewARSFr10GxuXoKDjLe148CAwEAAaOCAS8wggErMAkG
A1UdEwQCMAAwPwYJYIZIAYb4QgENBDIWME5ldmlzIEtleUJveCBHZW5lcmF0ZWQg
Q2VydGlmaWNhdGUgdXNpbmcgT3BlblNTTDALBgNVHQ8EBAMCA6gwHQYDVR0lBBYw
FAYIKwYBBQUHAwEGCCsGAQUFBwMCMB0GA1UdDgQWBBQ4zYpzY1lB5/bKeg3z1kJO
kkdYgDBoBgNVHSMEYTBfgBRRdKau0TH9VQ0E8ob0J+WyYkcs4aE8pDowODELMAkG
A1UEBhMCY2gxEDAOBgNVBAoTB0Fkbm92dW0xFzAVBgNVBAMTDmJpdGVpYW0tcm9v
dENBggkA+97eIJWmttcwEQYJYIZIAYb4QgEBBAQDAgbAMBUGA1UdEQQOMAyCCnNp
Z25lckZFRFMwDQYJKoZIhvcNAQELBQADggEBAHGHJ7DzRNdPl6Kiy4rCoQR/nhTa
VbBsAeB070NpWma2iun3Wf5zIoefbSlPoofP4tOVYUoKtMHTWCYAUnHIEg5H985y
Ym2MFY0vwgMZ+Jvcs7NCHzK9O/tN+uUjkFNLSCfzTb+K9vyF6lj4L4lQWa5++DZ6
kWPaDWvwY/NOSoIehmJupmcJlA1qxzlTc+659xoOk1WyhusNkuiOUjFrLQ+tgRnD
7dGuzJQyBV1Iy/A4IhpN2ootVgrI7NMJ2YetCq7yuipRZka3RoeVhUs8CWFfYRtc
saTCck7atYyMVlPUf03EppC18ILBmbNzYJ58KT2oQywa7+Sdsqx4+5cOOOU=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEGDCCAwCgAwIBAgIBBDANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQGEwJjaDEQ
MA4GA1UEChMHQWRub3Z1bTEXMBUGA1UEAxMOYml0ZWlhbS1yb290Q0EwHhcNMjAw
MzA1MTYzMDAwWhcNMzAwMzAzMTYzMDAwWjA0MQswCQYDVQQGEwJjaDEQMA4GA1UE
ChMHQWRub3Z1bTETMBEGA1UEAxMKc2lnbmVyRkVEUzCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAJoWqbsYhNXW0mDsDJPAiTN896e4QML9qnt7FIhVKKe3
T66lT/nfOkFPUZuKejgbjFFDEDChRJf0Achq7lWGKPrNPnrTxZmU7Bcu86BER76L
4kDcGF/x03W9fgUgQ7X45CXYeq4vqfpzNC+lkZA1OxbpcXZA/4Z39Z3pm7CWXnAg
v6nFABKJ9kVAyhuPyb5yIuGHcdLL+068aVp5sxY/6HoXf889+iVFDgTwSXVYKMyZ
nZbvvd/IIod4WuiXsOspPS9yj+E9yMvtsUtChghcQ17ubo7S1P8JxAQWXngopH8Y
nDeOiesJfR2APDdg7EXWYewARSFr10GxuXoKDjLe148CAwEAAaOCAS8wggErMAkG
A1UdEwQCMAAwPwYJYIZIAYb4QgENBDIWME5ldmlzIEtleUJveCBHZW5lcmF0ZWQg
Q2VydGlmaWNhdGUgdXNpbmcgT3BlblNTTDALBgNVHQ8EBAMCA6gwHQYDVR0lBBYw
FAYIKwYBBQUHAwEGCCsGAQUFBwMCMB0GA1UdDgQWBBQ4zYpzY1lB5/bKeg3z1kJO
kkdYgDBoBgNVHSMEYTBfgBRRdKau0TH9VQ0E8ob0J+WyYkcs4aE8pDowODELMAkG
A1UEBhMCY2gxEDAOBgNVBAoTB0Fkbm92dW0xFzAVBgNVBAMTDmJpdGVpYW0tcm9v
dENBggkA+97eIJWmttcwEQYJYIZIAYb4QgEBBAQDAgbAMBUGA1UdEQQOMAyCCnNp
Z25lckZFRFMwDQYJKoZIhvcNAQELBQADggEBAHGHJ7DzRNdPl6Kiy4rCoQR/nhTa
VbBsAeB070NpWma2iun3Wf5zIoefbSlPoofP4tOVYUoKtMHTWCYAUnHIEg5H985y
Ym2MFY0vwgMZ+Jvcs7NCHzK9O/tN+uUjkFNLSCfzTb+K9vyF6lj4L4lQWa5++DZ6
kWPaDWvwY/NOSoIehmJupmcJlA1qxzlTc+659xoOk1WyhusNkuiOUjFrLQ+tgRnD
7dGuzJQyBV1Iy/A4IhpN2ootVgrI7NMJ2YetCq7yuipRZka3RoeVhUs8CWFfYRtc
saTCck7atYyMVlPUf03EppC18ILBmbNzYJ58KT2oQywa7+Sdsqx4+5cOOOU=
-----END CERTIFICATE-----

View File

@ -185,10 +185,10 @@ prompt.newpassword=Nuova Password
prompt.newpassword.confirm=Conferma password
prompt.password=Password
prompt.userid=Nome utente
pwreset.done.info=La password &egrave; stata modificata con successo. Fare clic su continua per accedere.
pwreset.done.info=Your password was successfully changed. Please click on continue to log in.
pwreset.email.sent=Se il vostro ID utente esiste, vi è stata inviata un'e-mail per reimpostare la password.
pwreset.info.linktext=Password dimenticata
pwreset.noticket=Il biglietto per la reimpostazione della password non &egrave; pi&ugrave; valido. Si prega di generarne uno nuovo.
pwreset.info.linktext=Password forgotten
pwreset.noticket=Your password reset ticket is no longer valid. Please generate a new one.
recovery_accessapp_auth.accessAppRegistered=App di accesso AGOV gi&agrave; registrata
recovery_accessapp_auth.instruction1=Ha gi&agrave; registrato una nuova app di accesso AGOV !!!SECURITY_KEY_NAME!!! come parte del processo di recupero.
recovery_accessapp_auth.instruction2=Si prega di usare !!!ACCESS_APP_NAME!!! per l'identificazione.
@ -260,7 +260,7 @@ title.logout.confirmation=Logout
title.logout.reminder=Logout
title.oauth.consent=Autorizzazione del client
title.pwchange.label=Cambiare Password
title.pwreset=Password Dimenticata
title.pwreset=Password Forgotten
title.saml.failed=Error
title.timeout.page=Logout
user_input.invalid.email=Inserire un'e-mail valida.

View File

@ -28,7 +28,7 @@ String sessionId = session.get('ch.nevis.session.conversationId')
String endPoint = "${parameters.get('utility-service.baseUrl')}/api/v1/recovery/code"
def userDto = new XmlSlurper().parseText(session.get('ch.adnovum.nevisidm.userDto'))
def recoveryCredential = userDto.'**'.find {node -> node.name() == 'credentials' && node.type.text() == 'CONTEXT_PASSWORD' && node.state.text() == 'ACTIVE' && node.context.text() == 'RECOVERY'}
def recoveryCredential = userDto.'**'.find {node -> node.name() == 'credentials' && node.type.text() == 'CONTEXT_PASSWORD' && node.context.text() == 'RECOVERY'}
// 1a) check if user has a credential
if ( recoveryCredential != null ) {

View File

@ -1,8 +1,8 @@
RTENV_SECURITY_CHECK=no_shell
JAVA_OPTS=(
"-XX:+UseContainerSupport"
"-Dfile.encoding=UTF-8"
"-XX:+UseContainerSupport"
"-XX:MaxRAMPercentage=80.0"
"-Djava.net.preferIPv4Stack=true"
"-Djava.net.connectionTimeout=10000"

View File

@ -163,7 +163,7 @@
<!-- source: pattern://68665057549fd887ea09fb86 -->
<property name="parameter.appAddressRequired.whitelist" value="https://testapp-01.agov-w.azure.adnovum.net/test/api/saml2/service-provider-metadata/agovidp, OidcPlayground"/>
<!-- source: pattern://68665057549fd887ea09fb86 -->
<property name="parameter.url" value="http://connect-application-billing.adn-agov-connect-01-uat:8082/connect/billing/relying-party"/>
<property name="parameter.url" value="http://connect-application-billing.adn-agov-connect-01-dev:8082/connect/billing/relying-party"/>
<!-- source: pattern://68665057549fd887ea09fb86 -->
<property name="scriptTraceGroup" value="AGOV-ACCT"/>
<!-- source: pattern://68665057549fd887ea09fb86 -->
@ -843,7 +843,7 @@
<!-- source: pattern://9ff0369f3cf662f95d94ff09 -->
<property name="script" value="file:///var/opt/nevisauth/default/conf/ensureRecoveryCode.groovy"/>
<!-- source: pattern://9ff0369f3cf662f95d94ff09 -->
<property name="parameter.utility-service.baseUrl" value="http://utility-application-be.adn-agov-me-01-uat:8081/utility"/>
<property name="parameter.utility-service.baseUrl" value="http://utility-application-be.adn-agov-me-01-dev:8081/utility"/>
<!-- source: pattern://9ff0369f3cf662f95d94ff09 -->
<property name="parameter.idm.httpclient.tls.trustStoreRef" value="Ensure_Recovery_Code"/>
<!-- source: pattern://9ff0369f3cf662f95d94ff09 -->

View File

@ -1,4 +1,4 @@
otel.service.name = auth
otel.traces.exporter = none
otel.metrics.exporter = none
otel.logs.exporter = none
otel.service.name=auth
otel.traces.exporter=none
otel.metrics.exporter=none
otel.logs.exporter=none

View File

@ -28,25 +28,20 @@ spec:
management:
httpGet:
path: "/nevisfido/liveness"
periodSeconds: 5
initialDelaySeconds: 40
periodSeconds: 30
timeoutSeconds: 6
readinessProbe:
management:
httpGet:
path: "/nevisfido/health"
periodSeconds: 5
initialDelaySeconds: 40
periodSeconds: 30
timeoutSeconds: 6
startupProbe:
management:
httpGet:
path: "/nevisfido/health"
periodSeconds: 5
timeoutSeconds: 6
failureThreshold: 50
podDisruptionBudget:
maxUnavailable: "50%"
git:
tag: "r-90c0ddd9c0c4d9011252ef186298ca61c939e952"
tag: "r-5560b9df58bc00fcf3fc92f29f5f7840af9dbf26"
dir: "DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf"
credentials: "git-credentials"
keystores:

View File

@ -10,7 +10,7 @@ metadata:
patternId: "ca92034f995b39fde562293c"
spec:
keystores:
- name: "auth-sh4r3d-internal-idp-auth-signer"
namespace: "adn-agov-nevisidm-01-uat"
- name: "auth-sts-sh4r3d-internal-idp-auth-signer"
namespace: "adn-agov-nevisidm-01-uat"
- name: "auth-sh4r3d-internal-idp-auth-signer"
namespace: "adn-agov-nevisidm-01-uat"

View File

@ -2,8 +2,8 @@ RUN_ARGS="--config conf/nevisfido.yml --log-config conf/logging.yml"
JAVA_OPTS=(
"-XX:+UseContainerSupport"
"-Dignore.me"
"-XX:MaxRAMPercentage=80.0"
"-Dignore.me"
"-javaagent:/opt/agent/opentelemetry-javaagent.jar"
"-Dotel.javaagent.logging=application"
"-Dotel.javaagent.configuration-file=/var/opt/nevisfido/default/conf/otel.properties"

View File

@ -91,29 +91,6 @@
"tcDisplay" : 1,
"tcDisplayContentType" : "text/plain"
},
{
"aaid" : "F1D0#0005",
"description" : "Android NEVIS Mobile Authentication Password Authenticator",
"assertionScheme" : "UAFV1TLV",
"attestationRootCertificates" : [],
"attestationTypes" : [ 15880 ],
"upv" : [ {
"major" : 1,
"minor" : 1
} ],
"userVerificationDetails" : [ [ {
"userVerification" : 4
} ] ],
"attachmentHint" : 1,
"authenticationAlgorithm" : 9,
"authenticatorVersion" : 1,
"isSecondFactorOnly" : false,
"keyProtection" : 1,
"matcherProtection" : 1,
"publicKeyAlgAndEncoding" : 256,
"tcDisplay" : 1,
"tcDisplayContentType" : "text/plain"
},
{
"aaid" : "F1D0#1001",
"description" : "iOS NEVIS Mobile Authentication PIN Authenticator",
@ -205,27 +182,5 @@
"publicKeyAlgAndEncoding" : 257,
"tcDisplay" : 1,
"tcDisplayContentType" : "text/plain"
},
{
"aaid" : "F1D0#1005",
"description" : "iOS NEVIS Mobile Authentication Password Authenticator",
"assertionScheme" : "UAFV1TLV",
"attestationRootCertificates" : [],
"attestationTypes" : [ 15880 ],
"upv" : [ {
"major" : 1,
"minor" : 1
} ],
"userVerificationDetails" : [ [ {
"userVerification" : 4
} ] ],
"attachmentHint" : 1,
"authenticationAlgorithm" : 2,
"authenticatorVersion" : 1,
"isSecondFactorOnly" : false,
"keyProtection" : 1,
"matcherProtection" : 1,
"publicKeyAlgAndEncoding" : 257,
"tcDisplay" : 1,
"tcDisplayContentType" : "text/plain"
}]
}
]

View File

@ -1,4 +1,4 @@
otel.service.name = fido-uaf
otel.traces.exporter = none
otel.metrics.exporter = none
otel.logs.exporter = none
otel.service.name=fido-uaf
otel.traces.exporter=none
otel.metrics.exporter=none
otel.logs.exporter=none

View File

@ -28,25 +28,20 @@ spec:
management:
httpGet:
path: "/nevisfido/liveness"
periodSeconds: 5
initialDelaySeconds: 40
periodSeconds: 30
timeoutSeconds: 6
readinessProbe:
management:
httpGet:
path: "/nevisfido/health"
periodSeconds: 5
initialDelaySeconds: 40
periodSeconds: 30
timeoutSeconds: 6
startupProbe:
management:
httpGet:
path: "/nevisfido/health"
periodSeconds: 5
timeoutSeconds: 6
failureThreshold: 50
podDisruptionBudget:
maxUnavailable: "50%"
git:
tag: "r-90c0ddd9c0c4d9011252ef186298ca61c939e952"
tag: "r-5560b9df58bc00fcf3fc92f29f5f7840af9dbf26"
dir: "DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido2"
credentials: "git-credentials"
keystores:

View File

@ -1,4 +1,4 @@
otel.service.name = fido2
otel.traces.exporter = none
otel.metrics.exporter = none
otel.logs.exporter = none
otel.service.name=fido2
otel.traces.exporter=none
otel.metrics.exporter=none
otel.logs.exporter=none

View File

@ -10,7 +10,7 @@ metadata:
patternId: "b8a36646f81c3247cdb5d90b"
spec:
keystores:
- name: "auth-sh4r3d-internal-idp-auth-signer"
namespace: "adn-agov-nevisidm-01-uat"
- name: "auth-sts-sh4r3d-internal-idp-auth-signer"
namespace: "adn-agov-nevisidm-01-uat"
- name: "auth-sh4r3d-internal-idp-auth-signer"
namespace: "adn-agov-nevisidm-01-uat"

View File

@ -28,25 +28,20 @@ spec:
management:
httpGet:
path: "/liveness"
initialDelaySeconds: 40
periodSeconds: 30
timeoutSeconds: 6
readinessProbe:
management:
httpGet:
path: "/health"
initialDelaySeconds: 40
periodSeconds: 30
timeoutSeconds: 6
startupProbe:
management:
httpGet:
path: "/health"
periodSeconds: 30
timeoutSeconds: 6
failureThreshold: 10
podDisruptionBudget:
maxUnavailable: "50%"
git:
tag: "r-90c0ddd9c0c4d9011252ef186298ca61c939e952"
tag: "r-5560b9df58bc00fcf3fc92f29f5f7840af9dbf26"
dir: "DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/idm"
credentials: "git-credentials"
keystores:
@ -61,3 +56,4 @@ spec:
secrets:
secret:
- "0eb37a5f44023ef0ad1013b6-89ec31e5"
- "a2068eb83a60702322c13949-27ed70d3"

View File

@ -1,8 +1 @@
JAVA_OPTS=(
"-XX:+UseContainerSupport"
"-XX:MaxRAMPercentage=80.0"
"-javaagent:/opt/agent/opentelemetry-javaagent.jar"
"-Dotel.javaagent.logging=application"
"-Dotel.javaagent.configuration-file=/var/opt/nevisidm/default/conf/otel.properties"
"-Dotel.resource.attributes=service.version=8.2405.1,service.instance.id=$HOSTNAME"
)
JAVA_OPTS="-XX:+UseContainerSupport -XX:MaxRAMPercentage=80.0 -javaagent:/opt/agent/opentelemetry-javaagent.jar -Dotel.javaagent.logging=application -Dotel.javaagent.configuration-file=/var/opt/nevisidm/default/conf/otel.properties -Dotel.resource.attributes=service.version=8.2405.1,service.instance.id=$HOSTNAME"

View File

@ -5,7 +5,7 @@ database.connection.url=jdbc:mariadb://mariadb-agov-uat.mariadb.database.azure.c
# source: pattern://2951ead44a7a9362a4545094
database.connection.username=adndbadmin
# source: pattern://2951ead44a7a9362a4545094
database.connection.password=secret://59f191e7aa67a1ed9f7b87d2
database.connection.password=secret://a2068eb83a60702322c13949-27ed70d3
# source: pattern://b8a36646f81c3247cdb5d90b
application.mail.smtp.host=greenmail.adn-agov-mail-01-uat.svc
# source: pattern://b8a36646f81c3247cdb5d90b
@ -89,8 +89,6 @@ server.host=0.0.0.0
# source: pattern://b8a36646f81c3247cdb5d90b
server.tls.enabled=true
# source: pattern://b8a36646f81c3247cdb5d90b
server.tls.client-auth=requested
# source: pattern://b8a36646f81c3247cdb5d90b
server.tls.keystore=/var/opt/keys/own/idm-default-identity/keystore.p12
# source: pattern://b8a36646f81c3247cdb5d90b
server.tls.keystore-passphrase=${exec:/var/opt/keys/own/idm-default-identity/keypass}

View File

@ -1,4 +1,4 @@
otel.service.name = idm
otel.traces.exporter = none
otel.metrics.exporter = none
otel.logs.exporter = none
otel.service.name=idm
otel.traces.exporter=none
otel.metrics.exporter=none
otel.logs.exporter=none

View File

@ -28,23 +28,19 @@ spec:
management:
httpGet:
path: "/nevislogrend/liveness"
periodSeconds: 5
initialDelaySeconds: 40
periodSeconds: 30
timeoutSeconds: 6
readinessProbe:
server:
tcpSocket: true
periodSeconds: 5
initialDelaySeconds: 40
periodSeconds: 20
timeoutSeconds: 4
startupProbe:
server:
tcpSocket: true
periodSeconds: 5
timeoutSeconds: 4
failureThreshold: 50
podDisruptionBudget:
maxUnavailable: "50%"
git:
tag: "r-90c0ddd9c0c4d9011252ef186298ca61c939e952"
tag: "r-5560b9df58bc00fcf3fc92f29f5f7840af9dbf26"
dir: "DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend"
credentials: "git-credentials"
podSecurity:

View File

@ -4,8 +4,8 @@ RTENV_SECURITY_CHECK=no_shell
LOGREND_DEPLOY_TYPE=standalone
JAVA_OPTS=(
"-XX:+UseContainerSupport"
"-Dfile.encoding=UTF-8"
"-XX:+UseContainerSupport"
"-XX:MaxRAMPercentage=80.0"
"-javaagent:/opt/agent/opentelemetry-javaagent.jar"
"-Dotel.javaagent.logging=application"

View File

@ -1,4 +1,4 @@
otel.service.name = logrend
otel.traces.exporter = none
otel.metrics.exporter = none
otel.logs.exporter = none
otel.service.name=logrend
otel.traces.exporter=none
otel.metrics.exporter=none
otel.logs.exporter=none

View File

@ -135,10 +135,10 @@ prompt.newpassword=Nuova Password
prompt.newpassword.confirm=Conferma password
prompt.password=Password
prompt.userid=Nome utente
pwreset.done.info=La password &egrave; stata modificata con successo. Fare clic su continua per accedere.
pwreset.done.info=Your password was successfully changed. Please click on continue to log in.
pwreset.email.sent=Se il vostro ID utente esiste, vi è stata inviata un'e-mail per reimpostare la password.
pwreset.info.linktext=Password dimenticata
pwreset.noticket=Il biglietto per la reimpostazione della password non &egrave; pi&ugrave; valido. Si prega di generarne uno nuovo.
pwreset.info.linktext=Password forgotten
pwreset.noticket=Your password reset ticket is no longer valid. Please generate a new one.
recovery_accessapp_auth.accessAppRegistered=App di accesso AGOV gi&agrave; registrata
recovery_accessapp_auth.instruction1=Ha gi&agrave; registrato una nuova app di accesso AGOV !!!SECURITY_KEY_NAME!!! come parte del processo di recupero.
recovery_accessapp_auth.instruction2=Si prega di usare !!!ACCESS_APP_NAME!!! per l'identificazione.
@ -204,7 +204,7 @@ recovery_start_info.title=Il processo di ripristino sta per iniziare.
title=NEVIS SSO Portal
title.login=Login
title.pwchange.label=Cambiare Password
title.pwreset=Password Dimenticata
title.pwreset=Password Forgotten
user_input.invalid.email=Inserire un'e-mail valida.
user_input.invalid.email.required=Campo obbligatorio
user_input.invalid.email.tooLong=Il testo inserito &egrave; troppo lungo.

View File

@ -1,7 +1,7 @@
#parse("${templatePath}/header.vm")
<agov-backdrop></agov-backdrop>
<div id="fidoBackdrop" style="display: none">
<div id="fidoBackdrop" class="hidden">
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 backdrop-blur-[10px]"></div>
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 bg-zinc-50 opacity-80"></div>
</div>
@ -15,16 +15,16 @@
<h4 class="font-header text-h4 text-disabled-grey dark:text-silver">$text.get("general.securityKey")</h4>
</div>
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
accept-charset="UTF-8">
<div class="flex flex-row items-center justify-between">
#set ($emailInput = $gui.getGuiElem('email'))
#if ($emailInput && $emailInput.value && $emailInput.value.length() > 0)
#set ($emailInput = $gui.getGuiElem('email'))
#if ($emailInput && $emailInput.value && $emailInput.value.length() > 0)
<p class="text-space-blue dark:text-white font-body-semi text-body-l truncate">$utils.escapeHtmlAttribute($emailInput.value)</p>
#else
#else
<p class="text-space-blue dark:text-white font-body-semi text-body-l truncate"></p>
#end
#end
<agov-button
class="shrink-0"
data-style="frameless"
@ -40,11 +40,10 @@
</form>
<div class="mt-3 mb-6 w-full h-px bg-platinum rounded-full"></div>
<div style="display: none"
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
<div class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4 hidden">
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("fido2_auth.cancel.fido")
$text.get("fido2_auth.cancel.fido")
</p>
</div>
@ -53,21 +52,21 @@
<span class="font-header text-h6 bg-royal-light-blue dark:bg-blueish-black w-12 h-12 flex flex-none items-center justify-center rounded-full
text-space-blue dark:text-white leading-none">1</span>
<p class="font-body-semi text-body-l text-space-blue dark:text-white ml-4">$text.get(
"fido2_auth.instruction1")</p>
"fido2_auth.instruction1")</p>
</div>
<div class="flex mb-2 items-center">
<span class="font-header text-h6 bg-royal-light-blue dark:bg-blueish-black w-12 h-12 flex flex-none items-center justify-center rounded-full
text-space-blue dark:text-white leading-none">2</span>
<p class="font-body-semi text-body-l text-space-blue dark:text-white ml-4">$text.get(
"fido2_auth.instruction2")</p>
"fido2_auth.instruction2")</p>
</div>
<div class="flex mb-2 items-center">
<span class="font-header text-h6 bg-royal-light-blue dark:bg-blueish-black w-12 h-12 flex flex-none items-center justify-center rounded-full
text-space-blue dark:text-white leading-none">3</span>
<p class="font-body-semi text-body-l text-space-blue dark:text-white ml-4">$text.get(
"fido2_auth.instruction3")</p>
"fido2_auth.instruction3")</p>
</div>
</div>
@ -79,7 +78,7 @@
</agov-checkbox>
<label for="skip" class="font-body text-body-l text-space-blue dark:text-white cursor-pointer">
$text.get("fido2_auth.skipInstructions")
$text.get("fido2_auth.skipInstructions")
</label>
</div>
<div class="mt-auto mb-6 sm:mb-0">
@ -94,7 +93,7 @@
<div class="flex items-center mt-6 mb-4">
<span class="h-px w-full bg-silver"></span>
<span class="px-2 text-disabled-grey font-body-semi text-body-l whitespace-nowrap">
$text.get("fido2_auth.switchLogin")
$text.get("fido2_auth.switchLogin")
</span>
<span class="h-px w-full bg-silver"></span>
</div>

View File

@ -3,7 +3,7 @@
$text.get("footer.text")
<a target="_blank" class='text-hyperlink dark:text-dark-hyperlink underline' href='$text.get("footer.link")'>$text.get("footer.link.label")</a>
</div>
<p>1.5.3.51-20240709T140654Z</p>
<p>1.6.0.2137-20240812T051256Z</p>
</footer>
<script src="${login.appDataPath}/static/bundle.js"></script>
</body>

View File

@ -1,6 +1,6 @@
<!DOCTYPE html>
## svh -> Small View Height. It's not taking the height of the search bar on mobile into account
<html lang="$login.language" class="relative min-h-screen h-full mx-4 flex sm:block" style="min-height: 100svh">
<html lang="$login.language" class="relative min-h-100 h-full mx-4 flex sm:block">
<head>
<title>AGOV</title>
<meta charset="UTF-8">

View File

@ -10,15 +10,15 @@
class="flex items-center rounded-xl gap-5 p-2 sm:p-0 sm:w-auto w-full hidden bg-pale-blue dark:bg-purple-black sm:bg-transparent">
<div class="flex items-center p-2 bg-white rounded sm:rounded-xl w-16 h-16" id="logo"></div>
<h1 class="font-header text-h6 sm:text-h4 text-space-blue dark:text-white">
#if ($login.language =="en")
#if ($login.language =="en")
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameEN').value)
#elseif ($login.language =="de")
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameDE').value)
#elseif ($login.language =="fr")
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameFR').value)
#else
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameIT').value)
#end
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameDE').value)
#elseif ($login.language =="fr")
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameFR').value)
#else
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameIT').value)
#end
</h1>
</div>
@ -28,7 +28,7 @@
<h1 class="font-header text-h4 text-space-blue dark:text-white mb-8">$text.get("general.registration")</h1>
<h2 class="font-header text-h5 text-space-blue dark:text-white text-center mb-4">
$text.get("mauth_usernameless.noAccount")
$text.get("mauth_usernameless.noAccount")
</h2>
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
@ -69,15 +69,15 @@
<div class="flex items-center p-2 bg-white dark:bg-black rounded sm:rounded-xl w-16 h-16"
id="logoMobile"></div>
<h1 class="font-header text-h6 sm:text-h4 text-space-blue dark:text-white">
#if ($login.language =="en")
#if ($login.language =="en")
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameEN').value)
#elseif ($login.language =="de")
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameDE').value)
#elseif ($login.language =="fr")
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameFR').value)
#else
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameIT').value)
#end
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameDE').value)
#elseif ($login.language =="fr")
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameFR').value)
#else
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameIT').value)
#end
</h1>
</div>
@ -93,65 +93,65 @@
<div id="accessAppModal" class="h-full">
<div class="desktopBanner" aria-live="assertive">
<div style="display: none"
class="info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
<div class="hidden info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4
mb-4">
<i class="fa-regular fa-info-circle rounded-full p-3 text-info dark:text-dark-info bg-info/10 dark:bg-dark-info-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.info")
$text.get("mauth_usernameless.banner.info")
</p>
</div>
<div style="display: none"
class="success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
<div class="hidden success flex rounded-xl bg-success-background dark:bg-dark-success-background
items-center p-4 mb-4">
<i class="fa-regular fa-check-circle rounded-full p-3 text-success dark:text-dark-success bg-success/10 dark:bg-dark-success-icon mr-4 text-xl leading-none"></i>
<div>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.success")
$text.get("mauth_usernameless.banner.success")
</p>
</div>
</div>
<div style="display: none"
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center
p-4 mb-4">
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.error")
$text.get("mauth_usernameless.banner.error")
</p>
</div>
</div>
<div class="relative flex flex-col h-full">
<div id="blurBackdrop" class="absolute backdrop-blur-sm -top-1 -bottom-8 -left-4 -right-4 z-10"
style="display:none "></div>
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-8 -left-4 -right-4
z-10"></div>
<div class="mobileBanner relative z-20" aria-live="assertive">
<div style="display: none"
class="info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
<div class="hidden info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center
p-4 mb-4">
<i class="fa-regular fa-info-circle rounded-full p-3 text-info dark:text-dark-info bg-info/10 dark:bg-dark-info-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.info")
$text.get("mauth_usernameless.banner.info")
</p>
</div>
<div style="display: none"
class="success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
<div class="hidden success flex rounded-xl bg-success-background dark:bg-dark-success-background
items-center p-4 mb-4">
<i class="fa-regular fa-check-circle rounded-full p-3 text-success dark:text-dark-success bg-success/10 dark:bg-dark-success-icon mr-4 text-xl leading-none"></i>
<div>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.success")
$text.get("mauth_usernameless.banner.success")
</p>
</div>
</div>
<div style="display: none"
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background
items-center p-4 mb-4">
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.error")
$text.get("mauth_usernameless.banner.error")
</p>
</div>
</div>
<div id="agovLoginImageMobile" style="display: none"
class="md:max-w-[520px] max-w-[350px] sm:max-w-[300px] w-full mx-auto mb-6">
<div id="agovLoginImageMobile" class="hidden md:max-w-[520px] max-w-[350px] sm:max-w-[300px] w-full
mx-auto mb-6">
<img alt=""
src="${login.appDataPath}/static/images/login.svg"
class="block sm:hidden md:block dark:hidden w-full">
@ -165,12 +165,12 @@
<canvas role="img" aria-labelledby="labelQRCodeInstructions" id="mauth_qrcode"
class="mb-6 mx-auto"></canvas>
<div class="hidden" id="QRcodeHiddenLink"></div>
<span id="spinner" class="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-20"
style="display: none">
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2
z-20">
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
<img src="${login.appDataPath}/static/images/spinner-dark.svg"
class="animate-spin hidden dark:block">
</span>
</span>
</div>
<a id="accessAppLinkIpad" href="" class="hidden">
@ -189,7 +189,7 @@
dark:bg-purple-black">
<img alt="" src="${login.appDataPath}/static/images/access-app.svg" class="h-12 mr-4">
<p id="labelQRCodeInstructions" class="font-header text-h5 text-space-blue dark:text-white">
$text.get("mauth_usernameless.instructions")
$text.get("mauth_usernameless.instructions")
</p>
</div>
</div>
@ -197,7 +197,7 @@
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
accept-charset="UTF-8" class="w-full sm:static mt-auto mb-20 sm:mb-0">
<div id="mobileButtons" style="display: none" class="w-full">
<div id="mobileButtons" class="hidden w-full">
<div class="flex flex-col">
<a id="accessAppLink" href="">
<agov-button
@ -218,21 +218,20 @@
data-value="EID"
data-id="EID"
data-label="<i class='fa-regular fa-eye align-middle text-xl text-indigo dark:text-lilac mr-2'></i>$text.get(
"mauth_usernameless.showQR")"
"mauth_usernameless.showQR")"
data-type="button"
data-fullwidth="true">
</agov-button>
<agov-button
style="display: none"
id="hideQR"
class="block basis-full"
class="hidden basis-full"
data-style="frameless"
data-name="EID"
data-value="EID"
data-id="EID"
data-label="<i class='fa-regular fa-eye-slash align-middle text-xl text-indigo dark:text-lilac mr-2'></i>$text.get(
"mauth_usernameless.hideQR")"
"mauth_usernameless.hideQR")"
data-type="button"
data-fullwidth="true">
</agov-button>
@ -246,11 +245,11 @@
<div id="securityKeyModal" class="hidden mt-16">
<h2 class="font-header text-h5 text-space-blue dark:text-white mt-4 text-center">
$text.get("mauth_usernameless.useSecurityKey")
$text.get("mauth_usernameless.useSecurityKey")
</h2>
<p class="font-body text-body-l text-space-blue dark:text-white text-center my-6">
$text.get("mauth_usernameless.useSecurityKeyInfo")
$text.get("mauth_usernameless.useSecurityKeyInfo")
</p>
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
@ -280,14 +279,14 @@
<button class="hidden" id="onReload" name="onReload"></button>
<h2 class="font-header text-h5 text-space-blue dark:text-white mt-7 mb-4 text-center">
$text.get("mauth_usernameless.cannotLogin")
$text.get("mauth_usernameless.cannotLogin")
</h2>
<agov-button
data-style="secondary"
data-name="fallback"
data-value="recovery"
data-label="<i class='fa-regular fa-suitcase-medical text-indigo dark:text-lilac mr-2'></i>$text.get(
"mauth_usernameless.startRecovery")"
"mauth_usernameless.startRecovery")"
data-type="submit"
data-fullwidth="true"
class="block">
@ -300,7 +299,7 @@
</div>
</div>
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
accept-charset="UTF-8" style="display: none" class="sm:hidden formDrawer">
accept-charset="UTF-8" class="hidden sm:hidden formDrawer">
<div class="w-full z-30 fixed left-0 pointer-events-none" id="drawerContainer">
<div class="w-full bg-white dark:bg-surface-black px-4 pb-[130px] rounded-t-2xl pointer-events-auto" id="drawer">
<div class="pt-2 pb-4 cursor-pointer">
@ -309,12 +308,12 @@
<div class="flex items-center justify-center mb-6">
<span class="px-2 text-disabled-grey dark:text-white font-body-semi text-body-l whitespace-nowrap">
$text.get("general.otherOptions")
$text.get("general.otherOptions")
</span>
</div>
<p class="font-body-semi text-body-l text-space-blue dark:text-white text-center mb-2">
$text.get("mauth_usernameless.noAccount")
$text.get("mauth_usernameless.noAccount")
</p>
<agov-button
@ -330,14 +329,14 @@
<div class="flex items-center mt-6 mb-6">
<span class="h-px w-full bg-silver"></span>
<span class="px-2 text-disabled-grey dark:text-white font-body-semi text-body-l whitespace-nowrap">
$text.get("general.or")</span>
$text.get("general.or")</span>
<span class="h-px w-full bg-silver"></span>
</div>
<div class="flex flex-col flex-wrap justify-center items-center mb-6 gap-1">
<p class="font-body-semi text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.cannotLogin")
$text.get("mauth_usernameless.cannotLogin")
</p>
<agov-button
data-style="frameless"
@ -353,9 +352,9 @@
<div class="font-body text-body-s text-disabled-grey dark:text-silver text-center">
$text.get("footer.text")
$text.get("footer.text")
<a target="_blank" class='text-hyperlink dark:text-info underline' href='$text.get("footer.link")'>$text.get(
"footer.link.label")</a>
"footer.link.label")</a>
</div>
</div>
</div>

View File

@ -1,6 +1,6 @@
<!DOCTYPE html>
## svh -> Small View Height. It's not taking the height of the search bar on mobile into account
<html lang="$login.language" class="relative min-h-screen h-full mx-4 flex sm:block" style="min-height: 100svh">
## svh -> Small View Height. It's not taking the height of the search bar on mobile into account
<html lang="$login.language" class="relative min-h-100 h-full mx-4 flex sm:block">
<head>
<title>AGOV Operations</title>
<meta charset="UTF-8">
@ -20,51 +20,53 @@
<img alt="agov Logo" src="${login.appDataPath}/static/images/agov-logo.svg" class="h-5 sm:h-8 sm:mr-6 dark:hidden">
<img alt="agov Logo" src="${login.appDataPath}/static/images/agov-logo-dark.svg" class="h-5 sm:h-8 sm:mr-6 hidden dark:block">
<div class="flex items-center flex-1 sm:flex-initial justify-end">
#set ($langMenu = '')
#foreach ($locale in $login.locales)
## find translated label of current locale
#if ($text.contains("language.$locale"))
#set ($langLabel = $text.get("language.$locale"))
#elseif ($locale.length() > 2)
#set ($langLabel = $text.get("language.${locale.substring(0,2).toLowerCase()}"))
#else
#set ($langLabel = $locale)
#end
## emit link or text for each language
#set ($langTarget = $utils.escapeHtmlAttribute($gui.target('language', $locale)))
#set ($langMenu = '')
#foreach ($locale in $login.locales)
## find translated label of current locale
#if ($text.contains("language.$locale"))
#set ($langLabel = $text.get("language.$locale"))
#elseif ($locale.length() > 2)
#set ($langLabel = $text.get("language.${locale.substring(0,2).toLowerCase()}"))
#else
#set ($langLabel = $locale)
#end
## emit link or text for each language
#set ($langTarget = $utils.escapeHtmlAttribute($gui.target('language', $locale)))
#if ($login.localeCode != $locale && $login.language != $locale)
#set ($langMenu = $langMenu + '<li><a
#if ($login.localeCode != $locale && $login.language != $locale)
#set ($langMenu = $langMenu + '<li><a
class="block px-8 sm:px-4 py-3 hover:bg-lavender-blush dark:hover:bg-purple-black"
aria-current="false"
href="'+$langTarget+'">'+$langLabel+' - '+$locale.toUpperCase()
+'</a></li>')
#else
#set ($langMenu = $langMenu + '<li><a
+'</a></li>')
#else
#set ($langMenu = $langMenu + '<li><a
class="flex items-center px-8 sm:px-4 justify-between w-full py-3 bg-indigo-light dark:bg-purple-black"
aria-current="true"
href="'+$langTarget+'"><span class="font-body-semi"
>'+$langLabel+' - '+$locale.toUpperCase()+'</span><span class="fa-solid fa-check text-indigo dark:text-white text-body-l"></span></li>')
#end
#end ## end foreach
>'+$langLabel+' - '+$locale.toUpperCase()+
'</span><span class="fa-solid fa-check text-indigo dark:text-white text-body-l"></span></li>')
#end
#end ## end foreach
<agov-language
class="hidden sm:inline-block"
data-lang='$login.localeCode.toUpperCase()'
data-links='$langMenu'
data-aria_label='$text.get("languageDropdown.aria.label")'
>
>
</agov-language>
<a href="$text.get("general.help.link")" target="_blank" class="cursor-pointer hidden sm:inline-block">
<div class="mx-6 flex items-center">
<i class="text-xl pr-2 fa-regular fa-circle-question ml-auto text-space-blue dark:text-white transition-all"></i>
<span class="text-space-blue dark:text-white font-body-semi text-body-l transition-colors">$text.get("general.help")</span>
<span class="text-space-blue dark:text-white font-body-semi text-body-l transition-colors">$text.get(
"general.help")</span>
</div>
</a>
<agov-darkmode
class="hidden sm:inline-block"
data-aria_label='$text.get("darkModeSwitch.aria.label")'>
class="hidden sm:inline-block"
data-aria_label='$text.get("darkModeSwitch.aria.label")'>
</agov-darkmode>
<agov-mobile-menu

View File

@ -1,7 +1,7 @@
#parse("${templatePath}/header.vm")
<agov-backdrop></agov-backdrop>
<div id="fidoBackdrop" style="display: none">
<div id="fidoBackdrop" class="hidden">
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 backdrop-blur-[10px]"></div>
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 bg-zinc-50 opacity-80"></div>
</div>
@ -16,79 +16,73 @@
</div>
<h3 class="font-header text-h5 text-space-blue dark:text-white mb-4">$text.get(
"recovery_accessapp_auth.accessAppRegistered")</h3>
"recovery_accessapp_auth.accessAppRegistered")</h3>
<p class="font-body text-body-l text-space-blue dark:text-white mb-2">
${text.get("recovery_accessapp_auth.instruction1").replaceAll(
"!!!ACCESS_APP_NAME!!!", "$utils.escapeHtmlAttribute($gui.getGuiElem('accessApp').value)")}
${text.get("recovery_accessapp_auth.instruction1").replaceAll(
"!!!ACCESS_APP_NAME!!!", "$utils.escapeHtmlAttribute($gui.getGuiElem('accessApp').value)")}
</p>
<p class="font-body text-body-l text-space-blue dark:text-white mb-8">
${text.get("recovery_accessapp_auth.instruction2").replaceAll(
"!!!ACCESS_APP_NAME!!!", "$utils.escapeHtmlAttribute($gui.getGuiElem('accessApp').value)")}
${text.get("recovery_accessapp_auth.instruction2").replaceAll(
"!!!ACCESS_APP_NAME!!!", "$utils.escapeHtmlAttribute($gui.getGuiElem('accessApp').value)")}
</p>
<div id="accessAppModal" class="h-full">
<div class="desktopBanner" aria-live="assertive">
<div style="display: none"
class="info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
<div class="hidden info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4
mb-4">
<i class="fa-regular fa-info-circle rounded-full p-3 text-info dark:text-dark-info bg-info/10 dark:bg-dark-info-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.info")
$text.get("mauth_usernameless.banner.info")
</p>
</div>
<div style="display: none"
class="success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
<div class="hidden success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
<i class="fa-regular fa-check-circle rounded-full p-3 text-success dark:text-dark-success bg-success/10 dark:bg-dark-success-icon mr-4 text-xl leading-none"></i>
<div>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.success")
$text.get("mauth_usernameless.banner.success")
</p>
</div>
</div>
<div style="display: none"
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.error")
$text.get("mauth_usernameless.banner.error")
</p>
</div>
</div>
<div class="relative flex flex-col h-full">
<div id="blurBackdrop" class="absolute backdrop-blur-sm top-0 bottom-0 -left-4 -right-4 z-10"
style="display:none "></div>
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm top-0 bottom-0 -left-4 -right-4 z-10"></div>
<div class="mobileBanner relative z-20" aria-live="assertive">
<div style="display: none"
class="info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
<div class="hidden info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
<i class="fa-regular fa-info-circle rounded-full p-3 text-info dark:text-dark-info bg-info/10 dark:bg-dark-info-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.info")
$text.get("mauth_usernameless.banner.info")
</p>
</div>
<div style="display: none"
class="success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
<div class="hidden success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
<i class="fa-regular fa-check-circle rounded-full p-3 text-success dark:text-dark-success bg-success/10 dark:bg-dark-success-icon mr-4 text-xl leading-none"></i>
<div>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.success")
$text.get("mauth_usernameless.banner.success")
</p>
</div>
</div>
<div style="display: none"
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.error")
$text.get("mauth_usernameless.banner.error")
</p>
</div>
</div>
<div id="agovLoginImageMobile" style="display: none"
class="md:max-w-[520px] max-w-[350px] sm:max-w-[300px] w-full basis-1/2 mx-auto mb-4">
<div id="agovLoginImageMobile"
class="hidden md:max-w-[520px] max-w-[350px] sm:max-w-[300px] w-full basis-1/2 mx-auto mb-4">
<img alt=""
src="${login.appDataPath}/static/images/recovery.svg"
class="block sm:hidden md:block dark:hidden w-full">
@ -102,8 +96,7 @@
<canvas role="img" aria-labelledby="labelQRCodeInstructions" id="mauth_qrcode"
class="mb-4 mx-auto"></canvas>
<div class="hidden" id="QRcodeHiddenLink"></div>
<span id="spinner" class="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-20"
style="display: none">
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-20">
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
<img src="${login.appDataPath}/static/images/spinner-dark.svg"
class="animate-spin hidden dark:block">
@ -125,16 +118,16 @@
<div class="accessAppInstructions flex bg-indigo-light rounded-xl p-4 mb-4 items-center dark:bg-purple-black">
<img alt="" src="${login.appDataPath}/static/images/access-app.svg" class="h-12 mr-4">
<p id="labelQRCodeInstructions" class="font-header text-h5 text-space-blue dark:text-white">
$text.get("mauth_usernameless.instructions")
$text.get("mauth_usernameless.instructions")
</p>
</div>
</div>
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
accept-charset="UTF-8" class="w-full bottom-8 sm:static mt-auto mb-6 sm:mb-0">
<div id="mobileButtons" style="display: none" class="w-full bottom-8 sm:static mt-auto mb-16 sm:mb-0">
<div id="mobileButtons" class="hidden w-full bottom-8 sm:static mt-auto mb-16 sm:mb-0">
<div class="flex flex-col">
<a id="accessAppLink" href="">
<agov-button
@ -155,21 +148,20 @@
data-value="EID"
data-id="EID"
data-label="<i class='fa-regular fa-eye align-middle text-xl text-indigo dark:text-lilac mr-2'></i>$text.get(
"mauth_usernameless.showQR")"
"mauth_usernameless.showQR")"
data-type="button"
data-fullwidth="true">
</agov-button>
<agov-button
style="display: none"
id="hideQR"
class="block basis-full"
class="hidden basis-full"
data-style="frameless"
data-name="EID"
data-value="EID"
data-id="EID"
data-label="<i class='fa-regular fa-eye-slash align-middle text-xl text-indigo dark:text-lilac mr-2'></i>$text.get(
"mauth_usernameless.hideQR")"
"mauth_usernameless.hideQR")"
data-type="button"
data-fullwidth="true">
</agov-button>

View File

@ -13,12 +13,12 @@
</div>
<h4 id="modalTitle" class="font-header text-h4 text-space-blue dark:text-white mb-8">
$text.get("recovery_check_code.noCodeAccess")
$text.get("recovery_check_code.noCodeAccess")
</h4>
<div id="modalDescription" class="mb-20">
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("recovery_check_code.noCodeAccessInstructions")
$text.get("recovery_check_code.noCodeAccessInstructions")
</p>
</div>
@ -51,27 +51,31 @@
<div class="flex flex-col-reverse sm:flex-row justify-evenly items-center gap-5 w-full">
<div class="flex flex-col sm:bg-white sm:dark:bg-surface-black rounded-[20px] sm:px-10 sm:py-10 max-w-[550px] w-full
basis-full md:basis-1/2">
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-30">
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
<img src="${login.appDataPath}/static/images/spinner-dark.svg" class="animate-spin hidden dark:block">
</span>
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-96 -left-4 -right-4 z-20"></div>
<div class="flex mb-6 items-baseline">
<h3 class="font-header text-h3 text-space-blue dark:text-white mr-3">$text.get("general.recovery")</h3>
<h4 class="font-header text-h4 text-disabled-grey dark:text-silver">$text.get("general.entryCode")</h4>
</div>
#set($error = $gui.getGuiElem("lasterror"))
#if (($error.value && $error.value != ""))
#set($error = $gui.getGuiElem("lasterror"))
#if (($error.value && $error.value != ""))
<div class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-6">
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("recovery_check_code.codeIncorrect")
$text.get("recovery_check_code.codeIncorrect")
</p>
</div>
#end
#end
<p class="font-body text-body-l text-space-blue dark:text-white mb-2">
$text.get("recovery_check_code.instruction")
$text.get("recovery_check_code.instruction")
</p>
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
accept-charset="UTF-8"
class="flex flex-col flex-auto block ">

View File

@ -1,7 +1,7 @@
#parse("${templatePath}/header.vm")
<agov-backdrop></agov-backdrop>
<div id="fidoBackdrop" style="display: none">
<div id="fidoBackdrop" class="hidden">
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 backdrop-blur-[10px]"></div>
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 bg-zinc-50 opacity-80"></div>
</div>
@ -16,24 +16,23 @@
</div>
<h3 class="font-header text-h5 text-space-blue dark:text-white mb-4">$text.get(
"recovery_fidokey_auth.keyRegistered")</h3>
"recovery_fidokey_auth.keyRegistered")</h3>
<p class="font-body text-body-l text-space-blue dark:text-white mb-2">
${text.get("recovery_fidokey_auth.instruction1").replaceAll(
"!!!SECURITY_KEY_NAME!!!", "$utils.escapeHtmlAttribute($gui.getGuiElem('securityKey').value)")}
${text.get("recovery_fidokey_auth.instruction1").replaceAll(
"!!!SECURITY_KEY_NAME!!!", "$utils.escapeHtmlAttribute($gui.getGuiElem('securityKey').value)")}
</p>
<p class="font-body text-body-l text-space-blue dark:text-white mb-8">
${text.get("recovery_fidokey_auth.instruction2").replaceAll(
"!!!SECURITY_KEY_NAME!!!", "$utils.escapeHtmlAttribute($gui.getGuiElem('securityKey').value)")}
${text.get("recovery_fidokey_auth.instruction2").replaceAll(
"!!!SECURITY_KEY_NAME!!!", "$utils.escapeHtmlAttribute($gui.getGuiElem('securityKey').value)")}
</p>
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
<div style="display: none"
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("fido2_auth.cancel.fido")
$text.get("fido2_auth.cancel.fido")
</p>
</div>
@ -42,21 +41,21 @@
<span class="font-header text-h6 bg-royal-light-blue dark:bg-blueish-black w-12 h-12 flex flex-none items-center justify-center rounded-full
text-space-blue dark:text-white leading-none">1</span>
<p class="font-body-semi text-body-l text-space-blue dark:text-white ml-4">$text.get(
"recovery_fidokey_auth.fidoInstruction")</p>
"recovery_fidokey_auth.fidoInstruction")</p>
</div>
<div class="flex mb-2 items-center">
<span class="font-header text-h6 bg-royal-light-blue dark:bg-blueish-black w-12 h-12 flex flex-none items-center justify-center rounded-full
text-space-blue dark:text-white leading-none">2</span>
<p class="font-body-semi text-body-l text-space-blue dark:text-white ml-4">$text.get(
"fido2_auth.instruction2")</p>
"fido2_auth.instruction2")</p>
</div>
<div class="flex mb-2 items-center">
<span class="font-header text-h6 bg-royal-light-blue dark:bg-blueish-black w-12 h-12 flex flex-none items-center justify-center rounded-full
text-space-blue dark:text-white leading-none">3</span>
<p class="font-body-semi text-body-l text-space-blue dark:text-white ml-4">$text.get(
"fido2_auth.instruction3")</p>
"fido2_auth.instruction3")</p>
</div>
</div>

View File

@ -2,6 +2,11 @@
<agov-backdrop></agov-backdrop>
<div id="mainContent" class="container mx-auto sm:mt-32 sm:max-w-full flex flex-auto sm:block">
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-30">
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
<img src="${login.appDataPath}/static/images/spinner-dark.svg" class="animate-spin hidden dark:block">
</span>
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-96 -left-4 -right-4 z-20"></div>
<div class="flex flex-col-reverse sm:flex-row justify-evenly items-center gap-5 w-full">
<div class="flex flex-col sm:bg-white sm:dark:bg-surface-black rounded-[20px] sm:px-10 sm:py-10 max-w-[550px] w-full
basis-full md:basis-1/2">
@ -13,43 +18,43 @@
<div class="info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
<i class="fa-regular fa-info-circle rounded-full p-3 text-info dark:text-dark-info bg-info/10 dark:bg-dark-info-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("recovery_intro_email.banner.info")
$text.get("recovery_intro_email.banner.info")
</p>
</div>
#set($error = $gui.getGuiElem("lasterror"))
#if (($error.value && $error.value != ""))
#set($error = $gui.getGuiElem("lasterror"))
#if (($error.value && $error.value != ""))
<div class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("recovery_intro_email.banner.error")
$text.get("recovery_intro_email.banner.error")
</p>
</div>
#end
#end
<div id="captchaNotFilled" style="display: none"
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
<div id="captchaNotFilled"
class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("recovery_intro_email.captchaUnchecked")
$text.get("recovery_intro_email.captchaUnchecked")
</p>
</div>
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
accept-charset="UTF-8"
class="mt-4 flex flex-col flex-auto block ">
#set ($emailInput = $gui.getGuiElem('email'))
#set ($emailInput = $gui.getGuiElem('email'))
<agov-input
data-label="$text.get("general.email.address")"
data-placeholder="$text.get("general.email")"
data-id="email"
data-name="email"
#if ($emailInput && $emailInput.value && $emailInput.value.length() > 0)
#if ($emailInput && $emailInput.value && $emailInput.value.length() > 0)
data-value="$utils.escapeHtmlAttribute($emailInput.value)"
#else
#else
data-value=""
#end
#end
data-type="text"
data-autofocus="true"
data-left_icon="fa-envelope"
@ -60,16 +65,16 @@
<p class="font-body text-body-l text-space-blue dark:text-white mb-2 sm:mb-8">
<span class="font-body-semi">$text.get("recovery_intro_email.important")</span>
$text.get("recovery_intro_email.process")
$text.get("recovery_intro_email.process")
</p>
#if ($utils.escapeHtmlAttribute($gui.getGuiElem("X-ReCAPTCHA-Integration").value) == "INVISIBLE")
#set ($isCaptchaVisible = true)
#else
#set ($isCaptchaVisible = false)
#end
#if ($utils.escapeHtmlAttribute($gui.getGuiElem("X-ReCAPTCHA-Integration").value) == "INVISIBLE")
#set ($isCaptchaVisible = true)
#else
#set ($isCaptchaVisible = false)
#end
#if ($isCaptchaVisible)
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaInvisibleSiteKey"))
#if ($isCaptchaVisible)
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaInvisibleSiteKey"))
<input type="hidden" name="recaptcha_sitekey" value="$captcha.value"/>
<input type="hidden" name="recaptcha_response" value="captcha">
<script src="https://www.google.com/recaptcha/enterprise.js?render=$captcha.value"></script>
@ -99,8 +104,8 @@
btn.click()
}
</script>
#else
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaVisibleSiteKey"))
#else
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaVisibleSiteKey"))
<input type="hidden" name="recaptcha_sitekey" value="$captcha.value"/>
<input type="hidden" name="recaptcha_response" value="captcha">
<script src="https://www.google.com/recaptcha/enterprise.js?onload=onloadCallback&render=explicit" async
@ -124,22 +129,22 @@
});
};
</script>
#end
#end
<div class="font-body text-body-l mb-4">
#if ($isCaptchaVisible)
#if ($isCaptchaVisible)
<div class="text-disabled-grey dark:text-silver">
$text.get("recovery_intro_email.siteProtectedWithRecaptcha")
$text.get("recovery_intro_email.siteProtectedWithRecaptcha")
</div>
#else
#else
<div class="flex mt-8" id="captchaRender"></div>
#end
#end
</div>
<div class="w-full sm:static mt-auto mb-6 sm:mb-0">
<div class="flex flex-col sm:flex-row-reverse gap-4">
#if ($isCaptchaVisible)
#if ($isCaptchaVisible)
<agov-button
class="block basis-full"
data-name="continue"
@ -150,7 +155,7 @@
data-fullwidth="true"
onclick="return emailCaptcha(event)">
</agov-button>
#else
#else
<agov-button
class="block basis-full"
data-name="continue"
@ -161,7 +166,7 @@
data-fullwidth="true"
onclick="validateEmail.validateForm(event, true)">
</agov-button>
#end
#end
<agov-button
class="block basis-full"
data-style="secondary"

View File

@ -2,6 +2,11 @@
<agov-backdrop></agov-backdrop>
<div id="mainContent" class="container mx-auto sm:mt-32 sm:max-w-full flex flex-auto sm:block">
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-30">
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
<img src="${login.appDataPath}/static/images/spinner-dark.svg" class="animate-spin hidden dark:block">
</span>
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-96 -left-4 -right-4 z-20"></div>
<div class="flex flex-col-reverse sm:flex-row justify-evenly items-center gap-5 w-full">
<div class="flex flex-col sm:bg-white sm:dark:bg-surface-black rounded-[20px] sm:px-10 sm:py-10 max-w-[550px] w-full
basis-full md:basis-1/2">
@ -14,12 +19,12 @@
<i class="fa-regular fa-check-circle rounded-full p-3 text-success dark:text-dark-success bg-success/10 dark:bg-dark-success-icon mr-4 text-xl leading-none"></i>
<div>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("recovery_intro_email_sent.banner.success")
$text.get("recovery_intro_email_sent.banner.success")
</p>
</div>
</div>
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
accept-charset="UTF-8"
class="flex flex-col flex-auto block ">

View File

@ -2,31 +2,35 @@
<agov-backdrop></agov-backdrop>
<div id="mainContent" class="container mx-auto sm:mt-32 sm:max-w-full flex flex-auto sm:block">
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-30">
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
<img src="${login.appDataPath}/static/images/spinner-dark.svg" class="animate-spin hidden dark:block">
</span>
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-96 -left-4 -right-4 z-20"></div>
<div class="flex flex-col-reverse sm:flex-row justify-evenly items-center gap-5 w-full">
<div class="flex flex-col sm:bg-white sm:dark:bg-surface-black rounded-[20px] sm:px-10 sm:py-10 max-w-[550px] w-full
basis-full md:basis-1/2">
<div class="flex mb-6 items-baseline">
<h3 class="font-header text-h3 text-space-blue dark:text-white mr-3">$text.get("general.login")</h3>
<h4 class="font-header text-h4 text-disabled-grey dark:text-silver">$text.get("general.securityKey")</h4>
</div>
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
accept-charset="UTF-8"
class="flex flex-col flex-auto block ">
#set ($emailInput = $gui.getGuiElem('email'))
#set ($emailInput = $gui.getGuiElem('email'))
<agov-input
class="mb-4 sm:mb-40"
data-label="$text.get("general.email.address")"
data-placeholder="$text.get("general.email")"
data-id="email"
data-name="userInputValue_prompt.email"
#if ($emailInput && $emailInput.value && $emailInput.value.length() > 0)
#if ($emailInput && $emailInput.value && $emailInput.value.length() > 0)
data-value="$utils.escapeHtmlAttribute($emailInput.value)"
#else
#else
data-value=""
#end
#end
data-type="text"
data-autofocus="true"
data-left_icon="fa-envelope"
@ -35,14 +39,14 @@
data-email_required="$text.get("user_input.invalid.email.required")">
</agov-input>
#if ($gui.getGuiElem("X-ReCAPTCHA-Integration").value == "INVISIBLE")
#set ($isCaptchaVisible = true)
#else
#set ($isCaptchaVisible = false)
#end
#if ($gui.getGuiElem("X-ReCAPTCHA-Integration").value == "INVISIBLE")
#set ($isCaptchaVisible = true)
#else
#set ($isCaptchaVisible = false)
#end
#if ($isCaptchaVisible)
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaInvisibleSiteKey"))
#if ($isCaptchaVisible)
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaInvisibleSiteKey"))
<input type="hidden" name="recaptcha_sitekey" value="$captcha.value"/>
<input type="hidden" name="recaptcha_response" value="captcha">
<script src="https://www.google.com/recaptcha/enterprise.js?render=$captcha.value"></script>
@ -72,8 +76,8 @@
btn.click()
}
</script>
#else
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaVisibleSiteKey"))
#else
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaVisibleSiteKey"))
<input type="hidden" name="recaptcha_sitekey" value="$captcha.value"/>
<input type="hidden" name="recaptcha_response" value="captcha">
<script src="https://www.google.com/recaptcha/enterprise.js?onload=onloadCallback&render=explicit" async
@ -97,22 +101,22 @@
});
};
</script>
#end
#end
<div class="font-body text-body-l mb-4">
#if ($isCaptchaVisible)
#if ($isCaptchaVisible)
<div class="text-disabled-grey dark:text-silver">
$text.get("recovery_intro_email.siteProtectedWithRecaptcha")
$text.get("recovery_intro_email.siteProtectedWithRecaptcha")
</div>
#else
#else
<div class="flex mt-8" id="captchaRender"></div>
#end
#end
</div>
<div class="w-full sm:static mt-auto mb-6 sm:mb-0">
<div class="flex flex-col sm:flex-row-reverse gap-4">
#if ($isCaptchaVisible)
#if ($isCaptchaVisible)
<agov-button
class="block basis-full"
data-name="submit"
@ -123,7 +127,7 @@
data-fullwidth="true"
onclick="return emailCaptcha(event)">
</agov-button>
#else
#else
<agov-button
class="block basis-full"
data-name="submit"
@ -134,7 +138,7 @@
data-fullwidth="true"
onclick="validateEmail.validateForm(event)">
</agov-button>
#end
#end
<agov-button
class="block basis-full"
data-style="secondary"

View File

@ -135,10 +135,10 @@ prompt.newpassword=Nuova Password
prompt.newpassword.confirm=Conferma password
prompt.password=Password
prompt.userid=Nome utente
pwreset.done.info=La password &egrave; stata modificata con successo. Fare clic su continua per accedere.
pwreset.done.info=Your password was successfully changed. Please click on continue to log in.
pwreset.email.sent=Se il vostro ID utente esiste, vi è stata inviata un'e-mail per reimpostare la password.
pwreset.info.linktext=Password dimenticata
pwreset.noticket=Il biglietto per la reimpostazione della password non &egrave; pi&ugrave; valido. Si prega di generarne uno nuovo.
pwreset.info.linktext=Password forgotten
pwreset.noticket=Your password reset ticket is no longer valid. Please generate a new one.
recovery_accessapp_auth.accessAppRegistered=App di accesso AGOV gi&agrave; registrata
recovery_accessapp_auth.instruction1=Ha gi&agrave; registrato una nuova app di accesso AGOV !!!SECURITY_KEY_NAME!!! come parte del processo di recupero.
recovery_accessapp_auth.instruction2=Si prega di usare !!!ACCESS_APP_NAME!!! per l'identificazione.
@ -204,7 +204,7 @@ recovery_start_info.title=Il processo di ripristino sta per iniziare.
title=NEVIS SSO Portal
title.login=Login
title.pwchange.label=Cambiare Password
title.pwreset=Password Dimenticata
title.pwreset=Password Forgotten
user_input.invalid.email=Inserire un'e-mail valida.
user_input.invalid.email.required=Campo obbligatorio
user_input.invalid.email.tooLong=Il testo inserito &egrave; troppo lungo.

View File

@ -135,10 +135,10 @@ prompt.newpassword=Nuova Password
prompt.newpassword.confirm=Conferma password
prompt.password=Password
prompt.userid=Nome utente
pwreset.done.info=La password &egrave; stata modificata con successo. Fare clic su continua per accedere.
pwreset.done.info=Your password was successfully changed. Please click on continue to log in.
pwreset.email.sent=Se il vostro ID utente esiste, vi è stata inviata un'e-mail per reimpostare la password.
pwreset.info.linktext=Password dimenticata
pwreset.noticket=Il biglietto per la reimpostazione della password non &egrave; pi&ugrave; valido. Si prega di generarne uno nuovo.
pwreset.info.linktext=Password forgotten
pwreset.noticket=Your password reset ticket is no longer valid. Please generate a new one.
recovery_accessapp_auth.accessAppRegistered=App di accesso AGOV gi&agrave; registrata
recovery_accessapp_auth.instruction1=Ha gi&agrave; registrato una nuova app di accesso AGOV !!!SECURITY_KEY_NAME!!! come parte del processo di recupero.
recovery_accessapp_auth.instruction2=Si prega di usare !!!ACCESS_APP_NAME!!! per l'identificazione.
@ -204,7 +204,7 @@ recovery_start_info.title=Il processo di ripristino sta per iniziare.
title=NEVIS SSO Portal
title.login=Login
title.pwchange.label=Cambiare Password
title.pwreset=Password Dimenticata
title.pwreset=Password Forgotten
user_input.invalid.email=Inserire un'e-mail valida.
user_input.invalid.email.required=Campo obbligatorio
user_input.invalid.email.tooLong=Il testo inserito &egrave; troppo lungo.

View File

@ -1,7 +1,7 @@
#parse("${templatePath}/header.vm")
<agov-backdrop></agov-backdrop>
<div id="fidoBackdrop" style="display: none">
<div id="fidoBackdrop" class="hidden">
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 backdrop-blur-[10px]"></div>
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 bg-zinc-50 opacity-80"></div>
</div>
@ -15,16 +15,16 @@
<h4 class="font-header text-h4 text-disabled-grey dark:text-silver">$text.get("general.securityKey")</h4>
</div>
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
accept-charset="UTF-8">
<div class="flex flex-row items-center justify-between">
#set ($emailInput = $gui.getGuiElem('email'))
#if ($emailInput && $emailInput.value && $emailInput.value.length() > 0)
#set ($emailInput = $gui.getGuiElem('email'))
#if ($emailInput && $emailInput.value && $emailInput.value.length() > 0)
<p class="text-space-blue dark:text-white font-body-semi text-body-l truncate">$utils.escapeHtmlAttribute($emailInput.value)</p>
#else
#else
<p class="text-space-blue dark:text-white font-body-semi text-body-l truncate"></p>
#end
#end
<agov-button
class="shrink-0"
data-style="frameless"
@ -40,11 +40,10 @@
</form>
<div class="mt-3 mb-6 w-full h-px bg-platinum rounded-full"></div>
<div style="display: none"
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
<div class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4 hidden">
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("fido2_auth.cancel.fido")
$text.get("fido2_auth.cancel.fido")
</p>
</div>
@ -53,21 +52,21 @@
<span class="font-header text-h6 bg-royal-light-blue dark:bg-blueish-black w-12 h-12 flex flex-none items-center justify-center rounded-full
text-space-blue dark:text-white leading-none">1</span>
<p class="font-body-semi text-body-l text-space-blue dark:text-white ml-4">$text.get(
"fido2_auth.instruction1")</p>
"fido2_auth.instruction1")</p>
</div>
<div class="flex mb-2 items-center">
<span class="font-header text-h6 bg-royal-light-blue dark:bg-blueish-black w-12 h-12 flex flex-none items-center justify-center rounded-full
text-space-blue dark:text-white leading-none">2</span>
<p class="font-body-semi text-body-l text-space-blue dark:text-white ml-4">$text.get(
"fido2_auth.instruction2")</p>
"fido2_auth.instruction2")</p>
</div>
<div class="flex mb-2 items-center">
<span class="font-header text-h6 bg-royal-light-blue dark:bg-blueish-black w-12 h-12 flex flex-none items-center justify-center rounded-full
text-space-blue dark:text-white leading-none">3</span>
<p class="font-body-semi text-body-l text-space-blue dark:text-white ml-4">$text.get(
"fido2_auth.instruction3")</p>
"fido2_auth.instruction3")</p>
</div>
</div>
@ -79,7 +78,7 @@
</agov-checkbox>
<label for="skip" class="font-body text-body-l text-space-blue dark:text-white cursor-pointer">
$text.get("fido2_auth.skipInstructions")
$text.get("fido2_auth.skipInstructions")
</label>
</div>
<div class="mt-auto mb-6 sm:mb-0">
@ -94,7 +93,7 @@
<div class="flex items-center mt-6 mb-4">
<span class="h-px w-full bg-silver"></span>
<span class="px-2 text-disabled-grey font-body-semi text-body-l whitespace-nowrap">
$text.get("fido2_auth.switchLogin")
$text.get("fido2_auth.switchLogin")
</span>
<span class="h-px w-full bg-silver"></span>
</div>

View File

@ -3,7 +3,7 @@
$text.get("footer.text")
<a target="_blank" class='text-hyperlink dark:text-dark-hyperlink underline' href='$text.get("footer.link")'>$text.get("footer.link.label")</a>
</div>
<p>1.5.3.51-20240709T140654Z</p>
<p>1.6.0.2137-20240812T051256Z</p>
</footer>
<script src="${login.appDataPath}/static/bundle.js"></script>
</body>

View File

@ -1,6 +1,6 @@
<!DOCTYPE html>
## svh -> Small View Height. It's not taking the height of the search bar on mobile into account
<html lang="$login.language" class="relative min-h-screen h-full mx-4 flex sm:block" style="min-height: 100svh">
<html lang="$login.language" class="relative min-h-100 h-full mx-4 flex sm:block">
<head>
<title>AGOV</title>
<meta charset="UTF-8">

View File

@ -10,15 +10,15 @@
class="flex items-center rounded-xl gap-5 p-2 sm:p-0 sm:w-auto w-full hidden bg-pale-blue dark:bg-purple-black sm:bg-transparent">
<div class="flex items-center p-2 bg-white rounded sm:rounded-xl w-16 h-16" id="logo"></div>
<h1 class="font-header text-h6 sm:text-h4 text-space-blue dark:text-white">
#if ($login.language =="en")
#if ($login.language =="en")
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameEN').value)
#elseif ($login.language =="de")
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameDE').value)
#elseif ($login.language =="fr")
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameFR').value)
#else
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameIT').value)
#end
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameDE').value)
#elseif ($login.language =="fr")
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameFR').value)
#else
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameIT').value)
#end
</h1>
</div>
@ -28,7 +28,7 @@
<h1 class="font-header text-h4 text-space-blue dark:text-white mb-8">$text.get("general.registration")</h1>
<h2 class="font-header text-h5 text-space-blue dark:text-white text-center mb-4">
$text.get("mauth_usernameless.noAccount")
$text.get("mauth_usernameless.noAccount")
</h2>
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
@ -69,15 +69,15 @@
<div class="flex items-center p-2 bg-white dark:bg-black rounded sm:rounded-xl w-16 h-16"
id="logoMobile"></div>
<h1 class="font-header text-h6 sm:text-h4 text-space-blue dark:text-white">
#if ($login.language =="en")
#if ($login.language =="en")
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameEN').value)
#elseif ($login.language =="de")
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameDE').value)
#elseif ($login.language =="fr")
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameFR').value)
#else
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameIT').value)
#end
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameDE').value)
#elseif ($login.language =="fr")
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameFR').value)
#else
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameIT').value)
#end
</h1>
</div>
@ -93,65 +93,65 @@
<div id="accessAppModal" class="h-full">
<div class="desktopBanner" aria-live="assertive">
<div style="display: none"
class="info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
<div class="hidden info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4
mb-4">
<i class="fa-regular fa-info-circle rounded-full p-3 text-info dark:text-dark-info bg-info/10 dark:bg-dark-info-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.info")
$text.get("mauth_usernameless.banner.info")
</p>
</div>
<div style="display: none"
class="success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
<div class="hidden success flex rounded-xl bg-success-background dark:bg-dark-success-background
items-center p-4 mb-4">
<i class="fa-regular fa-check-circle rounded-full p-3 text-success dark:text-dark-success bg-success/10 dark:bg-dark-success-icon mr-4 text-xl leading-none"></i>
<div>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.success")
$text.get("mauth_usernameless.banner.success")
</p>
</div>
</div>
<div style="display: none"
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center
p-4 mb-4">
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.error")
$text.get("mauth_usernameless.banner.error")
</p>
</div>
</div>
<div class="relative flex flex-col h-full">
<div id="blurBackdrop" class="absolute backdrop-blur-sm -top-1 -bottom-8 -left-4 -right-4 z-10"
style="display:none "></div>
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-8 -left-4 -right-4
z-10"></div>
<div class="mobileBanner relative z-20" aria-live="assertive">
<div style="display: none"
class="info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
<div class="hidden info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center
p-4 mb-4">
<i class="fa-regular fa-info-circle rounded-full p-3 text-info dark:text-dark-info bg-info/10 dark:bg-dark-info-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.info")
$text.get("mauth_usernameless.banner.info")
</p>
</div>
<div style="display: none"
class="success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
<div class="hidden success flex rounded-xl bg-success-background dark:bg-dark-success-background
items-center p-4 mb-4">
<i class="fa-regular fa-check-circle rounded-full p-3 text-success dark:text-dark-success bg-success/10 dark:bg-dark-success-icon mr-4 text-xl leading-none"></i>
<div>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.success")
$text.get("mauth_usernameless.banner.success")
</p>
</div>
</div>
<div style="display: none"
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background
items-center p-4 mb-4">
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.error")
$text.get("mauth_usernameless.banner.error")
</p>
</div>
</div>
<div id="agovLoginImageMobile" style="display: none"
class="md:max-w-[520px] max-w-[350px] sm:max-w-[300px] w-full mx-auto mb-6">
<div id="agovLoginImageMobile" class="hidden md:max-w-[520px] max-w-[350px] sm:max-w-[300px] w-full
mx-auto mb-6">
<img alt=""
src="${login.appDataPath}/static/images/login.svg"
class="block sm:hidden md:block dark:hidden w-full">
@ -165,12 +165,12 @@
<canvas role="img" aria-labelledby="labelQRCodeInstructions" id="mauth_qrcode"
class="mb-6 mx-auto"></canvas>
<div class="hidden" id="QRcodeHiddenLink"></div>
<span id="spinner" class="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-20"
style="display: none">
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2
z-20">
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
<img src="${login.appDataPath}/static/images/spinner-dark.svg"
class="animate-spin hidden dark:block">
</span>
</span>
</div>
<a id="accessAppLinkIpad" href="" class="hidden">
@ -189,7 +189,7 @@
dark:bg-purple-black">
<img alt="" src="${login.appDataPath}/static/images/access-app.svg" class="h-12 mr-4">
<p id="labelQRCodeInstructions" class="font-header text-h5 text-space-blue dark:text-white">
$text.get("mauth_usernameless.instructions")
$text.get("mauth_usernameless.instructions")
</p>
</div>
</div>
@ -197,7 +197,7 @@
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
accept-charset="UTF-8" class="w-full sm:static mt-auto mb-20 sm:mb-0">
<div id="mobileButtons" style="display: none" class="w-full">
<div id="mobileButtons" class="hidden w-full">
<div class="flex flex-col">
<a id="accessAppLink" href="">
<agov-button
@ -218,21 +218,20 @@
data-value="EID"
data-id="EID"
data-label="<i class='fa-regular fa-eye align-middle text-xl text-indigo dark:text-lilac mr-2'></i>$text.get(
"mauth_usernameless.showQR")"
"mauth_usernameless.showQR")"
data-type="button"
data-fullwidth="true">
</agov-button>
<agov-button
style="display: none"
id="hideQR"
class="block basis-full"
class="hidden basis-full"
data-style="frameless"
data-name="EID"
data-value="EID"
data-id="EID"
data-label="<i class='fa-regular fa-eye-slash align-middle text-xl text-indigo dark:text-lilac mr-2'></i>$text.get(
"mauth_usernameless.hideQR")"
"mauth_usernameless.hideQR")"
data-type="button"
data-fullwidth="true">
</agov-button>
@ -246,11 +245,11 @@
<div id="securityKeyModal" class="hidden mt-16">
<h2 class="font-header text-h5 text-space-blue dark:text-white mt-4 text-center">
$text.get("mauth_usernameless.useSecurityKey")
$text.get("mauth_usernameless.useSecurityKey")
</h2>
<p class="font-body text-body-l text-space-blue dark:text-white text-center my-6">
$text.get("mauth_usernameless.useSecurityKeyInfo")
$text.get("mauth_usernameless.useSecurityKeyInfo")
</p>
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
@ -280,14 +279,14 @@
<button class="hidden" id="onReload" name="onReload"></button>
<h2 class="font-header text-h5 text-space-blue dark:text-white mt-7 mb-4 text-center">
$text.get("mauth_usernameless.cannotLogin")
$text.get("mauth_usernameless.cannotLogin")
</h2>
<agov-button
data-style="secondary"
data-name="fallback"
data-value="recovery"
data-label="<i class='fa-regular fa-suitcase-medical text-indigo dark:text-lilac mr-2'></i>$text.get(
"mauth_usernameless.startRecovery")"
"mauth_usernameless.startRecovery")"
data-type="submit"
data-fullwidth="true"
class="block">
@ -300,7 +299,7 @@
</div>
</div>
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
accept-charset="UTF-8" style="display: none" class="sm:hidden formDrawer">
accept-charset="UTF-8" class="hidden sm:hidden formDrawer">
<div class="w-full z-30 fixed left-0 pointer-events-none" id="drawerContainer">
<div class="w-full bg-white dark:bg-surface-black px-4 pb-[130px] rounded-t-2xl pointer-events-auto" id="drawer">
<div class="pt-2 pb-4 cursor-pointer">
@ -309,12 +308,12 @@
<div class="flex items-center justify-center mb-6">
<span class="px-2 text-disabled-grey dark:text-white font-body-semi text-body-l whitespace-nowrap">
$text.get("general.otherOptions")
$text.get("general.otherOptions")
</span>
</div>
<p class="font-body-semi text-body-l text-space-blue dark:text-white text-center mb-2">
$text.get("mauth_usernameless.noAccount")
$text.get("mauth_usernameless.noAccount")
</p>
<agov-button
@ -330,14 +329,14 @@
<div class="flex items-center mt-6 mb-6">
<span class="h-px w-full bg-silver"></span>
<span class="px-2 text-disabled-grey dark:text-white font-body-semi text-body-l whitespace-nowrap">
$text.get("general.or")</span>
$text.get("general.or")</span>
<span class="h-px w-full bg-silver"></span>
</div>
<div class="flex flex-col flex-wrap justify-center items-center mb-6 gap-1">
<p class="font-body-semi text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.cannotLogin")
$text.get("mauth_usernameless.cannotLogin")
</p>
<agov-button
data-style="frameless"
@ -353,9 +352,9 @@
<div class="font-body text-body-s text-disabled-grey dark:text-silver text-center">
$text.get("footer.text")
$text.get("footer.text")
<a target="_blank" class='text-hyperlink dark:text-info underline' href='$text.get("footer.link")'>$text.get(
"footer.link.label")</a>
"footer.link.label")</a>
</div>
</div>
</div>

View File

@ -1,6 +1,6 @@
<!DOCTYPE html>
## svh -> Small View Height. It's not taking the height of the search bar on mobile into account
<html lang="$login.language" class="relative min-h-screen h-full mx-4 flex sm:block" style="min-height: 100svh">
## svh -> Small View Height. It's not taking the height of the search bar on mobile into account
<html lang="$login.language" class="relative min-h-100 h-full mx-4 flex sm:block">
<head>
<title>AGOV Operations</title>
<meta charset="UTF-8">
@ -20,51 +20,53 @@
<img alt="agov Logo" src="${login.appDataPath}/static/images/agov-logo.svg" class="h-5 sm:h-8 sm:mr-6 dark:hidden">
<img alt="agov Logo" src="${login.appDataPath}/static/images/agov-logo-dark.svg" class="h-5 sm:h-8 sm:mr-6 hidden dark:block">
<div class="flex items-center flex-1 sm:flex-initial justify-end">
#set ($langMenu = '')
#foreach ($locale in $login.locales)
## find translated label of current locale
#if ($text.contains("language.$locale"))
#set ($langLabel = $text.get("language.$locale"))
#elseif ($locale.length() > 2)
#set ($langLabel = $text.get("language.${locale.substring(0,2).toLowerCase()}"))
#else
#set ($langLabel = $locale)
#end
## emit link or text for each language
#set ($langTarget = $utils.escapeHtmlAttribute($gui.target('language', $locale)))
#set ($langMenu = '')
#foreach ($locale in $login.locales)
## find translated label of current locale
#if ($text.contains("language.$locale"))
#set ($langLabel = $text.get("language.$locale"))
#elseif ($locale.length() > 2)
#set ($langLabel = $text.get("language.${locale.substring(0,2).toLowerCase()}"))
#else
#set ($langLabel = $locale)
#end
## emit link or text for each language
#set ($langTarget = $utils.escapeHtmlAttribute($gui.target('language', $locale)))
#if ($login.localeCode != $locale && $login.language != $locale)
#set ($langMenu = $langMenu + '<li><a
#if ($login.localeCode != $locale && $login.language != $locale)
#set ($langMenu = $langMenu + '<li><a
class="block px-8 sm:px-4 py-3 hover:bg-lavender-blush dark:hover:bg-purple-black"
aria-current="false"
href="'+$langTarget+'">'+$langLabel+' - '+$locale.toUpperCase()
+'</a></li>')
#else
#set ($langMenu = $langMenu + '<li><a
+'</a></li>')
#else
#set ($langMenu = $langMenu + '<li><a
class="flex items-center px-8 sm:px-4 justify-between w-full py-3 bg-indigo-light dark:bg-purple-black"
aria-current="true"
href="'+$langTarget+'"><span class="font-body-semi"
>'+$langLabel+' - '+$locale.toUpperCase()+'</span><span class="fa-solid fa-check text-indigo dark:text-white text-body-l"></span></li>')
#end
#end ## end foreach
>'+$langLabel+' - '+$locale.toUpperCase()+
'</span><span class="fa-solid fa-check text-indigo dark:text-white text-body-l"></span></li>')
#end
#end ## end foreach
<agov-language
class="hidden sm:inline-block"
data-lang='$login.localeCode.toUpperCase()'
data-links='$langMenu'
data-aria_label='$text.get("languageDropdown.aria.label")'
>
>
</agov-language>
<a href="$text.get("general.help.link")" target="_blank" class="cursor-pointer hidden sm:inline-block">
<div class="mx-6 flex items-center">
<i class="text-xl pr-2 fa-regular fa-circle-question ml-auto text-space-blue dark:text-white transition-all"></i>
<span class="text-space-blue dark:text-white font-body-semi text-body-l transition-colors">$text.get("general.help")</span>
<span class="text-space-blue dark:text-white font-body-semi text-body-l transition-colors">$text.get(
"general.help")</span>
</div>
</a>
<agov-darkmode
class="hidden sm:inline-block"
data-aria_label='$text.get("darkModeSwitch.aria.label")'>
class="hidden sm:inline-block"
data-aria_label='$text.get("darkModeSwitch.aria.label")'>
</agov-darkmode>
<agov-mobile-menu

View File

@ -1,7 +1,7 @@
#parse("${templatePath}/header.vm")
<agov-backdrop></agov-backdrop>
<div id="fidoBackdrop" style="display: none">
<div id="fidoBackdrop" class="hidden">
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 backdrop-blur-[10px]"></div>
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 bg-zinc-50 opacity-80"></div>
</div>
@ -16,79 +16,73 @@
</div>
<h3 class="font-header text-h5 text-space-blue dark:text-white mb-4">$text.get(
"recovery_accessapp_auth.accessAppRegistered")</h3>
"recovery_accessapp_auth.accessAppRegistered")</h3>
<p class="font-body text-body-l text-space-blue dark:text-white mb-2">
${text.get("recovery_accessapp_auth.instruction1").replaceAll(
"!!!ACCESS_APP_NAME!!!", "$utils.escapeHtmlAttribute($gui.getGuiElem('accessApp').value)")}
${text.get("recovery_accessapp_auth.instruction1").replaceAll(
"!!!ACCESS_APP_NAME!!!", "$utils.escapeHtmlAttribute($gui.getGuiElem('accessApp').value)")}
</p>
<p class="font-body text-body-l text-space-blue dark:text-white mb-8">
${text.get("recovery_accessapp_auth.instruction2").replaceAll(
"!!!ACCESS_APP_NAME!!!", "$utils.escapeHtmlAttribute($gui.getGuiElem('accessApp').value)")}
${text.get("recovery_accessapp_auth.instruction2").replaceAll(
"!!!ACCESS_APP_NAME!!!", "$utils.escapeHtmlAttribute($gui.getGuiElem('accessApp').value)")}
</p>
<div id="accessAppModal" class="h-full">
<div class="desktopBanner" aria-live="assertive">
<div style="display: none"
class="info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
<div class="hidden info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4
mb-4">
<i class="fa-regular fa-info-circle rounded-full p-3 text-info dark:text-dark-info bg-info/10 dark:bg-dark-info-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.info")
$text.get("mauth_usernameless.banner.info")
</p>
</div>
<div style="display: none"
class="success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
<div class="hidden success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
<i class="fa-regular fa-check-circle rounded-full p-3 text-success dark:text-dark-success bg-success/10 dark:bg-dark-success-icon mr-4 text-xl leading-none"></i>
<div>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.success")
$text.get("mauth_usernameless.banner.success")
</p>
</div>
</div>
<div style="display: none"
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.error")
$text.get("mauth_usernameless.banner.error")
</p>
</div>
</div>
<div class="relative flex flex-col h-full">
<div id="blurBackdrop" class="absolute backdrop-blur-sm top-0 bottom-0 -left-4 -right-4 z-10"
style="display:none "></div>
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm top-0 bottom-0 -left-4 -right-4 z-10"></div>
<div class="mobileBanner relative z-20" aria-live="assertive">
<div style="display: none"
class="info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
<div class="hidden info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
<i class="fa-regular fa-info-circle rounded-full p-3 text-info dark:text-dark-info bg-info/10 dark:bg-dark-info-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.info")
$text.get("mauth_usernameless.banner.info")
</p>
</div>
<div style="display: none"
class="success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
<div class="hidden success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
<i class="fa-regular fa-check-circle rounded-full p-3 text-success dark:text-dark-success bg-success/10 dark:bg-dark-success-icon mr-4 text-xl leading-none"></i>
<div>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.success")
$text.get("mauth_usernameless.banner.success")
</p>
</div>
</div>
<div style="display: none"
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.error")
$text.get("mauth_usernameless.banner.error")
</p>
</div>
</div>
<div id="agovLoginImageMobile" style="display: none"
class="md:max-w-[520px] max-w-[350px] sm:max-w-[300px] w-full basis-1/2 mx-auto mb-4">
<div id="agovLoginImageMobile"
class="hidden md:max-w-[520px] max-w-[350px] sm:max-w-[300px] w-full basis-1/2 mx-auto mb-4">
<img alt=""
src="${login.appDataPath}/static/images/recovery.svg"
class="block sm:hidden md:block dark:hidden w-full">
@ -102,8 +96,7 @@
<canvas role="img" aria-labelledby="labelQRCodeInstructions" id="mauth_qrcode"
class="mb-4 mx-auto"></canvas>
<div class="hidden" id="QRcodeHiddenLink"></div>
<span id="spinner" class="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-20"
style="display: none">
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-20">
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
<img src="${login.appDataPath}/static/images/spinner-dark.svg"
class="animate-spin hidden dark:block">
@ -125,16 +118,16 @@
<div class="accessAppInstructions flex bg-indigo-light rounded-xl p-4 mb-4 items-center dark:bg-purple-black">
<img alt="" src="${login.appDataPath}/static/images/access-app.svg" class="h-12 mr-4">
<p id="labelQRCodeInstructions" class="font-header text-h5 text-space-blue dark:text-white">
$text.get("mauth_usernameless.instructions")
$text.get("mauth_usernameless.instructions")
</p>
</div>
</div>
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
accept-charset="UTF-8" class="w-full bottom-8 sm:static mt-auto mb-6 sm:mb-0">
<div id="mobileButtons" style="display: none" class="w-full bottom-8 sm:static mt-auto mb-16 sm:mb-0">
<div id="mobileButtons" class="hidden w-full bottom-8 sm:static mt-auto mb-16 sm:mb-0">
<div class="flex flex-col">
<a id="accessAppLink" href="">
<agov-button
@ -155,21 +148,20 @@
data-value="EID"
data-id="EID"
data-label="<i class='fa-regular fa-eye align-middle text-xl text-indigo dark:text-lilac mr-2'></i>$text.get(
"mauth_usernameless.showQR")"
"mauth_usernameless.showQR")"
data-type="button"
data-fullwidth="true">
</agov-button>
<agov-button
style="display: none"
id="hideQR"
class="block basis-full"
class="hidden basis-full"
data-style="frameless"
data-name="EID"
data-value="EID"
data-id="EID"
data-label="<i class='fa-regular fa-eye-slash align-middle text-xl text-indigo dark:text-lilac mr-2'></i>$text.get(
"mauth_usernameless.hideQR")"
"mauth_usernameless.hideQR")"
data-type="button"
data-fullwidth="true">
</agov-button>

View File

@ -13,12 +13,12 @@
</div>
<h4 id="modalTitle" class="font-header text-h4 text-space-blue dark:text-white mb-8">
$text.get("recovery_check_code.noCodeAccess")
$text.get("recovery_check_code.noCodeAccess")
</h4>
<div id="modalDescription" class="mb-20">
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("recovery_check_code.noCodeAccessInstructions")
$text.get("recovery_check_code.noCodeAccessInstructions")
</p>
</div>
@ -51,27 +51,31 @@
<div class="flex flex-col-reverse sm:flex-row justify-evenly items-center gap-5 w-full">
<div class="flex flex-col sm:bg-white sm:dark:bg-surface-black rounded-[20px] sm:px-10 sm:py-10 max-w-[550px] w-full
basis-full md:basis-1/2">
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-30">
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
<img src="${login.appDataPath}/static/images/spinner-dark.svg" class="animate-spin hidden dark:block">
</span>
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-96 -left-4 -right-4 z-20"></div>
<div class="flex mb-6 items-baseline">
<h3 class="font-header text-h3 text-space-blue dark:text-white mr-3">$text.get("general.recovery")</h3>
<h4 class="font-header text-h4 text-disabled-grey dark:text-silver">$text.get("general.entryCode")</h4>
</div>
#set($error = $gui.getGuiElem("lasterror"))
#if (($error.value && $error.value != ""))
#set($error = $gui.getGuiElem("lasterror"))
#if (($error.value && $error.value != ""))
<div class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-6">
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("recovery_check_code.codeIncorrect")
$text.get("recovery_check_code.codeIncorrect")
</p>
</div>
#end
#end
<p class="font-body text-body-l text-space-blue dark:text-white mb-2">
$text.get("recovery_check_code.instruction")
$text.get("recovery_check_code.instruction")
</p>
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
accept-charset="UTF-8"
class="flex flex-col flex-auto block ">

View File

@ -1,7 +1,7 @@
#parse("${templatePath}/header.vm")
<agov-backdrop></agov-backdrop>
<div id="fidoBackdrop" style="display: none">
<div id="fidoBackdrop" class="hidden">
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 backdrop-blur-[10px]"></div>
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 bg-zinc-50 opacity-80"></div>
</div>
@ -16,24 +16,23 @@
</div>
<h3 class="font-header text-h5 text-space-blue dark:text-white mb-4">$text.get(
"recovery_fidokey_auth.keyRegistered")</h3>
"recovery_fidokey_auth.keyRegistered")</h3>
<p class="font-body text-body-l text-space-blue dark:text-white mb-2">
${text.get("recovery_fidokey_auth.instruction1").replaceAll(
"!!!SECURITY_KEY_NAME!!!", "$utils.escapeHtmlAttribute($gui.getGuiElem('securityKey').value)")}
${text.get("recovery_fidokey_auth.instruction1").replaceAll(
"!!!SECURITY_KEY_NAME!!!", "$utils.escapeHtmlAttribute($gui.getGuiElem('securityKey').value)")}
</p>
<p class="font-body text-body-l text-space-blue dark:text-white mb-8">
${text.get("recovery_fidokey_auth.instruction2").replaceAll(
"!!!SECURITY_KEY_NAME!!!", "$utils.escapeHtmlAttribute($gui.getGuiElem('securityKey').value)")}
${text.get("recovery_fidokey_auth.instruction2").replaceAll(
"!!!SECURITY_KEY_NAME!!!", "$utils.escapeHtmlAttribute($gui.getGuiElem('securityKey').value)")}
</p>
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
<div style="display: none"
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("fido2_auth.cancel.fido")
$text.get("fido2_auth.cancel.fido")
</p>
</div>
@ -42,21 +41,21 @@
<span class="font-header text-h6 bg-royal-light-blue dark:bg-blueish-black w-12 h-12 flex flex-none items-center justify-center rounded-full
text-space-blue dark:text-white leading-none">1</span>
<p class="font-body-semi text-body-l text-space-blue dark:text-white ml-4">$text.get(
"recovery_fidokey_auth.fidoInstruction")</p>
"recovery_fidokey_auth.fidoInstruction")</p>
</div>
<div class="flex mb-2 items-center">
<span class="font-header text-h6 bg-royal-light-blue dark:bg-blueish-black w-12 h-12 flex flex-none items-center justify-center rounded-full
text-space-blue dark:text-white leading-none">2</span>
<p class="font-body-semi text-body-l text-space-blue dark:text-white ml-4">$text.get(
"fido2_auth.instruction2")</p>
"fido2_auth.instruction2")</p>
</div>
<div class="flex mb-2 items-center">
<span class="font-header text-h6 bg-royal-light-blue dark:bg-blueish-black w-12 h-12 flex flex-none items-center justify-center rounded-full
text-space-blue dark:text-white leading-none">3</span>
<p class="font-body-semi text-body-l text-space-blue dark:text-white ml-4">$text.get(
"fido2_auth.instruction3")</p>
"fido2_auth.instruction3")</p>
</div>
</div>

View File

@ -2,6 +2,11 @@
<agov-backdrop></agov-backdrop>
<div id="mainContent" class="container mx-auto sm:mt-32 sm:max-w-full flex flex-auto sm:block">
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-30">
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
<img src="${login.appDataPath}/static/images/spinner-dark.svg" class="animate-spin hidden dark:block">
</span>
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-96 -left-4 -right-4 z-20"></div>
<div class="flex flex-col-reverse sm:flex-row justify-evenly items-center gap-5 w-full">
<div class="flex flex-col sm:bg-white sm:dark:bg-surface-black rounded-[20px] sm:px-10 sm:py-10 max-w-[550px] w-full
basis-full md:basis-1/2">
@ -13,43 +18,43 @@
<div class="info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
<i class="fa-regular fa-info-circle rounded-full p-3 text-info dark:text-dark-info bg-info/10 dark:bg-dark-info-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("recovery_intro_email.banner.info")
$text.get("recovery_intro_email.banner.info")
</p>
</div>
#set($error = $gui.getGuiElem("lasterror"))
#if (($error.value && $error.value != ""))
#set($error = $gui.getGuiElem("lasterror"))
#if (($error.value && $error.value != ""))
<div class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("recovery_intro_email.banner.error")
$text.get("recovery_intro_email.banner.error")
</p>
</div>
#end
#end
<div id="captchaNotFilled" style="display: none"
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
<div id="captchaNotFilled"
class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("recovery_intro_email.captchaUnchecked")
$text.get("recovery_intro_email.captchaUnchecked")
</p>
</div>
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
accept-charset="UTF-8"
class="mt-4 flex flex-col flex-auto block ">
#set ($emailInput = $gui.getGuiElem('email'))
#set ($emailInput = $gui.getGuiElem('email'))
<agov-input
data-label="$text.get("general.email.address")"
data-placeholder="$text.get("general.email")"
data-id="email"
data-name="email"
#if ($emailInput && $emailInput.value && $emailInput.value.length() > 0)
#if ($emailInput && $emailInput.value && $emailInput.value.length() > 0)
data-value="$utils.escapeHtmlAttribute($emailInput.value)"
#else
#else
data-value=""
#end
#end
data-type="text"
data-autofocus="true"
data-left_icon="fa-envelope"
@ -60,16 +65,16 @@
<p class="font-body text-body-l text-space-blue dark:text-white mb-2 sm:mb-8">
<span class="font-body-semi">$text.get("recovery_intro_email.important")</span>
$text.get("recovery_intro_email.process")
$text.get("recovery_intro_email.process")
</p>
#if ($utils.escapeHtmlAttribute($gui.getGuiElem("X-ReCAPTCHA-Integration").value) == "INVISIBLE")
#set ($isCaptchaVisible = true)
#else
#set ($isCaptchaVisible = false)
#end
#if ($utils.escapeHtmlAttribute($gui.getGuiElem("X-ReCAPTCHA-Integration").value) == "INVISIBLE")
#set ($isCaptchaVisible = true)
#else
#set ($isCaptchaVisible = false)
#end
#if ($isCaptchaVisible)
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaInvisibleSiteKey"))
#if ($isCaptchaVisible)
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaInvisibleSiteKey"))
<input type="hidden" name="recaptcha_sitekey" value="$captcha.value"/>
<input type="hidden" name="recaptcha_response" value="captcha">
<script src="https://www.google.com/recaptcha/enterprise.js?render=$captcha.value"></script>
@ -99,8 +104,8 @@
btn.click()
}
</script>
#else
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaVisibleSiteKey"))
#else
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaVisibleSiteKey"))
<input type="hidden" name="recaptcha_sitekey" value="$captcha.value"/>
<input type="hidden" name="recaptcha_response" value="captcha">
<script src="https://www.google.com/recaptcha/enterprise.js?onload=onloadCallback&render=explicit" async
@ -124,22 +129,22 @@
});
};
</script>
#end
#end
<div class="font-body text-body-l mb-4">
#if ($isCaptchaVisible)
#if ($isCaptchaVisible)
<div class="text-disabled-grey dark:text-silver">
$text.get("recovery_intro_email.siteProtectedWithRecaptcha")
$text.get("recovery_intro_email.siteProtectedWithRecaptcha")
</div>
#else
#else
<div class="flex mt-8" id="captchaRender"></div>
#end
#end
</div>
<div class="w-full sm:static mt-auto mb-6 sm:mb-0">
<div class="flex flex-col sm:flex-row-reverse gap-4">
#if ($isCaptchaVisible)
#if ($isCaptchaVisible)
<agov-button
class="block basis-full"
data-name="continue"
@ -150,7 +155,7 @@
data-fullwidth="true"
onclick="return emailCaptcha(event)">
</agov-button>
#else
#else
<agov-button
class="block basis-full"
data-name="continue"
@ -161,7 +166,7 @@
data-fullwidth="true"
onclick="validateEmail.validateForm(event, true)">
</agov-button>
#end
#end
<agov-button
class="block basis-full"
data-style="secondary"

View File

@ -2,6 +2,11 @@
<agov-backdrop></agov-backdrop>
<div id="mainContent" class="container mx-auto sm:mt-32 sm:max-w-full flex flex-auto sm:block">
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-30">
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
<img src="${login.appDataPath}/static/images/spinner-dark.svg" class="animate-spin hidden dark:block">
</span>
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-96 -left-4 -right-4 z-20"></div>
<div class="flex flex-col-reverse sm:flex-row justify-evenly items-center gap-5 w-full">
<div class="flex flex-col sm:bg-white sm:dark:bg-surface-black rounded-[20px] sm:px-10 sm:py-10 max-w-[550px] w-full
basis-full md:basis-1/2">
@ -14,12 +19,12 @@
<i class="fa-regular fa-check-circle rounded-full p-3 text-success dark:text-dark-success bg-success/10 dark:bg-dark-success-icon mr-4 text-xl leading-none"></i>
<div>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("recovery_intro_email_sent.banner.success")
$text.get("recovery_intro_email_sent.banner.success")
</p>
</div>
</div>
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
accept-charset="UTF-8"
class="flex flex-col flex-auto block ">

View File

@ -2,31 +2,35 @@
<agov-backdrop></agov-backdrop>
<div id="mainContent" class="container mx-auto sm:mt-32 sm:max-w-full flex flex-auto sm:block">
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-30">
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
<img src="${login.appDataPath}/static/images/spinner-dark.svg" class="animate-spin hidden dark:block">
</span>
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-96 -left-4 -right-4 z-20"></div>
<div class="flex flex-col-reverse sm:flex-row justify-evenly items-center gap-5 w-full">
<div class="flex flex-col sm:bg-white sm:dark:bg-surface-black rounded-[20px] sm:px-10 sm:py-10 max-w-[550px] w-full
basis-full md:basis-1/2">
<div class="flex mb-6 items-baseline">
<h3 class="font-header text-h3 text-space-blue dark:text-white mr-3">$text.get("general.login")</h3>
<h4 class="font-header text-h4 text-disabled-grey dark:text-silver">$text.get("general.securityKey")</h4>
</div>
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
accept-charset="UTF-8"
class="flex flex-col flex-auto block ">
#set ($emailInput = $gui.getGuiElem('email'))
#set ($emailInput = $gui.getGuiElem('email'))
<agov-input
class="mb-4 sm:mb-40"
data-label="$text.get("general.email.address")"
data-placeholder="$text.get("general.email")"
data-id="email"
data-name="userInputValue_prompt.email"
#if ($emailInput && $emailInput.value && $emailInput.value.length() > 0)
#if ($emailInput && $emailInput.value && $emailInput.value.length() > 0)
data-value="$utils.escapeHtmlAttribute($emailInput.value)"
#else
#else
data-value=""
#end
#end
data-type="text"
data-autofocus="true"
data-left_icon="fa-envelope"
@ -35,14 +39,14 @@
data-email_required="$text.get("user_input.invalid.email.required")">
</agov-input>
#if ($gui.getGuiElem("X-ReCAPTCHA-Integration").value == "INVISIBLE")
#set ($isCaptchaVisible = true)
#else
#set ($isCaptchaVisible = false)
#end
#if ($gui.getGuiElem("X-ReCAPTCHA-Integration").value == "INVISIBLE")
#set ($isCaptchaVisible = true)
#else
#set ($isCaptchaVisible = false)
#end
#if ($isCaptchaVisible)
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaInvisibleSiteKey"))
#if ($isCaptchaVisible)
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaInvisibleSiteKey"))
<input type="hidden" name="recaptcha_sitekey" value="$captcha.value"/>
<input type="hidden" name="recaptcha_response" value="captcha">
<script src="https://www.google.com/recaptcha/enterprise.js?render=$captcha.value"></script>
@ -72,8 +76,8 @@
btn.click()
}
</script>
#else
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaVisibleSiteKey"))
#else
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaVisibleSiteKey"))
<input type="hidden" name="recaptcha_sitekey" value="$captcha.value"/>
<input type="hidden" name="recaptcha_response" value="captcha">
<script src="https://www.google.com/recaptcha/enterprise.js?onload=onloadCallback&render=explicit" async
@ -97,22 +101,22 @@
});
};
</script>
#end
#end
<div class="font-body text-body-l mb-4">
#if ($isCaptchaVisible)
#if ($isCaptchaVisible)
<div class="text-disabled-grey dark:text-silver">
$text.get("recovery_intro_email.siteProtectedWithRecaptcha")
$text.get("recovery_intro_email.siteProtectedWithRecaptcha")
</div>
#else
#else
<div class="flex mt-8" id="captchaRender"></div>
#end
#end
</div>
<div class="w-full sm:static mt-auto mb-6 sm:mb-0">
<div class="flex flex-col sm:flex-row-reverse gap-4">
#if ($isCaptchaVisible)
#if ($isCaptchaVisible)
<agov-button
class="block basis-full"
data-name="submit"
@ -123,7 +127,7 @@
data-fullwidth="true"
onclick="return emailCaptcha(event)">
</agov-button>
#else
#else
<agov-button
class="block basis-full"
data-name="submit"
@ -134,7 +138,7 @@
data-fullwidth="true"
onclick="validateEmail.validateForm(event)">
</agov-button>
#end
#end
<agov-button
class="block basis-full"
data-style="secondary"

View File

@ -135,10 +135,10 @@ prompt.newpassword=Nuova Password
prompt.newpassword.confirm=Conferma password
prompt.password=Password
prompt.userid=Nome utente
pwreset.done.info=La password &egrave; stata modificata con successo. Fare clic su continua per accedere.
pwreset.done.info=Your password was successfully changed. Please click on continue to log in.
pwreset.email.sent=Se il vostro ID utente esiste, vi è stata inviata un'e-mail per reimpostare la password.
pwreset.info.linktext=Password dimenticata
pwreset.noticket=Il biglietto per la reimpostazione della password non &egrave; pi&ugrave; valido. Si prega di generarne uno nuovo.
pwreset.info.linktext=Password forgotten
pwreset.noticket=Your password reset ticket is no longer valid. Please generate a new one.
recovery_accessapp_auth.accessAppRegistered=App di accesso AGOV gi&agrave; registrata
recovery_accessapp_auth.instruction1=Ha gi&agrave; registrato una nuova app di accesso AGOV !!!SECURITY_KEY_NAME!!! come parte del processo di recupero.
recovery_accessapp_auth.instruction2=Si prega di usare !!!ACCESS_APP_NAME!!! per l'identificazione.
@ -204,7 +204,7 @@ recovery_start_info.title=Il processo di ripristino sta per iniziare.
title=NEVIS SSO Portal
title.login=Login
title.pwchange.label=Cambiare Password
title.pwreset=Password Dimenticata
title.pwreset=Password Forgotten
user_input.invalid.email=Inserire un'e-mail valida.
user_input.invalid.email.required=Campo obbligatorio
user_input.invalid.email.tooLong=Il testo inserito &egrave; troppo lungo.

View File

@ -28,25 +28,20 @@ spec:
management:
httpGet:
path: "/liveness"
periodSeconds: 5
initialDelaySeconds: 40
periodSeconds: 30
timeoutSeconds: 6
readinessProbe:
management:
httpGet:
path: "/readiness"
periodSeconds: 5
initialDelaySeconds: 40
periodSeconds: 30
timeoutSeconds: 6
startupProbe:
management:
httpGet:
path: "/readiness"
periodSeconds: 5
timeoutSeconds: 6
failureThreshold: 50
podDisruptionBudget:
maxUnavailable: "50%"
git:
tag: "r-90c0ddd9c0c4d9011252ef186298ca61c939e952"
tag: "r-5560b9df58bc00fcf3fc92f29f5f7840af9dbf26"
dir: "DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/proxy-idp"
credentials: "git-credentials"
keystores:

View File

@ -8,7 +8,7 @@
<!-- source: pattern://0ceb05c56644a59d648c13b9 -->
<Timer periodicity="60"/>
<!-- source: pattern://0ceb05c56644a59d648c13b9 -->
<Server User="nevis" Group="root" ServerName="proxy-idp" Timeout="30" MaxClients="600" MaxRequestsPerChild="0" KeepAlive="on" KeepAliveTimeout="5" MaxKeepAliveRequests="100" LimitRequestLine="5120" LimitRequestBody="512000" LimitRequestFields="50" LimitRequestFieldsize="5120" ServerRoot="/var/opt/nevisproxy/default" CoreDumpDirectory="" ErrorLog="&quot;|/bin/sed -u s/^/[apache.log]\ /g&quot;" LogLevel="notice" TransferLog="&quot;|/bin/stdbuf -oL /bin/egrep -v GET./.....?ness&quot;" LogFormat="&quot;[access.log] %h %l %u %t \&quot;%r\&quot; %&gt;s %b %{content-length}i %T %v \&quot;%{Referer}i\&quot; \&quot;%{User-Agent}i\&quot; trID=%{UNIQUE_ID}e&quot;" SSLPassPhraseDialog="builtin" SSLSessionCache="shmcb:/var/opt/nevisproxy/default/run/apache_shmcb"/>
<Server User="nevis" Group="root" ServerAdmin="admin@company.com" ServerName="proxy-idp" Timeout="30" MaxClients="600" MaxRequestsPerChild="0" KeepAlive="on" KeepAliveTimeout="5" MaxKeepAliveRequests="100" LimitRequestLine="5120" LimitRequestBody="512000" LimitRequestFields="50" LimitRequestFieldsize="5120" ServerRoot="/var/opt/nevisproxy/default" CoreDumpDirectory="" ErrorLog="&quot;|/bin/sed -u s/^/[apache.log]\ /g&quot;" Loglevel="notice" TransferLog="&quot;|/bin/stdbuf -oL /bin/egrep -v GET./.....?ness&quot;" LogFormat="&quot;[access.log] %h %l %u %t \&quot;%r\&quot; %&gt;s %b %{content-length}i %T %v \&quot;%{Referer}i\&quot; \&quot;%{User-Agent}i\&quot; trID=%{UNIQUE_ID}e&quot;" SSLPassPhraseDialog="builtin" SSLSessionCache="shmcb:/var/opt/nevisproxy/default/run/apache_shmcb"/>
<!-- source: pattern://0ceb05c56644a59d648c13b9 -->
<Connector port="11080" name="management" listen="0.0.0.0:11080"/>
<!-- source: pattern://1f0702aaabef60a615abf41f -->

View File

@ -61,7 +61,7 @@
<!-- source: pattern://4fcfadb4a5c946ead7e6e995 -->
<init-param>
<param-name>RenewIdentification</param-name>
<param-value>none</param-value>
<param-value>false</param-value>
</init-param>
<!-- source: pattern://4fcfadb4a5c946ead7e6e995 -->
<init-param>
@ -463,7 +463,7 @@
trace = request:getTracer()
if request:getHeader("Origin") then
if not response:getHeader("Access-Control-Allow-Origin") then
domains = {"trustbroker.agov-w.azure.adnovum.net", "trustbroker.agov-d.azure.adnovum.net", "auth.agov-w.azure.adnovum.net"}
domains = {"trustbroker.agov-d.azure.adnovum.net", "auth.agov-w.azure.adnovum.net"}
for k, v in pairs(domains) do
trace:info("Accepted domains="..v)
end
@ -652,8 +652,8 @@
</init-param>
<!-- source: pattern://cb8c63274fe346280de0ffd5 -->
<init-param>
<param-name>StoreInterceptedRequest</param-name>
<param-value>false</param-value>
<param-name>StateKey</param-name>
<param-value>Auth_Realm_Mobile_FIDO_UAF</param-value>
</init-param>
</filter>
<!-- source: pattern://06aeae2d799e492f5580d03b -->
@ -692,8 +692,8 @@
</init-param>
<!-- source: pattern://06aeae2d799e492f5580d03b -->
<init-param>
<param-name>StoreInterceptedRequest</param-name>
<param-value>false</param-value>
<param-name>StateKey</param-name>
<param-value>NotUsed_Auth_Realm</param-value>
</init-param>
</filter>
<!-- source: pattern://0d3511bed6798a78cc3237f6 -->
@ -1142,7 +1142,7 @@
<!-- source: pattern://cdbb957d49fdc6695a978265#backends -->
<init-param>
<param-name>InetAddress</param-name>
<param-value>connect-application-billing.adn-agov-connect-01-uat:8082</param-value>
<param-value>connect-application-billing.adn-agov-connect-01-dev:8082</param-value>
</init-param>
<!-- source: pattern://cdbb957d49fdc6695a978265#backends -->
<init-param>

View File

@ -1,7 +1,7 @@
<!DOCTYPE html>
<!-- If you change something here, make sure all the pages are modified accordingly -->
<!-- svh -> Small View Height. It's not taking the height of the search bar on mobile into account -->
<html class="relative min-h-screen h-full mx-4 flex sm:block" lang="$login.language" style="min-height: 100svh">
<html class="relative h-full mx-4 flex sm:block min-h-100" lang="$login.language">
<head>
<title>AGOV</title>
<meta charset="UTF-8">

View File

@ -1,7 +1,7 @@
<!DOCTYPE html>
<!-- If you change something here, make sure all the pages are modified accordingly -->
<!-- svh -> Small View Height. It's not taking the height of the search bar on mobile into account -->
<html class="relative min-h-screen h-full mx-4 flex sm:block" lang="$login.language" style="min-height: 100svh">
<html class="relative min-h-100 h-full mx-4 flex sm:block" lang="$login.language">
<head>
<title>AGOV</title>
<meta charset="UTF-8">

View File

@ -1,7 +1,7 @@
<!DOCTYPE html>
<!-- If you change something here, make sure all the pages are modified accordingly -->
<!-- svh -> Small View Height. It's not taking the height of the search bar on mobile into account -->
<html class="relative min-h-screen h-full mx-4 flex sm:block" lang="$login.language" style="min-height: 100svh">
<html class="relative min-h-100 h-full mx-4 flex sm:block" lang="$login.language">
<head>
<title>AGOV</title>
<meta charset="UTF-8">

View File

@ -1,7 +1,7 @@
<!DOCTYPE html>
<!-- If you change something here, make sure all the pages are modified accordingly -->
<!-- svh -> Small View Height. It's not taking the height of the search bar on mobile into account -->
<html class="relative min-h-screen h-full mx-4 flex sm:block" lang="$login.language" style="min-height: 100svh">
<html class="relative min-h-100 h-full mx-4 flex sm:block" lang="$login.language">
<head>
<title>AGOV</title>
<meta charset="UTF-8">

View File

@ -1,7 +1,7 @@
<!DOCTYPE html>
<!-- If you change something here, make sure all the pages are modified accordingly -->
<!-- svh -> Small View Height. It's not taking the height of the search bar on mobile into account -->
<html class="relative min-h-screen h-full mx-4 flex sm:block" lang="$login.language" style="min-height: 100svh">
<html class="relative min-h-100 h-full mx-4 flex sm:block" lang="$login.language">
<head>
<title>AGOV Operations</title>
<meta charset="UTF-8">

View File

@ -1,7 +1,7 @@
<!DOCTYPE html>
<!-- If you change something here, make sure all the pages are modified accordingly -->
<!-- svh -> Small View Height. It's not taking the height of the search bar on mobile into account -->
<html class="relative min-h-screen h-full mx-4 flex sm:block" lang="$login.language" style="min-height: 100svh">
<html class="relative min-h-100 h-full mx-4 flex sm:block" lang="$login.language">
<head>
<title>AGOV</title>
<meta charset="UTF-8">

View File

@ -1,7 +1,7 @@
<!DOCTYPE html>
<!-- If you change something here, make sure all the pages are modified accordingly -->
<!-- svh -> Small View Height. It's not taking the height of the search bar on mobile into account -->
<html class="relative min-h-screen h-full mx-4 flex sm:block" lang="$login.language" style="min-height: 100svh">
<html class="relative min-h-100 h-full mx-4 flex sm:block" lang="$login.language">
<head>
<title>AGOV</title>
<meta charset="UTF-8">