From 46e6543ba4b42e716ee960c643060ffa6f52ae4f Mon Sep 17 00:00:00 2001 From: aca Date: Tue, 25 Feb 2025 14:47:41 +0000 Subject: [PATCH] new configuration version --- ...evisauth-sts-4bad2fe3ccc54716cc87138f.yaml | 4 +- .../opt/keys/trust/idp-pem-atb/truststore.jks | Bin 1119 -> 1119 bytes .../opt/keys/trust/idp-pem-atb/truststore.p12 | Bin 1430 -> 1430 bytes .../var/opt/nevisauth/default/conf/env.conf | 3 +- .../opt/nevisauth/default/conf/logging.yml | 2 + .../opt/nevisauth/default/conf/nevisauth.yml | 1 + ...8s-nevisauth-7022472ae407577ae604bbb8.yaml | 4 +- .../var/opt/keys/own/idp-pem-signer/key.pem | 104 +++++----- .../opt/keys/own/idp-pem-signer/keystore.pem | 104 +++++----- .../opt/keys/trust/idp-pem-atb/truststore.jks | Bin 1119 -> 1119 bytes .../opt/keys/trust/idp-pem-atb/truststore.p12 | Bin 1430 -> 1430 bytes .../var/opt/nevisauth/default/conf/env.conf | 3 +- .../opt/nevisauth/default/conf/logging.yml | 2 + .../opt/nevisauth/default/conf/nevisauth.yml | 1 + ...uaf-instance-ca92034f995b39fde562293c.yaml | 6 +- ...uaf-database-9385d1b33aefe975fb1c5914.yaml | 2 +- .../var/opt/nevisfido/default/conf/env.conf | 2 +- .../opt/nevisfido/default/conf/logging.yml | 2 + .../default/conf/metadata/metadata.json | 100 +++++++--- .../opt/nevisfido/default/conf/nevisfido.yml | 180 +++++++++--------- ...signer-trust-087f275433f3973a1421318f.yaml | 12 -- ...s-nevisfido2-087f275433f3973a1421318f.yaml | 5 +- .../var/opt/nevisfido/default/conf/env.conf | 2 +- .../opt/nevisfido/default/conf/logging.yml | 2 + .../opt/nevisfido/default/conf/nevisfido.yml | 75 ++++---- ...k8s-nevisidm-b8a36646f81c3247cdb5d90b.yaml | 12 +- .../var/opt/nevisidm/default/conf/env.conf | 2 +- .../var/opt/nevisidm/default/conf/logging.yml | 2 + ...nevislogrend-097929211988398a87bcbb0c.yaml | 4 +- .../opt/nevislogrend/default/conf/env.conf | 2 +- .../opt/nevislogrend/default/conf/logging.yml | 4 +- .../webdata/resources/mauth_link_qr.js | 51 +++-- .../webdata/resources/mauth_onboard.js | 48 +++-- .../webdata/resources/mauth_push_qr.js | 53 ++++-- .../webdata/resources/mauth_usernameless.js | 58 ++++-- .../webdata/resources/mauth_link_qr.js | 51 +++-- .../webdata/resources/mauth_onboard.js | 48 +++-- .../webdata/resources/mauth_push_qr.js | 53 ++++-- .../webdata/resources/mauth_usernameless.js | 58 ++++-- .../webdata/resources/mauth_link_qr.js | 51 +++-- .../webdata/resources/mauth_onboard.js | 48 +++-- .../webdata/resources/mauth_push_qr.js | 53 ++++-- .../webdata/resources/mauth_usernameless.js | 58 ++++-- .../webdata/resources/mauth_link_qr.js | 51 +++-- .../webdata/resources/mauth_onboard.js | 48 +++-- .../webdata/resources/mauth_push_qr.js | 53 ++++-- .../webdata/resources/mauth_usernameless.js | 58 ++++-- ...visproxy-idp-0ceb05c56644a59d648c13b9.yaml | 4 +- .../nevisproxy/default/conf/log.properties | 50 ++--- .../WEB-INF/web.xml | 4 +- 50 files changed, 959 insertions(+), 581 deletions(-) delete mode 100644 DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido2/etc/nevis/k8s-fido2-default-signer-trust-087f275433f3973a1421318f.yaml diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth-sts/etc/nevis/k8s-nevisauth-sts-4bad2fe3ccc54716cc87138f.yaml b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth-sts/etc/nevis/k8s-nevisauth-sts-4bad2fe3ccc54716cc87138f.yaml index b904608..2988e0a 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth-sts/etc/nevis/k8s-nevisauth-sts-4bad2fe3ccc54716cc87138f.yaml +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth-sts/etc/nevis/k8s-nevisauth-sts-4bad2fe3ccc54716cc87138f.yaml @@ -11,7 +11,7 @@ metadata: spec: type: "NevisAuth" replicas: 1 - version: "8.2405.2" + version: "8.2411.2" gitInitVersion: "1.3.0" runAsNonRoot: true ports: @@ -45,7 +45,7 @@ spec: podDisruptionBudget: maxUnavailable: "50%" git: - tag: "r-6c62b8946330d7c4f2ed7d6bb4e18322c0a85ad9" + tag: "r-b0ee5bf8f21b6deb852634ece4565dee10c29032" dir: "DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth-sts" credentials: "git-credentials" keystores: diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth-sts/var/opt/keys/trust/idp-pem-atb/truststore.jks b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth-sts/var/opt/keys/trust/idp-pem-atb/truststore.jks index 6d6abc43338967025eab960b47afaa6ef6916797..af8f24efece8f427270f4d9548ff18e944f35027 100644 GIT binary patch delta 37 tcmcc5ai3#?JnK~3>>u14Rn%ET+_|oQ|K`bmX{Xk9jk5h#8^qY delta 37 tcmcc5ai3#?JnO{FuSd%_s;IMwY|U0pHvg4i-h1roCCw;l10l2XCIBlM4@Cd~ diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth-sts/var/opt/keys/trust/idp-pem-atb/truststore.p12 b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth-sts/var/opt/keys/trust/idp-pem-atb/truststore.p12 index 8785ce92b400848d3a5f294f9554f2db58c612d8..c943407125a8b1b10de9b4a9b4694f1f5b4833d3 100644 GIT binary patch delta 1307 zcmV+$1?2jc3ziFzYZNPJx`r(vVl-Vn53v<4tl~^kL8_5|B!B#Ce{PKE+JD{K4xEF4 z@_B%Q1duF~qf2sum%)_=20wXUY7)eH1CUAN%qoa#AT-ooX~Q!cU~z3@>W=zCHOdCC z)>uEpR^NxZ895*+?)bqmdumt9V0_C72F&8!5oB>6P%pjjr|ZA~zM)|A+M6a_h=w1e zdBXF`=V`v&x_|B1&~pCC1uboUdE~JDG#;f)l2_r#6(_>`+A1|CJR8Hy65ZZ>WB+)R ztem7+(FhFs{w;$$zvmqFDYzK{6#Aiym?1u!=Q?#GJ_PmHweQVUv$TF=lvTU{2D0@4Rn^l1>WvcbgsA zd#f@q@%+z$p?2(EJ)0!+5V5aYlQ85FTgOHrYo_Hd6M7o@*sk*43nx4QosI?SmHsCL z5D11D3x5bj{t|_ItQzA-46)r|;Z(C%pRx<6=o6zZO#KUR3-k{#m$5e=T=ITM)2!hS zN1_M~v5*io4|}QvUTZloND!3xTe}@EvpTF59H3ku!;!L+ce2$Zsqt=56yaj)t}$hG z@)uv^uvmZAhq0mtc^yB?8Wf2tD~pogfkKV-aeqzJS2^~)q$Hw-5H4eFyA`^Wvcs_| z;<+?YtnmXQW=WNU7fLPm#a|E|@O-wO4!s;fVlq0U3@nFElKK0&#n_Kr{;FqqKSIu^ ztL4MZ^*fUSYqulC0r634p3top5;QjEYuAD9j9#n5To-(7iYuB zO5goHVWEJv9 zks#tU+W{8t>3zIApN(aNYPGDJi5E?XbrNQUm977Nml27hK4 zPY^1!x4w>7309m{gzm4}oD}hJYMi!$=akO{F9kJtO~N8$QKyG-t%1InkofPN!tNa; zlIR|3WhEru=eI%8A}wy~LZ%Io3eQubC74dU3Xl*k-JG^7dZAmr2ina*}AZ6F)+aT96UNnpk%uCO%SkGJYY!+!EWw71y(tL@z$!Z_) zB||ott}xQqjoJoUP*%G26r{S~LuTWn_v%PW_q}!eD$Y+0xLb}eO)xPq4F(BdhDZTr z0|WvA1povf><@aHR0;i@^Hxs7*all(wN$Y7$otCMgU`>PhO)?K1QfhGZk5;A5CnOr RjJVy3lA67PY_$RcClDlyf-nF8 delta 1307 zcmV+$1?2jc3ziFzYZQi!M$ey%Dv?IHTwtkYwr`w=%Ds_)B!9ujpdy`3GbCT&awZC_NQm0Pld7Nrx;~-52*&T?A85&Xl9{uie+rx+H_K&VtV4)vqY~I(+!UG zf|U`BQS*#gsEyU!P{G*wQ8LtOmYB#y8v0p@j-;wzH;3!rj9~%LVb0R~M#XIsDjElQ z-$Iq$q$62)rGLpF=DWa{JnC7-1%vhwW)@Z18(*ygtAYnd%4xcE?qp6x3(oc-a>f&J zC@bb(wn{Q!+D^`4xZUZL-cFE5Lx~N1V@3l>pwVx|msE(mI`rQYsJe1DjOzg+n1htYpz`a;eHoyE7edb@+#CzhkxhnRA{y#r(Fky-%(-h;z)q$ zkgi>$=Hb-yEOpF{Q3>EZm6DvU-uFQ~1o52!1zT6U-z&oM;eVT7+!VjJK zG?PdG=U$ZR$_03^XmhZ~Y#C^?6`nG3hB^lAVy+d(yitq(@drM$UE! z`r$zqnSa+8^MEnt@^w>!UNDS|haLx#oiLR5-Mo{V;*fiYw;1D|a@^a(;~T<{Kn3Q)a*%tdO|w~btnl z>whpRwGjjPoYwIUs~-Psb`to(gLtM@jPP(PE?+}&cl*c&lOdVyq zjI+-UevB$cxnMZdoo+jeLzz(MDL~20NPlGX-PWkBk!76XK23)crgb<+cK^5a&IjG+ zxxQ2dfhN~TOCOsCFoCJcYSr=uW$^n_N=|Cu!o@n;ax%7yopcG<|8E5b2ZqAH zer}JspUr;h7DOs8GK}+4&hcjt`J5le73ZcnlgqHlVq|M0^iG7ktkR;^;e;)iYJaKL z1_1YkqS?z7rz&Jy(qwdmUJ+ySC@ti|t{#2$6u}`Z@LvS4n^(}E5KL8oXUjK`u&gl@ zTCpH{n9aUgCvF<+fMrv>ay$XP4|qi&dXxt$BJDwtU7JEW^l!>DsT;=){rpivPU*^1 z4XuX~4@aYiwRH-#O^8|-QNkf>e1A3rp9IO3EE!mu*bbOA8E^WNZw}tEdiG*(Ezj-%f>p8LBksF-oP1OI_V%qJIbf_e2G@X&V9`c(+1q$EI#>5b4G5U_9?Z~EI81Qe5a-HcQEb>xGD RTi@fYBd_yma>@b%ClEp)eO&+m diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth-sts/var/opt/nevisauth/default/conf/env.conf b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth-sts/var/opt/nevisauth/default/conf/env.conf index 755ad38..587c2ce 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth-sts/var/opt/nevisauth/default/conf/env.conf +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth-sts/var/opt/nevisauth/default/conf/env.conf @@ -3,6 +3,7 @@ RTENV_SECURITY_CHECK=no_shell JAVA_OPTS=( "-XX:+UseContainerSupport" "-Dfile.encoding=UTF-8" + "-Dotel.instrumentation.metro.enabled=false" "-XX:MaxRAMPercentage=80.0" "-Djava.net.preferIPv4Stack=true" "-Djava.net.connectionTimeout=10000" @@ -12,7 +13,7 @@ JAVA_OPTS=( "-javaagent:/opt/agent/opentelemetry-javaagent.jar" "-Dotel.javaagent.logging=application" "-Dotel.javaagent.configuration-file=/var/opt/nevisauth/default/conf/otel.properties" - "-Dotel.resource.attributes=service.version=8.2405.2,service.instance.id=$HOSTNAME" + "-Dotel.resource.attributes=service.version=8.2411.2,service.instance.id=$HOSTNAME" "-Djavax.net.ssl.trustStore=/var/opt/keys/trust/auth-sts-default-tls-trust/truststore.p12" "-Djavax.net.ssl.trustStorePassword=\${exec:/var/opt/keys/trust/auth-sts-default-tls-trust/keypass}" ) diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth-sts/var/opt/nevisauth/default/conf/logging.yml b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth-sts/var/opt/nevisauth/default/conf/logging.yml index 4fe1d98..5377081 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth-sts/var/opt/nevisauth/default/conf/logging.yml +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth-sts/var/opt/nevisauth/default/conf/logging.yml @@ -12,6 +12,8 @@ Configuration: onMismatch: "ACCEPT" Loggers: Logger: + - name: "ProductAnalytics" + level: "INFO" - name: "EsAuthStart" level: "INFO" - name: "org.apache.catalina.loader.WebappClassLoader" diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth-sts/var/opt/nevisauth/default/conf/nevisauth.yml b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth-sts/var/opt/nevisauth/default/conf/nevisauth.yml index 44c6e02..36c1c79 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth-sts/var/opt/nevisauth/default/conf/nevisauth.yml +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth-sts/var/opt/nevisauth/default/conf/nevisauth.yml @@ -3,6 +3,7 @@ server: protocol: "https" port: "8991" host: "0.0.0.0" + max-threads: "200" tls: keystore: "/var/opt/keys/own/auth-sts-default-identity/keystore.p12" keystore-passphrase: "${exec:/var/opt/keys/own/auth-sts-default-identity/keypass}" diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/etc/nevis/k8s-nevisauth-7022472ae407577ae604bbb8.yaml b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/etc/nevis/k8s-nevisauth-7022472ae407577ae604bbb8.yaml index ac9e00f..4e8aa3f 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/etc/nevis/k8s-nevisauth-7022472ae407577ae604bbb8.yaml +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/etc/nevis/k8s-nevisauth-7022472ae407577ae604bbb8.yaml @@ -11,7 +11,7 @@ metadata: spec: type: "NevisAuth" replicas: 1 - version: "8.2405.2" + version: "8.2411.1" gitInitVersion: "1.3.0" runAsNonRoot: true ports: @@ -45,7 +45,7 @@ spec: podDisruptionBudget: maxUnavailable: "50%" git: - tag: "r-76635afaaedd25f5d24c9c5946e952dafbf121e4" + tag: "r-b0ee5bf8f21b6deb852634ece4565dee10c29032" dir: "DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth" credentials: "git-credentials" keystores: diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/var/opt/keys/own/idp-pem-signer/key.pem b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/var/opt/keys/own/idp-pem-signer/key.pem index dfd090e..021836d 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/var/opt/keys/own/idp-pem-signer/key.pem +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/var/opt/keys/own/idp-pem-signer/key.pem @@ -1,54 +1,54 @@ -----BEGIN ENCRYPTED PRIVATE KEY----- -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 -----END ENCRYPTED PRIVATE KEY----- diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/var/opt/keys/own/idp-pem-signer/keystore.pem b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/var/opt/keys/own/idp-pem-signer/keystore.pem index 23f64bc..beda8da 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/var/opt/keys/own/idp-pem-signer/keystore.pem +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/var/opt/keys/own/idp-pem-signer/keystore.pem @@ -1,56 +1,56 @@ -----BEGIN ENCRYPTED PRIVATE KEY----- -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 -----END ENCRYPTED PRIVATE KEY----- -----BEGIN CERTIFICATE----- diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/var/opt/keys/trust/idp-pem-atb/truststore.jks b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/var/opt/keys/trust/idp-pem-atb/truststore.jks index 6d6abc43338967025eab960b47afaa6ef6916797..af8f24efece8f427270f4d9548ff18e944f35027 100644 GIT binary patch delta 37 tcmcc5ai3#?JnK~3>>u14Rn%ET+_|oQ|K`bmX{Xk9jk5h#8^qY delta 37 tcmcc5ai3#?JnO{FuSd%_s;IMwY|U0pHvg4i-h1roCCw;l10l2XCIBlM4@Cd~ diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/var/opt/keys/trust/idp-pem-atb/truststore.p12 b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/var/opt/keys/trust/idp-pem-atb/truststore.p12 index 8785ce92b400848d3a5f294f9554f2db58c612d8..c943407125a8b1b10de9b4a9b4694f1f5b4833d3 100644 GIT binary patch delta 1307 zcmV+$1?2jc3ziFzYZNPJx`r(vVl-Vn53v<4tl~^kL8_5|B!B#Ce{PKE+JD{K4xEF4 z@_B%Q1duF~qf2sum%)_=20wXUY7)eH1CUAN%qoa#AT-ooX~Q!cU~z3@>W=zCHOdCC z)>uEpR^NxZ895*+?)bqmdumt9V0_C72F&8!5oB>6P%pjjr|ZA~zM)|A+M6a_h=w1e zdBXF`=V`v&x_|B1&~pCC1uboUdE~JDG#;f)l2_r#6(_>`+A1|CJR8Hy65ZZ>WB+)R ztem7+(FhFs{w;$$zvmqFDYzK{6#Aiym?1u!=Q?#GJ_PmHweQVUv$TF=lvTU{2D0@4Rn^l1>WvcbgsA zd#f@q@%+z$p?2(EJ)0!+5V5aYlQ85FTgOHrYo_Hd6M7o@*sk*43nx4QosI?SmHsCL z5D11D3x5bj{t|_ItQzA-46)r|;Z(C%pRx<6=o6zZO#KUR3-k{#m$5e=T=ITM)2!hS zN1_M~v5*io4|}QvUTZloND!3xTe}@EvpTF59H3ku!;!L+ce2$Zsqt=56yaj)t}$hG z@)uv^uvmZAhq0mtc^yB?8Wf2tD~pogfkKV-aeqzJS2^~)q$Hw-5H4eFyA`^Wvcs_| z;<+?YtnmXQW=WNU7fLPm#a|E|@O-wO4!s;fVlq0U3@nFElKK0&#n_Kr{;FqqKSIu^ ztL4MZ^*fUSYqulC0r634p3top5;QjEYuAD9j9#n5To-(7iYuB zO5goHVWEJv9 zks#tU+W{8t>3zIApN(aNYPGDJi5E?XbrNQUm977Nml27hK4 zPY^1!x4w>7309m{gzm4}oD}hJYMi!$=akO{F9kJtO~N8$QKyG-t%1InkofPN!tNa; zlIR|3WhEru=eI%8A}wy~LZ%Io3eQubC74dU3Xl*k-JG^7dZAmr2ina*}AZ6F)+aT96UNnpk%uCO%SkGJYY!+!EWw71y(tL@z$!Z_) zB||ott}xQqjoJoUP*%G26r{S~LuTWn_v%PW_q}!eD$Y+0xLb}eO)xPq4F(BdhDZTr z0|WvA1povf><@aHR0;i@^Hxs7*all(wN$Y7$otCMgU`>PhO)?K1QfhGZk5;A5CnOr RjJVy3lA67PY_$RcClDlyf-nF8 delta 1307 zcmV+$1?2jc3ziFzYZQi!M$ey%Dv?IHTwtkYwr`w=%Ds_)B!9ujpdy`3GbCT&awZC_NQm0Pld7Nrx;~-52*&T?A85&Xl9{uie+rx+H_K&VtV4)vqY~I(+!UG zf|U`BQS*#gsEyU!P{G*wQ8LtOmYB#y8v0p@j-;wzH;3!rj9~%LVb0R~M#XIsDjElQ z-$Iq$q$62)rGLpF=DWa{JnC7-1%vhwW)@Z18(*ygtAYnd%4xcE?qp6x3(oc-a>f&J zC@bb(wn{Q!+D^`4xZUZL-cFE5Lx~N1V@3l>pwVx|msE(mI`rQYsJe1DjOzg+n1htYpz`a;eHoyE7edb@+#CzhkxhnRA{y#r(Fky-%(-h;z)q$ zkgi>$=Hb-yEOpF{Q3>EZm6DvU-uFQ~1o52!1zT6U-z&oM;eVT7+!VjJK zG?PdG=U$ZR$_03^XmhZ~Y#C^?6`nG3hB^lAVy+d(yitq(@drM$UE! z`r$zqnSa+8^MEnt@^w>!UNDS|haLx#oiLR5-Mo{V;*fiYw;1D|a@^a(;~T<{Kn3Q)a*%tdO|w~btnl z>whpRwGjjPoYwIUs~-Psb`to(gLtM@jPP(PE?+}&cl*c&lOdVyq zjI+-UevB$cxnMZdoo+jeLzz(MDL~20NPlGX-PWkBk!76XK23)crgb<+cK^5a&IjG+ zxxQ2dfhN~TOCOsCFoCJcYSr=uW$^n_N=|Cu!o@n;ax%7yopcG<|8E5b2ZqAH zer}JspUr;h7DOs8GK}+4&hcjt`J5le73ZcnlgqHlVq|M0^iG7ktkR;^;e;)iYJaKL z1_1YkqS?z7rz&Jy(qwdmUJ+ySC@ti|t{#2$6u}`Z@LvS4n^(}E5KL8oXUjK`u&gl@ zTCpH{n9aUgCvF<+fMrv>ay$XP4|qi&dXxt$BJDwtU7JEW^l!>DsT;=){rpivPU*^1 z4XuX~4@aYiwRH-#O^8|-QNkf>e1A3rp9IO3EE!mu*bbOA8E^WNZw}tEdiG*(Ezj-%f>p8LBksF-oP1OI_V%qJIbf_e2G@X&V9`c(+1q$EI#>5b4G5U_9?Z~EI81Qe5a-HcQEb>xGD RTi@fYBd_yma>@b%ClEp)eO&+m diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/var/opt/nevisauth/default/conf/env.conf b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/var/opt/nevisauth/default/conf/env.conf index 5a048d7..0813296 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/var/opt/nevisauth/default/conf/env.conf +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/var/opt/nevisauth/default/conf/env.conf @@ -3,6 +3,7 @@ RTENV_SECURITY_CHECK=no_shell JAVA_OPTS=( "-XX:+UseContainerSupport" "-Dfile.encoding=UTF-8" + "-Dotel.instrumentation.metro.enabled=false" "-XX:MaxRAMPercentage=80.0" "-Djava.net.preferIPv4Stack=true" "-Djava.net.connectionTimeout=10000" @@ -12,7 +13,7 @@ JAVA_OPTS=( "-javaagent:/opt/agent/opentelemetry-javaagent.jar" "-Dotel.javaagent.logging=application" "-Dotel.javaagent.configuration-file=/var/opt/nevisauth/default/conf/otel.properties" - "-Dotel.resource.attributes=service.version=8.2405.2,service.instance.id=$HOSTNAME" + "-Dotel.resource.attributes=service.version=8.2411.1,service.instance.id=$HOSTNAME" "-Djavax.net.ssl.trustStore=/var/opt/keys/trust/auth-default-tls-trust/truststore.p12" "-Djavax.net.ssl.trustStorePassword=\${exec:/var/opt/keys/trust/auth-default-tls-trust/keypass}" ) diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/var/opt/nevisauth/default/conf/logging.yml b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/var/opt/nevisauth/default/conf/logging.yml index 4fe1d98..5377081 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/var/opt/nevisauth/default/conf/logging.yml +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/var/opt/nevisauth/default/conf/logging.yml @@ -12,6 +12,8 @@ Configuration: onMismatch: "ACCEPT" Loggers: Logger: + - name: "ProductAnalytics" + level: "INFO" - name: "EsAuthStart" level: "INFO" - name: "org.apache.catalina.loader.WebappClassLoader" diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/var/opt/nevisauth/default/conf/nevisauth.yml b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/var/opt/nevisauth/default/conf/nevisauth.yml index 03a32b7..9ef2f23 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/var/opt/nevisauth/default/conf/nevisauth.yml +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth/var/opt/nevisauth/default/conf/nevisauth.yml @@ -3,6 +3,7 @@ server: protocol: "https" port: "8991" host: "0.0.0.0" + max-threads: "200" tls: keystore: "/var/opt/keys/own/auth-default-identity/keystore.p12" keystore-passphrase: "${exec:/var/opt/keys/own/auth-default-identity/keypass}" diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf/etc/nevis/k8s-fido-uaf-instance-ca92034f995b39fde562293c.yaml b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf/etc/nevis/k8s-fido-uaf-instance-ca92034f995b39fde562293c.yaml index 7e15cb7..da30d18 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf/etc/nevis/k8s-fido-uaf-instance-ca92034f995b39fde562293c.yaml +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf/etc/nevis/k8s-fido-uaf-instance-ca92034f995b39fde562293c.yaml @@ -11,7 +11,7 @@ metadata: spec: type: "NevisFIDO" replicas: 1 - version: "8.2405.2" + version: "8.2411.1" gitInitVersion: "1.3.0" runAsNonRoot: true ports: @@ -46,12 +46,12 @@ spec: podDisruptionBudget: maxUnavailable: "50%" git: - tag: "r-3a33cc8960643d6afc30bade3f2d225bea96681a" + tag: "r-b0ee5bf8f21b6deb852634ece4565dee10c29032" dir: "DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf" credentials: "git-credentials" database: name: "fido-uaf" - requiredVersion: "8.2405.0" + requiredVersion: "8.2411.1" keystores: - "fido-uaf-default-server-identity" - "fido-uaf-default-client-identity" diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf/etc/nevis/k8s-nevisfido-uaf-database-9385d1b33aefe975fb1c5914.yaml b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf/etc/nevis/k8s-nevisfido-uaf-database-9385d1b33aefe975fb1c5914.yaml index 4c7dc35..7fb38ab 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf/etc/nevis/k8s-nevisfido-uaf-database-9385d1b33aefe975fb1c5914.yaml +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf/etc/nevis/k8s-nevisfido-uaf-database-9385d1b33aefe975fb1c5914.yaml @@ -11,7 +11,7 @@ metadata: spec: type: "NevisFIDO" databaseType: "MariaDB" - version: "8.2405.2" + version: "8.2411.1" url: "mariadb-session-store-service.adn-agov-nevisidm-ob-01-uat" port: 3306 database: "nevisfido_uaf" diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf/var/opt/nevisfido/default/conf/env.conf b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf/var/opt/nevisfido/default/conf/env.conf index 98343ff..7eae299 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf/var/opt/nevisfido/default/conf/env.conf +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf/var/opt/nevisfido/default/conf/env.conf @@ -7,5 +7,5 @@ JAVA_OPTS=( "-javaagent:/opt/agent/opentelemetry-javaagent.jar" "-Dotel.javaagent.logging=application" "-Dotel.javaagent.configuration-file=/var/opt/nevisfido/default/conf/otel.properties" - "-Dotel.resource.attributes=service.version=8.2405.2,service.instance.id=$HOSTNAME" + "-Dotel.resource.attributes=service.version=8.2411.1,service.instance.id=$HOSTNAME" ) \ No newline at end of file diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf/var/opt/nevisfido/default/conf/logging.yml b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf/var/opt/nevisfido/default/conf/logging.yml index 20aafc8..d23b949 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf/var/opt/nevisfido/default/conf/logging.yml +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf/var/opt/nevisfido/default/conf/logging.yml @@ -12,6 +12,8 @@ Configuration: onMismatch: "ACCEPT" Loggers: Logger: + - name: "ProductAnalytics" + level: "INFO" - name: "ch.nevis.auth.fido.application.Application" level: "INFO" - name: "ch.nevis.auth.fido.api.uaf" diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf/var/opt/nevisfido/default/conf/metadata/metadata.json b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf/var/opt/nevisfido/default/conf/metadata/metadata.json index 7a83c28..31bcaaa 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf/var/opt/nevisfido/default/conf/metadata/metadata.json +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf/var/opt/nevisfido/default/conf/metadata/metadata.json @@ -3,8 +3,16 @@ "aaid" : "F1D0#0001", "description" : "Android NEVIS Mobile Authentication PIN Authenticator", "assertionScheme" : "UAFV1TLV", - "attestationRootCertificates" : [], - "attestationTypes" : [ 15880 ], + "attestationRootCertificates" : [ + "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" + ], + "attestationTypes" : [ 15879, 15880 ], "upv" : [ { "major" : 1, "minor" : 1 @@ -13,12 +21,12 @@ "userVerification" : 4 } ] ], "attachmentHint" : 1, - "authenticationAlgorithm" : 9, + "authenticationAlgorithms" : [ 2, 9 ], "authenticatorVersion" : 1, "isSecondFactorOnly" : false, "keyProtection" : 1, "matcherProtection" : 1, - "publicKeyAlgAndEncoding" : 256, + "publicKeyAlgAndEncodings" : [ 257, 259 ], "tcDisplay" : 1, "tcDisplayContentType" : "text/plain" }, @@ -26,8 +34,16 @@ "aaid" : "F1D0#0002", "description" : "Android NEVIS Mobile Authentication Fingerprint Authenticator", "assertionScheme" : "UAFV1TLV", - "attestationRootCertificates" : [], - "attestationTypes" : [ 15880 ], + "attestationRootCertificates" : [ + "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" + ], + "attestationTypes" : [ 15879, 15880 ], "upv" : [ { "major" : 1, "minor" : 1 @@ -36,12 +52,12 @@ "userVerification" : 2 } ] ], "attachmentHint" : 1, - "authenticationAlgorithm" : 9, + "authenticationAlgorithms" : [ 2, 9 ], "authenticatorVersion" : 1, "isSecondFactorOnly" : false, "keyProtection" : 4, "matcherProtection" : 2, - "publicKeyAlgAndEncoding" : 256, + "publicKeyAlgAndEncodings" : [ 257, 259 ], "tcDisplay" : 1, "tcDisplayContentType" : "text/plain" }, @@ -49,8 +65,16 @@ "aaid" : "F1D0#0003", "description" : "Android NEVIS Mobile Authentication Biometric Authenticator", "assertionScheme" : "UAFV1TLV", - "attestationRootCertificates" : [], - "attestationTypes" : [ 15880 ], + "attestationRootCertificates" : [ + "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" + ], + "attestationTypes" : [ 15879, 15880 ], "upv" : [ { "major" : 1, "minor" : 1 @@ -59,12 +83,12 @@ "userVerification" : 346 } ] ], "attachmentHint" : 1, - "authenticationAlgorithm" : 9, + "authenticationAlgorithms" : [ 2, 9 ], "authenticatorVersion" : 1, "isSecondFactorOnly" : false, "keyProtection" : 4, "matcherProtection" : 2, - "publicKeyAlgAndEncoding" : 256, + "publicKeyAlgAndEncodings" : [ 257, 259 ], "tcDisplay" : 1, "tcDisplayContentType" : "text/plain" }, @@ -72,8 +96,16 @@ "aaid" : "F1D0#0004", "description" : "Android NEVIS Mobile Authentication Device Passcode Authenticator", "assertionScheme" : "UAFV1TLV", - "attestationRootCertificates" : [], - "attestationTypes" : [ 15880 ], + "attestationRootCertificates" : [ + "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" + ], + "attestationTypes" : [ 15879, 15880 ], "upv" : [ { "major" : 1, "minor" : 1 @@ -82,12 +114,12 @@ "userVerification" : 132 } ] ], "attachmentHint" : 1, - "authenticationAlgorithm" : 9, + "authenticationAlgorithms" : [ 2, 9 ], "authenticatorVersion" : 1, "isSecondFactorOnly" : false, "keyProtection" : 4, "matcherProtection" : 2, - "publicKeyAlgAndEncoding" : 259, + "publicKeyAlgAndEncodings" : [ 257, 259 ], "tcDisplay" : 1, "tcDisplayContentType" : "text/plain" }, @@ -95,8 +127,16 @@ "aaid" : "F1D0#0005", "description" : "Android NEVIS Mobile Authentication Password Authenticator", "assertionScheme" : "UAFV1TLV", - "attestationRootCertificates" : [], - "attestationTypes" : [ 15880 ], + "attestationRootCertificates" : [ + "MIIFYDCCA0igAwIBAgIJAOj6GWMU0voYMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNVBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMTYwNTI2MTYyODUyWhcNMjYwNTI0MTYyODUyWjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdSSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggjnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGqC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQoVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+OJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/EgsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRiigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+MRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9EaDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5UmAGMCAwEAAaOBpjCBozAdBgNVHQ4EFgQUNmHhAHyIBQlRi0RsR/8aTMnqTxIwHwYDVR0jBBgwFoAUNmHhAHyIBQlRi0RsR/8aTMnqTxIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwQAYDVR0fBDkwNzA1oDOgMYYvaHR0cHM6Ly9hbmRyb2lkLmdvb2dsZWFwaXMuY29tL2F0dGVzdGF0aW9uL2NybC8wDQYJKoZIhvcNAQELBQADggIBACDIw41L3KlXG0aMiS//cqrG+EShHUGo8HNsw30W1kJtjn6UBwRM6jnmiwfBPb8VA91chb2vssAtX2zbTvqBJ9+LBPGCdw/E53Rbf86qhxKaiAHOjpvAy5Y3m00mqC0w/Zwvju1twb4vhLaJ5NkUJYsUS7rmJKHHBnETLi8GFqiEsqTWpG/6ibYCv7rYDBJDcR9W62BW9jfIoBQcxUCUJouMPH25lLNcDc1ssqvC2v7iUgI9LeoM1sNovqPmQUiG9rHli1vXxzCyaMTjwftkJLkf6724DFhuKug2jITV0QkXvaJWF4nUaHOTNA4uJU9WDvZLI1j83A+/xnAJUucIv/zGJ1AMH2boHqF8CY16LpsYgBt6tKxxWH00XcyDCdW2KlBCeqbQPcsFmWyWugxdcekhYsAWyoSf818NUsZdBWBaR/OukXrNLfkQ79IyZohZbvabO/X+MVT3rriAoKc8oE2Uws6DF+60PV7/WIPjNvXySdqspImSN78mflxDqwLqRBYkA3I75qppLGG9rp7UCdRjxMl8ZDBld+7yvHVgt1cVzJx9xnyGCC23UaicMDSXYrB4I4WHXPGjxhZuCuPBLTdOLU8YRvMYdEvYebWHMpvwGCF6bAx3JBpIeOQ1wDB5y0USicV3YgYGmi+NZfhA4URSh77Yd6uuJOJENRaNVTzk", + "MIIFHDCCAwSgAwIBAgIJANUP8luj8tazMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNVBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMTkxMTIyMjAzNzU4WhcNMzQxMTE4MjAzNzU4WjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdSSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggjnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGqC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQoVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+OJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/EgsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRiigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+MRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9EaDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5UmAGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1UdIwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQBOMaBc8oumXb2voc7XCWnuXKhBBK3e2KMGz39t7lA3XXRe2ZLLAkLM5y3J7tURkf5a1SutfdOyXAmeE6SRo83Uh6WszodmMkxK5GM4JGrnt4pBisu5igXEydaW7qq2CdC6DOGjG+mEkN8/TA6p3cnoL/sPyz6evdjLlSeJ8rFBH6xWyIZCbrcpYEJzXaUOEaxxXxgYz5/cTiVKN2M1G2okQBUIYSY6bjEL4aUN5cfo7ogP3UvliEo3Eo0YgwuzR2v0KR6C1cZqZJSTnghIC/vAD32KdNQ+c3N+vl2OTsUVMC1GiWkngNx1OO1+kXW+YTnnTUOtOIswUP/Vqd5SYgAImMAfY8U9/iIgkQj6T2W6FsScy94IN9fFhE1UtzmLoBIuUFsVXJMTz+Jucth+IqoWFua9v1R93/k98p41pjtFX+H8DslVgfP097vju4KDlqN64xV1grw3ZLl4CiOe/A91oeLm2UHOq6wn3esB4r2EIQKb6jTVGu5sYCcdWpXr0AUVqcABPdgL+H7qJguBw09ojm6xNIrw2OocrDKsudk/okr/AwqEyPKw9WnMlQgLIKw1rODG2NvU9oR3GVGdMkUBZutL8VuFkERQGt6vQ2OCw0sV47VMkuYbacK/xyZFiRcrPJPb41zgbQj9XAEyLKCHex0SdDrx+tWUDqG8At2JHA==", + "MIIFHDCCAwSgAwIBAgIJAMNrfES5rhgxMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNVBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMjExMTE3MjMxMDQyWhcNMzYxMTEzMjMxMDQyWjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdSSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggjnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGqC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQoVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+OJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/EgsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRiigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+MRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9EaDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5UmAGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1UdIwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQBTNNZe5cuf8oiq+jV0itTGzWVhSTjOBEk2FQvh11J3o3lna0o7rd8RFHnN00q4hi6TapFhh4qaw/iG6Xg+xOan63niLWIC5GOPFgPeYXM9+nBb3zZzC8ABypYuCusWCmt6Tn3+Pjbz3MTVhRGXuT/TQH4KGFY4PhvzAyXwdjTOCXID+aHud4RLcSySr0Fq/L+R8TWalvM1wJJPhyRjqRCJerGtfBagiALzvhnmY7U1qFcS0NCnKjoO7oFedKdWlZz0YAfu3aGCJd4KHT0MsGiLZez9WP81xYSrKMNEsDK+zK5fVzw6jA7cxmpXcARTnmAuGUeI7VVDhDzKeVOctf3a0qQLwC+d0+xrETZ4r2fRGNw2YEs2W8Qj6oDcfPvq9JySe7pJ6wcHnl5EZ0lwc4xH7Y4Dx9RA1JlfooLMw3tOdJZH0enxPXaydfAD3YifeZpFaUzicHeLzVJLt9dvGB0bHQLE4+EqKFgOZv2EoP686DQqbVS1u+9k0p2xbMA105TBIk7npraa8VM0fnrRKi7wlZKwdH+aNAyhbXRW9xsnODJ+g8eF452zvbiKKngEKirK5LGieoXBX7tZ9D1GNBH2Ob3bKOwwIWdEFle/YF/h6zWgdeoaNGDqVBrLr2+0DtWoiB1aDEjLWl9FmyIUyUm7mD/vFDkzF+wm7cyWpQpCVQ==", + "MIIFHDCCAwSgAwIBAgIJAPHBcqaZ6vUdMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNVBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMjIwMzIwMTgwNzQ4WhcNNDIwMzE1MTgwNzQ4WjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdSSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggjnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGqC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQoVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+OJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/EgsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRiigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+MRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9EaDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5UmAGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1UdIwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQB8cMqTllHc8U+qCrOlg3H7174lmaCsbo/bJ0C17JEgMLb4kvrqsXZs01U3mB/qABg/1t5Pd5AORHARs1hhqGICW/nKMav574f9rZN4PC2ZlufGXb7sIdJpGiO9ctRhiLuYuly10JccUZGEHpHSYM2GtkgYbZba6lsCPYAAP83cyDV+1aOkTf1RCp/lM0PKvmxYN10RYsK631jrleGdcdkxoSK//mSQbgcWnmAEZrzHoF1/0gso1HZgIn0YLzVhLSA/iXCX4QT2h3J5z3znluKG1nv8NQdxei2DIIhASWfu804CA96cQKTTlaae2fweqXjdN1/v2nqOhngNyz1361mFmr4XmaKH/ItTwOe72NI9ZcwS1lVaCvsIkTDCEXdm9rCNPAY10iTunIHFXRh+7KPzlHGewCq/8TOohBRn0/NNfh7uRslOSZ/xKbN9tMBtw37Z8d2vvnXq/YWdsm1+JLVwn6yYD/yacNJBlwpddla8eaVMjsF6nBnIgQOf9zKSe06nSTqvgwUHosgOECZJZ1EuzbH4yswbt02tKtKEFhx+v+OTge/06V+jGsqTWLsfrOCNLuA8H++z+pUENmpqnnHovaI47gC+TNpkgYGkkBT6B/m/U01BuOBBTzhIlMEZq9qkDWuM2cA5kW5V3FJUcfHnw1IdYIg2Wxg7yHcQZemFQg==", + "MIIC8jCCAdqgAwIBAgIGAZFrLh2fMA0GCSqGSIb3DQEBCwUAMDoxDjAMBgNVBAMMBXRlc3R5MQswCQYDVQQGEwJVUzEbMBkGCSqGSIb3DQEJARYMYWJjQGFjbWUuY29tMB4XDTI0MDgxOTE1MDc1MFoXDTI1MDgxOTE1MDc1MFowOjEOMAwGA1UEAwwFdGVzdHkxCzAJBgNVBAYTAlVTMRswGQYJKoZIhvcNAQkBFgxhYmNAYWNtZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDqitlYBzaxbPF389ZT5xkSS9Le1qdIOuc+dLVpBSWP9PEJhVZROgdOHs5f666iAcBedQm73sew3rpl+02J4fSgGmPkIYm1G2vkIrpt0eB9KzSc0AiLZbrPcFZOLHcOLoqVTfoRhnmAksHDC2f8euNKhCyriK8xlJb/xPfAfCn4r58ZGsQPUS7cJL6FLYh7FjrqfYDS10VOrQvGOALrG5NUj1DdqRq0M+klgs+6oJdUZTtY62BKkWh3N+7moNvrqykpv+ydFUJltgezDcb4Br8Nkw/breSPnomRfyHIcAcfATZcOPJlI8pO0zFZDIz8r7ESMnBhAxNaZgsUhR2XbaqbAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAGw5XLY6GeFJMP350+djhcVqAw+E4HZqCJu1BMpYC0qS2D85fFi3gNuV0TnqB52abX1WBDDJK1CA0SPdyo/nX+qQzP6Dba1AVRKpRzdcsDsMDN3eMC08tajHgIIf5tNDv+HGE/MT2br4o5oducmQMOfV1NTJO1xhXYVqbsUnyrq3S6kD9WS8zRl6ruY1rT26eCQ4hTLHPaAiVsoXh5TBRXYCvGlAw7o2d9cmsbySforZ2wgdZwmu43B5eHNnt4NlDxZRyz6iEDP0nT877aB2ffsOKHAkJNuTvF5JSfnVzLmiyfa/7NI1ujfzcpA2UUXoWa7WN0wACiZQot8Zmswonjc=", + "MIIC8jCCAdqgAwIBAgIGAZFrJblQMA0GCSqGSIb3DQEBCwUAMDoxDTALBgNVBAMMBHRlc3QxCzAJBgNVBAYTAkNIMRwwGgYJKoZIhvcNAQkBFg1mYWtlQGFjbWUuY29tMB4XDTI0MDgxOTE0NTg0MFoXDTI1MDgxOTE0NTg0MFowOjENMAsGA1UEAwwEdGVzdDELMAkGA1UEBhMCQ0gxHDAaBgkqhkiG9w0BCQEWDWZha2VAYWNtZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCcWDBNmdq13fYHnhsmLndAW+MfbI6PeU4OenqfbrTtQUxqpyqhP6QccPYKX2SK3JeQo5uuF1jRD/9i9vAXI9NyiMMHSItjt9LjRs7bWnY4lokYGCAcSZooR9fGZX63dBSQo73V7MC8LDFGy5rw6dGDOmh0ktKxFzaT/nav8/Mx8FyG7M9+b5OPIBo2yze5Rd5cdErGJuUYa9No93BBr5tq+JfnmR/gwgCOke97ovhNj+sMu5bt946AxC6t00wNyPNVlJHKi1os0c/pWztTQkoRAx/w0JYKS9Afl0ZnGWQQ5PNLHHecp2GzriBpQAPXq81QTbOh5H7SzvhkaFQ4oxstAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD8GOaeMDqj2mzMmCqR6Cr3ChkbDAkdsBa5lOAikMKs7/tJyaw8iA5yH0nyobC58Jb61IATuxABPUALhP3RiNsUhnQQF/Dh+6CnCTD/2wsZmr8vUvNqyCLom+xkMT6Wayd9LYW4UONARv1qCLVI4RhiAr5kcomwqZnuj2DRF697lbSQDoz3iuKrCyBYSCBhS+k7UXpqpMyB2D6quRuPqh7JNtMjGSeMiNpMXhx5f4kl1YWb8NU93LDwHFR2kwnGmPA3M272VitcJC4dz3itGRKm9EYGd6d5D7kdC6lqpZPSIopChvXDyVrXjQgckvgtSGKscs6AvYgjthJGsR2z3Eao=", + "MIIC8jCCAdqgAwIBAgIGAZFrLh2fMA0GCSqGSIb3DQEBCwUAMDoxDjAMBgNVBAMMBXRlc3R5MQswCQYDVQQGEwJVUzEbMBkGCSqGSIb3DQEJARYMYWJjQGFjbWUuY29tMB4XDTI0MDgxOTE1MDc1MFoXDTI1MDgxOTE1MDc1MFowOjEOMAwGA1UEAwwFdGVzdHkxCzAJBgNVBAYTAlVTMRswGQYJKoZIhvcNAQkBFgxhYmNAYWNtZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDqitlYBzaxbPF389ZT5xkSS9Le1qdIOuc+dLVpBSWP9PEJhVZROgdOHs5f666iAcBedQm73sew3rpl+02J4fSgGmPkIYm1G2vkIrpt0eB9KzSc0AiLZbrPcFZOLHcOLoqVTfoRhnmAksHDC2f8euNKhCyriK8xlJb/xPfAfCn4r58ZGsQPUS7cJL6FLYh7FjrqfYDS10VOrQvGOALrG5NUj1DdqRq0M+klgs+6oJdUZTtY62BKkWh3N+7moNvrqykpv+ydFUJltgezDcb4Br8Nkw/breSPnomRfyHIcAcfATZcOPJlI8pO0zFZDIz8r7ESMnBhAxNaZgsUhR2XbaqbAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAGw5XLY6GeFJMP350+djhcVqAw+E4HZqCJu1BMpYC0qS2D85fFi3gNuV0TnqB52abX1WBDDJK1CA0SPdyo/nX+qQzP6Dba1AVRKpRzdcsDsMDN3eMC08tajHgIIf5tNDv+HGE/MT2br4o5oducmQMOfV1NTJO1xhXYVqbsUnyrq3S6kD9WS8zRl6ruY1rT26eCQ4hTLHPaAiVsoXh5TBRXYCvGlAw7o2d9cmsbySforZ2wgdZwmu43B5eHNnt4NlDxZRyz6iEDP0nT877aB2ffsOKHAkJNuTvF5JSfnVzLmiyfa/7NI1ujfzcpA2UUXoWa7WN0wACiZQot8Zmswonjc=" + ], + "attestationTypes" : [ 15879, 15880 ], "upv" : [ { "major" : 1, "minor" : 1 @@ -105,12 +145,12 @@ "userVerification" : 4 } ] ], "attachmentHint" : 1, - "authenticationAlgorithm" : 9, + "authenticationAlgorithms" : [ 2, 9 ], "authenticatorVersion" : 1, "isSecondFactorOnly" : false, "keyProtection" : 1, "matcherProtection" : 1, - "publicKeyAlgAndEncoding" : 256, + "publicKeyAlgAndEncodings" : [ 257, 259 ], "tcDisplay" : 1, "tcDisplayContentType" : "text/plain" }, @@ -128,12 +168,12 @@ "userVerification" : 4 } ] ], "attachmentHint" : 1, - "authenticationAlgorithm" : 2, + "authenticationAlgorithms" : [ 2 ], "authenticatorVersion" : 1, "isSecondFactorOnly" : false, "keyProtection" : 1, "matcherProtection" : 1, - "publicKeyAlgAndEncoding" : 257, + "publicKeyAlgAndEncodings" : [ 257 ], "tcDisplay" : 1, "tcDisplayContentType" : "text/plain" }, @@ -151,12 +191,12 @@ "userVerification" : 2 } ] ], "attachmentHint" : 1, - "authenticationAlgorithm" : 2, + "authenticationAlgorithms" : [ 2 ], "authenticatorVersion" : 1, "isSecondFactorOnly" : false, "keyProtection" : 6, "matcherProtection" : 2, - "publicKeyAlgAndEncoding" : 257, + "publicKeyAlgAndEncodings" : [ 257 ], "tcDisplay" : 1, "tcDisplayContentType" : "text/plain" }, @@ -174,12 +214,12 @@ "userVerification" : 16 } ] ], "attachmentHint" : 1, - "authenticationAlgorithm" : 2, + "authenticationAlgorithms" : [ 2 ], "authenticatorVersion" : 1, "isSecondFactorOnly" : false, "keyProtection" : 6, "matcherProtection" : 2, - "publicKeyAlgAndEncoding" : 257, + "publicKeyAlgAndEncodings" : [ 257 ], "tcDisplay" : 1, "tcDisplayContentType" : "text/plain" }, @@ -197,12 +237,12 @@ "userVerification" : 4 } ] ], "attachmentHint" : 1, - "authenticationAlgorithm" : 2, + "authenticationAlgorithms" : [ 2 ], "authenticatorVersion" : 1, "isSecondFactorOnly" : false, "keyProtection" : 6, "matcherProtection" : 2, - "publicKeyAlgAndEncoding" : 257, + "publicKeyAlgAndEncodings" : [ 257 ], "tcDisplay" : 1, "tcDisplayContentType" : "text/plain" }, @@ -220,12 +260,12 @@ "userVerification" : 4 } ] ], "attachmentHint" : 1, - "authenticationAlgorithm" : 2, + "authenticationAlgorithms" : [ 2 ], "authenticatorVersion" : 1, "isSecondFactorOnly" : false, "keyProtection" : 1, "matcherProtection" : 1, - "publicKeyAlgAndEncoding" : 257, + "publicKeyAlgAndEncodings" : [ 257 ], "tcDisplay" : 1, "tcDisplayContentType" : "text/plain" }] \ No newline at end of file diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf/var/opt/nevisfido/default/conf/nevisfido.yml b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf/var/opt/nevisfido/default/conf/nevisfido.yml index c759075..19a1150 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf/var/opt/nevisfido/default/conf/nevisfido.yml +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf/var/opt/nevisfido/default/conf/nevisfido.yml @@ -1,116 +1,116 @@ server: port: 9443 - host: 0.0.0.0 - protocol: https + host: "0.0.0.0" + protocol: "https" tls: - keystore: /var/opt/keys/own/fido-uaf-default-server-identity/keystore.p12 - keystore-passphrase: ${exec:/var/opt/keys/own/fido-uaf-default-server-identity/keypass} - keystore-type: pkcs12 - truststore: /var/opt/keys/trust/fido-uaf-fido-uaf-extended-frontent-truststore/truststore.p12 - truststore-passphrase: ${exec:/var/opt/keys/trust/fido-uaf-fido-uaf-extended-frontent-truststore/keypass} - truststore-type: pkcs12 - + keystore: "/var/opt/keys/own/fido-uaf-default-server-identity/keystore.p12" + keystore-type: "pkcs12" + keystore-passphrase: "${exec:/var/opt/keys/own/fido-uaf-default-server-identity/keypass}" + truststore: "/var/opt/keys/trust/fido-uaf-fido-uaf-extended-frontent-truststore/truststore.p12" + truststore-type: "pkcs12" + truststore-passphrase: "${exec:/var/opt/keys/trust/fido-uaf-fido-uaf-extended-frontent-truststore/keypass}" management: server: port: 9089 healthchecks: enabled: true - -credential-repository: - type: nevisidm - rest-url: https://idm:8989/nevisidm - administration-url: https://idm:8989/nevisidm/services/v1_46/AdminService - keystore: /var/opt/keys/own/fido-uaf-default-client-identity/keystore.p12 - keystore-passphrase: ${exec:/var/opt/keys/own/fido-uaf-default-client-identity/keypass} - keystore-type: pkcs12 - truststore: /var/opt/keys/trust/fido-uaf-default-server-trust/truststore.p12 - truststore-passphrase: ${exec:/var/opt/keys/trust/fido-uaf-default-server-trust/keypass} - truststore-type: pkcs12 - admin-service-version: v1_46 - client-id: cfa9c9b9-119f-4dff-9bb8-86d7c0cf2720 - user-attribute: extId - -session-repository: - type: sql - jdbc-url: jdbc:mariadb://mariadb-session-store-service.adn-agov-nevisidm-ob-01-uat:3306/nevisfido_uaf?sslMode=disable&autocommit=true - max-connection-lifetime: 10m - user: ${exec:/var/opt/nevisfido/default/conf/credentials/dbUser} - password: ${exec:/var/opt/nevisfido/default/conf/credentials/dbPassword} - schema-user: - schema-user-password: - automatic-db-schema-setup: false - fido-uaf: enabled: true - app-id: https://auth.agov-w.azure.adnovum.net/nevisfido/uaf/1.1/facets + app-id: "https://auth.agov-w.azure.adnovum.net/nevisfido/uaf/1.1/facets" facets: - - android:apk-key-hash:kb0yJ345nFUmt4nOYK5Li7KvwDDobMKPosY48Uwb0QI - - ios:bundle-id:ch.agov.accessapp.t - - android:apk-key-hash:msmxrDDoIcxmazyIf9aj8uIvRXdH/wX668OQYaYdXpE - - ios:bundle-id:ch.agov.accessapp - - android:apk-key-hash:BFZz7gpBpUUk8rLis19LKpR6ZcIZkdxxFPYOwBSKKQk - - android:apk-key-hash:xoRd0kamp4TSJcvzfWzNoivuNldp+GKI7fjnwX+VEFg - metadata: - path: conf/metadata/metadata.json + - "android:apk-key-hash:kb0yJ345nFUmt4nOYK5Li7KvwDDobMKPosY48Uwb0QI" + - "ios:bundle-id:ch.agov.accessapp.t" + - "android:apk-key-hash:msmxrDDoIcxmazyIf9aj8uIvRXdH/wX668OQYaYdXpE" + - "ios:bundle-id:ch.agov.accessapp" + - "android:apk-key-hash:BFZz7gpBpUUk8rLis19LKpR6ZcIZkdxxFPYOwBSKKQk" + - "android:apk-key-hash:xoRd0kamp4TSJcvzfWzNoivuNldp+GKI7fjnwX+VEFg" policy: - path: conf/policy/ + path: "conf/policy/" timeout: - registration: 600s - authentication: 600s - token-registration: 180s - token-authentication: 180s - token-deregistration: 600s + registration: "300s" + authentication: "300s" + token-registration: "180s" + token-deregistration: "180s" + token-authentication: "180s" + device-request: "300s" transaction-confirmation: max-text-length: 2000 + metadata: + path: "conf/metadata/metadata.json" + idm-connection-type: "soap" + dispatchers: + - type: "firebase-cloud-messaging" + dry-run: false + service-account-json: "inv-res-secret://a78926e06a159811ee15c224-bdd107d2" + registration-redeem-url: "https://auth.agov-w.azure.adnovum.net/nevisfido/token/redeem/registration" + authentication-redeem-url: "https://auth.agov-w.azure.adnovum.net/nevisfido/token/redeem/authentication" + deregistration-redeem-url: "https://auth.agov-w.azure.adnovum.net/nevisfido/token/redeem/deregistration" + - type: "png-qr-code" + registration-redeem-url: "https://auth.agov-w.azure.adnovum.net/nevisfido/token/redeem/registration" + authentication-redeem-url: "https://auth.agov-w.azure.adnovum.net/nevisfido/token/redeem/authentication" + deregistration-redeem-url: "https://auth.agov-w.azure.adnovum.net/nevisfido/token/redeem/deregistration" + - type: "link" + registration-redeem-url: "https://auth.agov-w.azure.adnovum.net/nevisfido/token/redeem/registration" + authentication-redeem-url: "https://auth.agov-w.azure.adnovum.net/nevisfido/token/redeem/authentication" + deregistration-redeem-url: "https://auth.agov-w.azure.adnovum.net/nevisfido/token/redeem/deregistration" + base-url: "ch.agov.access-t://x-callback-url/authenticate" + basic-full-attestation: + android-verification-level: "default" authorization: registration: - type: sectoken - truststore: /var/opt/keys/trust/fido-uaf-internal-idp-auth-signer-trust/truststore.p12 - truststore-passphrase: ${exec:/var/opt/keys/trust/fido-uaf-internal-idp-auth-signer-trust/keypass} - truststore-type: pkcs12 + type: "sectoken" + truststore: "/var/opt/keys/trust/fido-uaf-internal-idp-auth-signer-trust/truststore.p12" + truststore-type: "pkcs12" + truststore-passphrase: "${exec:/var/opt/keys/trust/fido-uaf-internal-idp-auth-signer-trust/keypass}" username-attribute-names: - - loginId - - userid + - "loginId" + - "userid" authentication: - type: none + type: "none" deregistration: - type: sectoken - truststore: /var/opt/keys/trust/fido-uaf-internal-idp-auth-signer-trust/truststore.p12 - truststore-passphrase: ${exec:/var/opt/keys/trust/fido-uaf-internal-idp-auth-signer-trust/keypass} - truststore-type: pkcs12 + type: "sectoken" + truststore: "/var/opt/keys/trust/fido-uaf-internal-idp-auth-signer-trust/truststore.p12" + truststore-type: "pkcs12" + truststore-passphrase: "${exec:/var/opt/keys/trust/fido-uaf-internal-idp-auth-signer-trust/keypass}" username-attribute-names: - - loginId - - userid + - "loginId" + - "userid" create-dispatch-target: - type: sectoken - truststore: /var/opt/keys/trust/fido-uaf-internal-idp-auth-signer-trust/truststore.p12 - truststore-passphrase: ${exec:/var/opt/keys/trust/fido-uaf-internal-idp-auth-signer-trust/keypass} - truststore-type: pkcs12 + type: "sectoken" + truststore: "/var/opt/keys/trust/fido-uaf-internal-idp-auth-signer-trust/truststore.p12" + truststore-type: "pkcs12" + truststore-passphrase: "${exec:/var/opt/keys/trust/fido-uaf-internal-idp-auth-signer-trust/keypass}" username-attribute-names: - - loginId - - userid + - "loginId" + - "userid" query-dispatch-target: - type: none + type: "none" delete-dispatch-target: - type: sectoken - truststore: /var/opt/keys/trust/fido-uaf-internal-idp-auth-signer-trust/truststore.p12 - truststore-passphrase: ${exec:/var/opt/keys/trust/fido-uaf-internal-idp-auth-signer-trust/keypass} - truststore-type: pkcs12 + type: "sectoken" + truststore: "/var/opt/keys/trust/fido-uaf-internal-idp-auth-signer-trust/truststore.p12" + truststore-type: "pkcs12" + truststore-passphrase: "${exec:/var/opt/keys/trust/fido-uaf-internal-idp-auth-signer-trust/keypass}" username-attribute-names: - - userid - dispatchers: - - type: "firebase-cloud-messaging" - dry-run: false - service-account-json: "inv-res-secret://a78926e06a159811ee15c224-bdd107d2" - registration-redeem-url: "https://auth.agov-w.azure.adnovum.net/nevisfido/token/redeem/registration" - authentication-redeem-url: "https://auth.agov-w.azure.adnovum.net/nevisfido/token/redeem/authentication" - deregistration-redeem-url: "https://auth.agov-w.azure.adnovum.net/nevisfido/token/redeem/deregistration" - - type: "png-qr-code" - registration-redeem-url: "https://auth.agov-w.azure.adnovum.net/nevisfido/token/redeem/registration" - authentication-redeem-url: "https://auth.agov-w.azure.adnovum.net/nevisfido/token/redeem/authentication" - deregistration-redeem-url: "https://auth.agov-w.azure.adnovum.net/nevisfido/token/redeem/deregistration" - - type: "link" - registration-redeem-url: "https://auth.agov-w.azure.adnovum.net/nevisfido/token/redeem/registration" - authentication-redeem-url: "https://auth.agov-w.azure.adnovum.net/nevisfido/token/redeem/authentication" - deregistration-redeem-url: "https://auth.agov-w.azure.adnovum.net/nevisfido/token/redeem/deregistration" - base-url: "ch.agov.access-t://x-callback-url/authenticate" \ No newline at end of file + - "userid" +session-repository: + type: "sql" + jdbc-url: "jdbc:mariadb://mariadb-session-store-service.adn-agov-nevisidm-ob-01-uat:3306/nevisfido_uaf?sslMode=disable&autocommit=true" + max-connection-lifetime: "10m" + user: "${exec:/var/opt/nevisfido/default/conf/credentials/dbUser}" + password: "${exec:/var/opt/nevisfido/default/conf/credentials/dbPassword}" + schema-user: "" + schema-user-password: "" + automatic-db-schema-setup: false +credential-repository: + type: "nevisidm" + client-id: "cfa9c9b9-119f-4dff-9bb8-86d7c0cf2720" + user-attribute: "extId" + administration-url: "https://idm:8989/nevisidm/services/v1_46/AdminService" + admin-service-version: "v1_46" + rest-url: "https://idm:8989/nevisidm" + keystore: "/var/opt/keys/own/fido-uaf-default-client-identity/keystore.p12" + keystore-type: "pkcs12" + keystore-passphrase: "${exec:/var/opt/keys/own/fido-uaf-default-client-identity/keypass}" + truststore: "/var/opt/keys/trust/fido-uaf-default-server-trust/truststore.p12" + truststore-type: "pkcs12" + truststore-passphrase: "${exec:/var/opt/keys/trust/fido-uaf-default-server-trust/keypass}" diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido2/etc/nevis/k8s-fido2-default-signer-trust-087f275433f3973a1421318f.yaml b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido2/etc/nevis/k8s-fido2-default-signer-trust-087f275433f3973a1421318f.yaml deleted file mode 100644 index 83e5c5c..0000000 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido2/etc/nevis/k8s-fido2-default-signer-trust-087f275433f3973a1421318f.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: "operator.nevis-security.ch/v1" -kind: "NevisTrustStore" -metadata: - name: "fido2-default-signer-trust" - namespace: "adn-agov-nevisidm-01-uat" - labels: - deploymentTarget: "fido2" - annotations: - projectKey: "DEFAULT-ADN-AGOV-PROJECT" - patternId: "087f275433f3973a1421318f" -spec: - keystores: [] diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido2/etc/nevis/k8s-nevisfido2-087f275433f3973a1421318f.yaml b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido2/etc/nevis/k8s-nevisfido2-087f275433f3973a1421318f.yaml index 9262782..1715a4a 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido2/etc/nevis/k8s-nevisfido2-087f275433f3973a1421318f.yaml +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido2/etc/nevis/k8s-nevisfido2-087f275433f3973a1421318f.yaml @@ -11,7 +11,7 @@ metadata: spec: type: "NevisFIDO" replicas: 1 - version: "8.2405.2" + version: "8.2411.1" gitInitVersion: "1.3.0" runAsNonRoot: true ports: @@ -46,7 +46,7 @@ spec: podDisruptionBudget: maxUnavailable: "50%" git: - tag: "r-2f8a215769d731c34e6278cbfb370e06e976f51f" + tag: "r-b0ee5bf8f21b6deb852634ece4565dee10c29032" dir: "DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido2" credentials: "git-credentials" keystores: @@ -54,7 +54,6 @@ spec: - "fido2-default-client-identity" truststores: - "fido2-default-tls-client-trust" - - "fido2-default-signer-trust" - "fido2-default-server-trust" podSecurity: policy: "baseline" diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido2/var/opt/nevisfido/default/conf/env.conf b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido2/var/opt/nevisfido/default/conf/env.conf index ab08902..57a659e 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido2/var/opt/nevisfido/default/conf/env.conf +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido2/var/opt/nevisfido/default/conf/env.conf @@ -6,5 +6,5 @@ JAVA_OPTS=( "-javaagent:/opt/agent/opentelemetry-javaagent.jar" "-Dotel.javaagent.logging=application" "-Dotel.javaagent.configuration-file=/var/opt/nevisfido/default/conf/otel.properties" - "-Dotel.resource.attributes=service.version=8.2405.2,service.instance.id=$HOSTNAME" + "-Dotel.resource.attributes=service.version=8.2411.1,service.instance.id=$HOSTNAME" ) \ No newline at end of file diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido2/var/opt/nevisfido/default/conf/logging.yml b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido2/var/opt/nevisfido/default/conf/logging.yml index b4c5bce..c7b3947 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido2/var/opt/nevisfido/default/conf/logging.yml +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido2/var/opt/nevisfido/default/conf/logging.yml @@ -12,6 +12,8 @@ Configuration: onMismatch: "ACCEPT" Loggers: Logger: + - name: "ProductAnalytics" + level: "INFO" - name: "ch.nevis.auth.fido.application.Application" level: "INFO" Root: diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido2/var/opt/nevisfido/default/conf/nevisfido.yml b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido2/var/opt/nevisfido/default/conf/nevisfido.yml index d8b1f3c..04fbbb9 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido2/var/opt/nevisfido/default/conf/nevisfido.yml +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido2/var/opt/nevisfido/default/conf/nevisfido.yml @@ -1,51 +1,50 @@ server: port: 9443 - protocol: https + protocol: "https" tls: - keystore: /var/opt/keys/own/fido2-default-identity/keystore.p12 - keystore-passphrase: ${exec:/var/opt/keys/own/fido2-default-identity/keypass} - keystore-type: pkcs12 - + keystore: "/var/opt/keys/own/fido2-default-identity/keystore.p12" + keystore-passphrase: "${exec:/var/opt/keys/own/fido2-default-identity/keypass}" + keystore-type: "pkcs12" + truststore: "/var/opt/keys/trust/fido2-default-tls-client-trust/truststore.p12" + truststore-passphrase: "${exec:/var/opt/keys/trust/fido2-default-tls-client-trust/keypass}" + truststore-type: "pkcs12" management: server: port: 9089 healthchecks: enabled: true - credential-repository: - type: nevisidm - client-id: cfa9c9b9-119f-4dff-9bb8-86d7c0cf2720 - rest-url: https://idm:8989/nevisidm - keystore: /var/opt/keys/own/fido2-default-client-identity/keystore.p12 - keystore-passphrase: ${exec:/var/opt/keys/own/fido2-default-client-identity/keypass} - truststore: /var/opt/keys/trust/fido2-default-server-trust/truststore.p12 - truststore-passphrase: ${exec:/var/opt/keys/trust/fido2-default-server-trust/keypass} - user-attribute: extId - -session-repository: - type: in-memory - jdbc-url: - max-connection-lifetime: - user: - password: - schema-user: - schema-user-password: - automatic-db-schema-setup: true - + type: "nevisidm" + client-id: "cfa9c9b9-119f-4dff-9bb8-86d7c0cf2720" + rest-url: "https://idm:8989/nevisidm" + keystore: "/var/opt/keys/own/fido2-default-client-identity/keystore.p12" + keystore-passphrase: "${exec:/var/opt/keys/own/fido2-default-client-identity/keypass}" + keystore-type: "pkcs12" + truststore: "/var/opt/keys/trust/fido2-default-server-trust/truststore.p12" + truststore-passphrase: "${exec:/var/opt/keys/trust/fido2-default-server-trust/keypass}" + truststore-type: "pkcs12" + user-attribute: "extId" fido2: enabled: true - rp-name: AGOV-RelPartName - rp-id: adnovum.net + rp-name: "AGOV-RelPartName" + rp-id: "adnovum.net" origins: - - https://me.agov-w.azure.adnovum.net - - https://nevisidm.agov-w.azure.adnovum.net - - https://auth.agov-w.azure.adnovum.net + - "https://me.agov-w.azure.adnovum.net" + - "https://nevisidm.agov-w.azure.adnovum.net" + - "https://auth.agov-w.azure.adnovum.net" signature-algorithms: - - RS1 - - RS256 - - RS384 - - RS512 - - ES256 - - ES384 - - ES512 - display-name-source: email \ No newline at end of file + - "RS1" + - "RS256" + - "RS384" + - "RS512" + - "ES256" + - "ES384" + - "ES512" + display-name-source: "email" + metadata: + allow-listing-enabled: false + timeout: + user-verification: "300s" + no-user-verification: "120s" +session-repository: + type: "in-memory" diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/idm/etc/nevis/k8s-nevisidm-b8a36646f81c3247cdb5d90b.yaml b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/idm/etc/nevis/k8s-nevisidm-b8a36646f81c3247cdb5d90b.yaml index 6fe7aa3..6ed7430 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/idm/etc/nevis/k8s-nevisidm-b8a36646f81c3247cdb5d90b.yaml +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/idm/etc/nevis/k8s-nevisidm-b8a36646f81c3247cdb5d90b.yaml @@ -11,7 +11,7 @@ metadata: spec: type: "NevisIDM" replicas: 1 - version: "8.2405.2" + version: "8.2411.1" gitInitVersion: "1.3.0" runAsNonRoot: true ports: @@ -28,25 +28,25 @@ spec: management: httpGet: path: "/liveness" - periodSeconds: 30 + periodSeconds: 5 timeoutSeconds: 6 readinessProbe: management: httpGet: path: "/health" - periodSeconds: 30 + periodSeconds: 5 timeoutSeconds: 6 startupProbe: management: httpGet: path: "/health" - periodSeconds: 30 + periodSeconds: 5 timeoutSeconds: 6 - failureThreshold: 10 + failureThreshold: 50 podDisruptionBudget: maxUnavailable: "50%" git: - tag: "r-3a33cc8960643d6afc30bade3f2d225bea96681a" + tag: "r-b0ee5bf8f21b6deb852634ece4565dee10c29032" dir: "DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/idm" credentials: "git-credentials" keystores: diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/idm/var/opt/nevisidm/default/conf/env.conf b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/idm/var/opt/nevisidm/default/conf/env.conf index 6b6fd51..635445f 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/idm/var/opt/nevisidm/default/conf/env.conf +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/idm/var/opt/nevisidm/default/conf/env.conf @@ -4,5 +4,5 @@ JAVA_OPTS=( "-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.2,service.instance.id=$HOSTNAME" + "-Dotel.resource.attributes=service.version=8.2411.1,service.instance.id=$HOSTNAME" ) \ No newline at end of file diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/idm/var/opt/nevisidm/default/conf/logging.yml b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/idm/var/opt/nevisidm/default/conf/logging.yml index 5c5cf11..8409fd7 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/idm/var/opt/nevisidm/default/conf/logging.yml +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/idm/var/opt/nevisidm/default/conf/logging.yml @@ -20,6 +20,8 @@ Configuration: onMismatch: "ACCEPT" Loggers: Logger: + - name: "ProductAnalytics" + level: "INFO" - name: "ch.nevis.idm.batch.jobs" level: "INFO" additivity: "false" diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/etc/nevis/k8s-nevislogrend-097929211988398a87bcbb0c.yaml b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/etc/nevis/k8s-nevislogrend-097929211988398a87bcbb0c.yaml index 670ae86..c8e4533 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/etc/nevis/k8s-nevislogrend-097929211988398a87bcbb0c.yaml +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/etc/nevis/k8s-nevislogrend-097929211988398a87bcbb0c.yaml @@ -11,7 +11,7 @@ metadata: spec: type: "NevisLogrend" replicas: 1 - version: "8.2405.0" + version: "8.2411.1" gitInitVersion: "1.3.0" runAsNonRoot: true ports: @@ -44,7 +44,7 @@ spec: podDisruptionBudget: maxUnavailable: "50%" git: - tag: "r-35a58676fa94fb637419e8df19b37df68f0f6ac5" + tag: "r-b0ee5bf8f21b6deb852634ece4565dee10c29032" dir: "DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend" credentials: "git-credentials" podSecurity: diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/conf/env.conf b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/conf/env.conf index 1e7049e..7a53e6d 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/conf/env.conf +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/conf/env.conf @@ -10,5 +10,5 @@ JAVA_OPTS=( "-javaagent:/opt/agent/opentelemetry-javaagent.jar" "-Dotel.javaagent.logging=application" "-Dotel.javaagent.configuration-file=/var/opt/nevislogrend/default/conf/otel.properties" - "-Dotel.resource.attributes=service.version=8.2405.0,service.instance.id=$HOSTNAME" + "-Dotel.resource.attributes=service.version=8.2411.1,service.instance.id=$HOSTNAME" ) \ No newline at end of file diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/conf/logging.yml b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/conf/logging.yml index a5708ef..533e26f 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/conf/logging.yml +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/conf/logging.yml @@ -11,7 +11,9 @@ Configuration: onMatch: "DENY" onMismatch: "ACCEPT" Loggers: - Logger: [] + Logger: + - name: "ProductAnalytics" + level: "INFO" Root: level: "WARN" additivity: "false" diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Main_IDP/webdata/resources/mauth_link_qr.js b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Main_IDP/webdata/resources/mauth_link_qr.js index 3676cda..fe0749a 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Main_IDP/webdata/resources/mauth_link_qr.js +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Main_IDP/webdata/resources/mauth_link_qr.js @@ -16,6 +16,12 @@ let statusPolling; + let isPolling = false; + let pollingTimeout = null; + + const POLLING_INTERVAL = 2000; + const REQUEST_TIMEOUT = 3000; + function dispatchLink() { document.getElementById("mauth_started").style.display = "block"; // show @@ -55,9 +61,7 @@ }); var sessionId = o.sessionId; console.log("started polling for session ID: " + sessionId); - statusPolling = window.setInterval(function () { - poll(sessionId); - }, 2000); + poll(sessionId); } else { console.log("authentication failed: " + o.dispatchResult); @@ -70,21 +74,36 @@ } function poll(sessionId) { + if (isPolling) { + return; // Exit if a polling request is already ongoing + } - const request = {}; - request.fidoUafSessionId = sessionId; + isPolling = true; - // calling nevisFIDO through nevisAuth on current URL using AJAX - fetch("", { + const request = { fidoUafSessionId: sessionId }; + + const fetchRequest = fetch("", { method: "POST", headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(request) - }).then(res => { - res.json().then(o => { + }); + + // Set up the timeout for the fetch request + const timeoutPromise = new Promise((_, reject) => { + pollingTimeout = setTimeout(() => { + reject(new Error('Request timed out')); + }, REQUEST_TIMEOUT); + }); + + Promise.race([fetchRequest, timeoutPromise]) + .then(res => res.json()) + .then(o => { + clearTimeout(pollingTimeout); var status = o.status; console.log("status: " + status); + if (status == 'clientAuthenticating') { // show process icon document.getElementById("mauth_loading").style.display = 'block'; @@ -99,20 +118,24 @@ addInput(form, "continue", "true"); // required for custom dispatching in usernameless document.body.appendChild(form); form.submit(); - } - else if (status == 'failed' || status == 'unknown') { - + } else if (status == 'failed' || status == 'unknown') { clearInterval(statusPolling); console.error("authentication failed with status: " + status); - // as this is the last call we have to do a top-level request instead of AJAX const form = createForm(); addInput(form, "fidoUafSessionId", sessionId); document.body.appendChild(form); form.submit(); } + }) + .catch((err) => { + console.error("error:", err); + }) + .finally(() => { + isPolling = false; + // Schedule the next poll if needed + setTimeout(() => poll(sessionId), POLLING_INTERVAL); }); - }).catch((err) => console.error("error: ", err)); } dispatchLink(); diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Main_IDP/webdata/resources/mauth_onboard.js b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Main_IDP/webdata/resources/mauth_onboard.js index 156f26e..4be9d24 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Main_IDP/webdata/resources/mauth_onboard.js +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Main_IDP/webdata/resources/mauth_onboard.js @@ -16,6 +16,12 @@ let statusPolling; + let isPolling = false; + let pollingTimeout = null; + + const POLLING_INTERVAL = 2000; + const REQUEST_TIMEOUT = 3000; + function renderEnrollment() { // link is provided by a hidden GuiElem @@ -52,44 +58,53 @@ } function poll() { + if (isPolling) { + return; // Exit if a polling request is already ongoing + } + + isPolling = true; // state is held on backend side const request = {}; - // calling nevisFIDO through nevisAuth on current URL using AJAX - fetch("", { + const fetchRequest = fetch("", { method: "POST", headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(request) - }).then(res => { - res.json().then(o => { + }); + // Set up the timeout for the fetch request + const timeoutPromise = new Promise((_, reject) => { + pollingTimeout = setTimeout(() => { + reject(new Error('Request timed out')); + }, REQUEST_TIMEOUT); + }); + + Promise.race([fetchRequest, timeoutPromise]) + .then(res => res.json()) + .then(o => { + clearTimeout(pollingTimeout); var status = o.status; console.log("status: " + status); if (status == 'clientRegistering') { - // show process icon document.getElementById("mauth_loading").style.display = 'block'; // hide QR-code and information document.getElementById("mauth_qrcode").style.display = 'none'; document.getElementById("mauth_qrcode_info").style.display = 'none'; - } - else if (status == 'succeeded') { - + } else if (status == 'succeeded') { clearInterval(statusPolling); - console.error("onboarding successful"); + console.log("onboarding successful"); // as this is the last call we have to do a top-level request instead of AJAX const form = createForm(); document.body.appendChild(form); form.submit(); - } - else if (status == 'failed' || status == 'unknown') { - + } else if (status == 'failed' || status == 'unknown') { clearInterval(statusPolling); console.error("onboarding failed with status: " + status); @@ -98,8 +113,15 @@ document.body.appendChild(form); form.submit(); } + }) + .catch((err) => { + console.error("error:", err); + }) + .finally(() => { + isPolling = false; + // Schedule the next poll if needed + setTimeout(() => poll(), POLLING_INTERVAL); }); - }).catch((err) => console.error("error: ", err)); } renderEnrollment(); diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Main_IDP/webdata/resources/mauth_push_qr.js b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Main_IDP/webdata/resources/mauth_push_qr.js index 348aa3c..9612c23 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Main_IDP/webdata/resources/mauth_push_qr.js +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Main_IDP/webdata/resources/mauth_push_qr.js @@ -16,6 +16,12 @@ let statusPolling; + let isPolling = false; + let pollingTimeout = null; + + const POLLING_INTERVAL = 2000; + const REQUEST_TIMEOUT = 3000; + function dispatch(id) { document.getElementById("mauth_devices").style.display = "none"; // hide selection menu @@ -70,9 +76,7 @@ }); var sessionId = o.sessionId; console.log("started polling for session ID: " + sessionId); - statusPolling = window.setInterval(function () { - poll(sessionId); - }, 2000); + poll(sessionId); } else { console.log("authentication failed: " + o.dispatchResult); @@ -125,47 +129,64 @@ } function poll(sessionId) { + if (isPolling) { + return; // Exit if a polling request is already ongoing + } + isPolling = true; - const request = {}; - request.fidoUafSessionId = sessionId; + const request = { fidoUafSessionId: sessionId }; - // calling nevisFIDO through nevisAuth on current URL using AJAX - fetch("", { + const fetchRequest = fetch("", { method: "POST", headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(request) - }).then(res => { - res.json().then(o => { + }); + + // Set up the timeout for the fetch request + const timeoutPromise = new Promise((_, reject) => { + pollingTimeout = setTimeout(() => { + reject(new Error('Request timed out')); + }, REQUEST_TIMEOUT); + }); + + Promise.race([fetchRequest, timeoutPromise]) + .then(res => res.json()) + .then(o => { + clearTimeout(pollingTimeout); var status = o.status; console.log("status: " + status); + if (status == 'clientAuthenticating') { document.getElementById("mauth_qrcode").style.display = 'none'; document.getElementById("mauth_qrcode_info").style.display = 'none'; document.getElementById("mauth_match_numbers").style.display = 'block'; document.getElementById("mauth_loading").style.display = 'block'; } + if (status == 'succeeded') { clearInterval(statusPolling); - // as this is the last call we have to do a top-level request instead of AJAX const form = createForm(); document.body.appendChild(form); form.submit(); - } - else if (status == 'failed' || status == 'unknown') { - + } else if (status == 'failed' || status == 'unknown') { clearInterval(statusPolling); console.error("authentication failed with status: " + status); - - // as this is the last call we have to do a top-level request instead of AJAX const form = createForm(); addInput(form, "fidoUafSessionId", sessionId); document.body.appendChild(form); form.submit(); } + }) + .catch((err) => { + console.error("error:", err); + }) + .finally(() => { + isPolling = false; + // Schedule the next poll if needed + setTimeout(() => poll(sessionId), POLLING_INTERVAL); }); - }).catch((err) => console.error("error: ", err)); } renderDeviceList(); diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Main_IDP/webdata/resources/mauth_usernameless.js b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Main_IDP/webdata/resources/mauth_usernameless.js index e5955ef..900befb 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Main_IDP/webdata/resources/mauth_usernameless.js +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Main_IDP/webdata/resources/mauth_usernameless.js @@ -16,6 +16,12 @@ let statusPolling; + let isPolling = false; + let pollingTimeout = null; + + const POLLING_INTERVAL = 2000; + const REQUEST_TIMEOUT = 3000; + function dispatch() { console.log("initiating usernameless mobile authentication..."); @@ -58,9 +64,7 @@ }); var sessionId = o.sessionId; console.log("started polling for session ID: " + sessionId); - statusPolling = window.setInterval(function () { - poll(sessionId); - }, 2000); + poll(sessionId); } else { console.log("authentication failed: " + o.dispatchResult); @@ -73,46 +77,66 @@ } function poll(sessionId) { + if (isPolling) { + return; // Exit if a polling request is already ongoing + } - const request = {}; - request.fidoUafSessionId = sessionId; + isPolling = true; - // calling nevisFIDO through nevisAuth on current URL using AJAX - fetch("", { + const request = { fidoUafSessionId: sessionId }; + + const fetchRequest = fetch("", { method: "POST", headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(request) - }).then(res => { - res.json().then(o => { + }); + + // Set up the timeout for the fetch request + const timeoutPromise = new Promise((_, reject) => { + pollingTimeout = setTimeout(() => { + reject(new Error('Request timed out')); + }, REQUEST_TIMEOUT); + }); + + Promise.race([fetchRequest, timeoutPromise]) + .then(res => res.json()) + .then(o => { + clearTimeout(pollingTimeout); var status = o.status; console.log("status: " + status); + if (status == 'clientAuthenticating') { - document.getElementById("mauth_qrcode").style.display = 'none'; + // show process icon document.getElementById("mauth_loading").style.display = 'block'; + document.getElementById("mauth_qrcode").style.display = 'none'; } if (status == 'succeeded') { clearInterval(statusPolling); // as this is the last call we have to do a top-level request instead of AJAX const form = createForm(); - addInput(form, "fidoUafDone", "true"); // checked by Groovy script + addInput(form, "continue", "true"); // required for custom dispatching in usernameless document.body.appendChild(form); form.submit(); - } - else if (status == 'failed' || status == 'unknown') { - + } else if (status == 'failed' || status == 'unknown') { clearInterval(statusPolling); console.error("authentication failed with status: " + status); - // as this is the last call we have to do a top-level request instead of AJAX const form = createForm(); - addInput(form, "fidoUafSessionId", sessionId); // checked by Groovy script + addInput(form, "fidoUafSessionId", sessionId); document.body.appendChild(form); form.submit(); } + }) + .catch((err) => { + console.error("error:", err); + }) + .finally(() => { + isPolling = false; + // Schedule the next poll if needed + setTimeout(() => poll(sessionId), POLLING_INTERVAL); }); - }).catch((err) => console.error("error: ", err)); } dispatch(); diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Mobile_FIDO_UAF/webdata/resources/mauth_link_qr.js b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Mobile_FIDO_UAF/webdata/resources/mauth_link_qr.js index 3676cda..fe0749a 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Mobile_FIDO_UAF/webdata/resources/mauth_link_qr.js +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Mobile_FIDO_UAF/webdata/resources/mauth_link_qr.js @@ -16,6 +16,12 @@ let statusPolling; + let isPolling = false; + let pollingTimeout = null; + + const POLLING_INTERVAL = 2000; + const REQUEST_TIMEOUT = 3000; + function dispatchLink() { document.getElementById("mauth_started").style.display = "block"; // show @@ -55,9 +61,7 @@ }); var sessionId = o.sessionId; console.log("started polling for session ID: " + sessionId); - statusPolling = window.setInterval(function () { - poll(sessionId); - }, 2000); + poll(sessionId); } else { console.log("authentication failed: " + o.dispatchResult); @@ -70,21 +74,36 @@ } function poll(sessionId) { + if (isPolling) { + return; // Exit if a polling request is already ongoing + } - const request = {}; - request.fidoUafSessionId = sessionId; + isPolling = true; - // calling nevisFIDO through nevisAuth on current URL using AJAX - fetch("", { + const request = { fidoUafSessionId: sessionId }; + + const fetchRequest = fetch("", { method: "POST", headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(request) - }).then(res => { - res.json().then(o => { + }); + + // Set up the timeout for the fetch request + const timeoutPromise = new Promise((_, reject) => { + pollingTimeout = setTimeout(() => { + reject(new Error('Request timed out')); + }, REQUEST_TIMEOUT); + }); + + Promise.race([fetchRequest, timeoutPromise]) + .then(res => res.json()) + .then(o => { + clearTimeout(pollingTimeout); var status = o.status; console.log("status: " + status); + if (status == 'clientAuthenticating') { // show process icon document.getElementById("mauth_loading").style.display = 'block'; @@ -99,20 +118,24 @@ addInput(form, "continue", "true"); // required for custom dispatching in usernameless document.body.appendChild(form); form.submit(); - } - else if (status == 'failed' || status == 'unknown') { - + } else if (status == 'failed' || status == 'unknown') { clearInterval(statusPolling); console.error("authentication failed with status: " + status); - // as this is the last call we have to do a top-level request instead of AJAX const form = createForm(); addInput(form, "fidoUafSessionId", sessionId); document.body.appendChild(form); form.submit(); } + }) + .catch((err) => { + console.error("error:", err); + }) + .finally(() => { + isPolling = false; + // Schedule the next poll if needed + setTimeout(() => poll(sessionId), POLLING_INTERVAL); }); - }).catch((err) => console.error("error: ", err)); } dispatchLink(); diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Mobile_FIDO_UAF/webdata/resources/mauth_onboard.js b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Mobile_FIDO_UAF/webdata/resources/mauth_onboard.js index 156f26e..4be9d24 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Mobile_FIDO_UAF/webdata/resources/mauth_onboard.js +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Mobile_FIDO_UAF/webdata/resources/mauth_onboard.js @@ -16,6 +16,12 @@ let statusPolling; + let isPolling = false; + let pollingTimeout = null; + + const POLLING_INTERVAL = 2000; + const REQUEST_TIMEOUT = 3000; + function renderEnrollment() { // link is provided by a hidden GuiElem @@ -52,44 +58,53 @@ } function poll() { + if (isPolling) { + return; // Exit if a polling request is already ongoing + } + + isPolling = true; // state is held on backend side const request = {}; - // calling nevisFIDO through nevisAuth on current URL using AJAX - fetch("", { + const fetchRequest = fetch("", { method: "POST", headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(request) - }).then(res => { - res.json().then(o => { + }); + // Set up the timeout for the fetch request + const timeoutPromise = new Promise((_, reject) => { + pollingTimeout = setTimeout(() => { + reject(new Error('Request timed out')); + }, REQUEST_TIMEOUT); + }); + + Promise.race([fetchRequest, timeoutPromise]) + .then(res => res.json()) + .then(o => { + clearTimeout(pollingTimeout); var status = o.status; console.log("status: " + status); if (status == 'clientRegistering') { - // show process icon document.getElementById("mauth_loading").style.display = 'block'; // hide QR-code and information document.getElementById("mauth_qrcode").style.display = 'none'; document.getElementById("mauth_qrcode_info").style.display = 'none'; - } - else if (status == 'succeeded') { - + } else if (status == 'succeeded') { clearInterval(statusPolling); - console.error("onboarding successful"); + console.log("onboarding successful"); // as this is the last call we have to do a top-level request instead of AJAX const form = createForm(); document.body.appendChild(form); form.submit(); - } - else if (status == 'failed' || status == 'unknown') { - + } else if (status == 'failed' || status == 'unknown') { clearInterval(statusPolling); console.error("onboarding failed with status: " + status); @@ -98,8 +113,15 @@ document.body.appendChild(form); form.submit(); } + }) + .catch((err) => { + console.error("error:", err); + }) + .finally(() => { + isPolling = false; + // Schedule the next poll if needed + setTimeout(() => poll(), POLLING_INTERVAL); }); - }).catch((err) => console.error("error: ", err)); } renderEnrollment(); diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Mobile_FIDO_UAF/webdata/resources/mauth_push_qr.js b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Mobile_FIDO_UAF/webdata/resources/mauth_push_qr.js index 348aa3c..9612c23 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Mobile_FIDO_UAF/webdata/resources/mauth_push_qr.js +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Mobile_FIDO_UAF/webdata/resources/mauth_push_qr.js @@ -16,6 +16,12 @@ let statusPolling; + let isPolling = false; + let pollingTimeout = null; + + const POLLING_INTERVAL = 2000; + const REQUEST_TIMEOUT = 3000; + function dispatch(id) { document.getElementById("mauth_devices").style.display = "none"; // hide selection menu @@ -70,9 +76,7 @@ }); var sessionId = o.sessionId; console.log("started polling for session ID: " + sessionId); - statusPolling = window.setInterval(function () { - poll(sessionId); - }, 2000); + poll(sessionId); } else { console.log("authentication failed: " + o.dispatchResult); @@ -125,47 +129,64 @@ } function poll(sessionId) { + if (isPolling) { + return; // Exit if a polling request is already ongoing + } + isPolling = true; - const request = {}; - request.fidoUafSessionId = sessionId; + const request = { fidoUafSessionId: sessionId }; - // calling nevisFIDO through nevisAuth on current URL using AJAX - fetch("", { + const fetchRequest = fetch("", { method: "POST", headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(request) - }).then(res => { - res.json().then(o => { + }); + + // Set up the timeout for the fetch request + const timeoutPromise = new Promise((_, reject) => { + pollingTimeout = setTimeout(() => { + reject(new Error('Request timed out')); + }, REQUEST_TIMEOUT); + }); + + Promise.race([fetchRequest, timeoutPromise]) + .then(res => res.json()) + .then(o => { + clearTimeout(pollingTimeout); var status = o.status; console.log("status: " + status); + if (status == 'clientAuthenticating') { document.getElementById("mauth_qrcode").style.display = 'none'; document.getElementById("mauth_qrcode_info").style.display = 'none'; document.getElementById("mauth_match_numbers").style.display = 'block'; document.getElementById("mauth_loading").style.display = 'block'; } + if (status == 'succeeded') { clearInterval(statusPolling); - // as this is the last call we have to do a top-level request instead of AJAX const form = createForm(); document.body.appendChild(form); form.submit(); - } - else if (status == 'failed' || status == 'unknown') { - + } else if (status == 'failed' || status == 'unknown') { clearInterval(statusPolling); console.error("authentication failed with status: " + status); - - // as this is the last call we have to do a top-level request instead of AJAX const form = createForm(); addInput(form, "fidoUafSessionId", sessionId); document.body.appendChild(form); form.submit(); } + }) + .catch((err) => { + console.error("error:", err); + }) + .finally(() => { + isPolling = false; + // Schedule the next poll if needed + setTimeout(() => poll(sessionId), POLLING_INTERVAL); }); - }).catch((err) => console.error("error: ", err)); } renderDeviceList(); diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Mobile_FIDO_UAF/webdata/resources/mauth_usernameless.js b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Mobile_FIDO_UAF/webdata/resources/mauth_usernameless.js index e5955ef..900befb 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Mobile_FIDO_UAF/webdata/resources/mauth_usernameless.js +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Mobile_FIDO_UAF/webdata/resources/mauth_usernameless.js @@ -16,6 +16,12 @@ let statusPolling; + let isPolling = false; + let pollingTimeout = null; + + const POLLING_INTERVAL = 2000; + const REQUEST_TIMEOUT = 3000; + function dispatch() { console.log("initiating usernameless mobile authentication..."); @@ -58,9 +64,7 @@ }); var sessionId = o.sessionId; console.log("started polling for session ID: " + sessionId); - statusPolling = window.setInterval(function () { - poll(sessionId); - }, 2000); + poll(sessionId); } else { console.log("authentication failed: " + o.dispatchResult); @@ -73,46 +77,66 @@ } function poll(sessionId) { + if (isPolling) { + return; // Exit if a polling request is already ongoing + } - const request = {}; - request.fidoUafSessionId = sessionId; + isPolling = true; - // calling nevisFIDO through nevisAuth on current URL using AJAX - fetch("", { + const request = { fidoUafSessionId: sessionId }; + + const fetchRequest = fetch("", { method: "POST", headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(request) - }).then(res => { - res.json().then(o => { + }); + + // Set up the timeout for the fetch request + const timeoutPromise = new Promise((_, reject) => { + pollingTimeout = setTimeout(() => { + reject(new Error('Request timed out')); + }, REQUEST_TIMEOUT); + }); + + Promise.race([fetchRequest, timeoutPromise]) + .then(res => res.json()) + .then(o => { + clearTimeout(pollingTimeout); var status = o.status; console.log("status: " + status); + if (status == 'clientAuthenticating') { - document.getElementById("mauth_qrcode").style.display = 'none'; + // show process icon document.getElementById("mauth_loading").style.display = 'block'; + document.getElementById("mauth_qrcode").style.display = 'none'; } if (status == 'succeeded') { clearInterval(statusPolling); // as this is the last call we have to do a top-level request instead of AJAX const form = createForm(); - addInput(form, "fidoUafDone", "true"); // checked by Groovy script + addInput(form, "continue", "true"); // required for custom dispatching in usernameless document.body.appendChild(form); form.submit(); - } - else if (status == 'failed' || status == 'unknown') { - + } else if (status == 'failed' || status == 'unknown') { clearInterval(statusPolling); console.error("authentication failed with status: " + status); - // as this is the last call we have to do a top-level request instead of AJAX const form = createForm(); - addInput(form, "fidoUafSessionId", sessionId); // checked by Groovy script + addInput(form, "fidoUafSessionId", sessionId); document.body.appendChild(form); form.submit(); } + }) + .catch((err) => { + console.error("error:", err); + }) + .finally(() => { + isPolling = false; + // Schedule the next poll if needed + setTimeout(() => poll(sessionId), POLLING_INTERVAL); }); - }).catch((err) => console.error("error: ", err)); } dispatch(); diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Recovery/webdata/resources/mauth_link_qr.js b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Recovery/webdata/resources/mauth_link_qr.js index 3676cda..fe0749a 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Recovery/webdata/resources/mauth_link_qr.js +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Recovery/webdata/resources/mauth_link_qr.js @@ -16,6 +16,12 @@ let statusPolling; + let isPolling = false; + let pollingTimeout = null; + + const POLLING_INTERVAL = 2000; + const REQUEST_TIMEOUT = 3000; + function dispatchLink() { document.getElementById("mauth_started").style.display = "block"; // show @@ -55,9 +61,7 @@ }); var sessionId = o.sessionId; console.log("started polling for session ID: " + sessionId); - statusPolling = window.setInterval(function () { - poll(sessionId); - }, 2000); + poll(sessionId); } else { console.log("authentication failed: " + o.dispatchResult); @@ -70,21 +74,36 @@ } function poll(sessionId) { + if (isPolling) { + return; // Exit if a polling request is already ongoing + } - const request = {}; - request.fidoUafSessionId = sessionId; + isPolling = true; - // calling nevisFIDO through nevisAuth on current URL using AJAX - fetch("", { + const request = { fidoUafSessionId: sessionId }; + + const fetchRequest = fetch("", { method: "POST", headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(request) - }).then(res => { - res.json().then(o => { + }); + + // Set up the timeout for the fetch request + const timeoutPromise = new Promise((_, reject) => { + pollingTimeout = setTimeout(() => { + reject(new Error('Request timed out')); + }, REQUEST_TIMEOUT); + }); + + Promise.race([fetchRequest, timeoutPromise]) + .then(res => res.json()) + .then(o => { + clearTimeout(pollingTimeout); var status = o.status; console.log("status: " + status); + if (status == 'clientAuthenticating') { // show process icon document.getElementById("mauth_loading").style.display = 'block'; @@ -99,20 +118,24 @@ addInput(form, "continue", "true"); // required for custom dispatching in usernameless document.body.appendChild(form); form.submit(); - } - else if (status == 'failed' || status == 'unknown') { - + } else if (status == 'failed' || status == 'unknown') { clearInterval(statusPolling); console.error("authentication failed with status: " + status); - // as this is the last call we have to do a top-level request instead of AJAX const form = createForm(); addInput(form, "fidoUafSessionId", sessionId); document.body.appendChild(form); form.submit(); } + }) + .catch((err) => { + console.error("error:", err); + }) + .finally(() => { + isPolling = false; + // Schedule the next poll if needed + setTimeout(() => poll(sessionId), POLLING_INTERVAL); }); - }).catch((err) => console.error("error: ", err)); } dispatchLink(); diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Recovery/webdata/resources/mauth_onboard.js b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Recovery/webdata/resources/mauth_onboard.js index 156f26e..4be9d24 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Recovery/webdata/resources/mauth_onboard.js +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Recovery/webdata/resources/mauth_onboard.js @@ -16,6 +16,12 @@ let statusPolling; + let isPolling = false; + let pollingTimeout = null; + + const POLLING_INTERVAL = 2000; + const REQUEST_TIMEOUT = 3000; + function renderEnrollment() { // link is provided by a hidden GuiElem @@ -52,44 +58,53 @@ } function poll() { + if (isPolling) { + return; // Exit if a polling request is already ongoing + } + + isPolling = true; // state is held on backend side const request = {}; - // calling nevisFIDO through nevisAuth on current URL using AJAX - fetch("", { + const fetchRequest = fetch("", { method: "POST", headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(request) - }).then(res => { - res.json().then(o => { + }); + // Set up the timeout for the fetch request + const timeoutPromise = new Promise((_, reject) => { + pollingTimeout = setTimeout(() => { + reject(new Error('Request timed out')); + }, REQUEST_TIMEOUT); + }); + + Promise.race([fetchRequest, timeoutPromise]) + .then(res => res.json()) + .then(o => { + clearTimeout(pollingTimeout); var status = o.status; console.log("status: " + status); if (status == 'clientRegistering') { - // show process icon document.getElementById("mauth_loading").style.display = 'block'; // hide QR-code and information document.getElementById("mauth_qrcode").style.display = 'none'; document.getElementById("mauth_qrcode_info").style.display = 'none'; - } - else if (status == 'succeeded') { - + } else if (status == 'succeeded') { clearInterval(statusPolling); - console.error("onboarding successful"); + console.log("onboarding successful"); // as this is the last call we have to do a top-level request instead of AJAX const form = createForm(); document.body.appendChild(form); form.submit(); - } - else if (status == 'failed' || status == 'unknown') { - + } else if (status == 'failed' || status == 'unknown') { clearInterval(statusPolling); console.error("onboarding failed with status: " + status); @@ -98,8 +113,15 @@ document.body.appendChild(form); form.submit(); } + }) + .catch((err) => { + console.error("error:", err); + }) + .finally(() => { + isPolling = false; + // Schedule the next poll if needed + setTimeout(() => poll(), POLLING_INTERVAL); }); - }).catch((err) => console.error("error: ", err)); } renderEnrollment(); diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Recovery/webdata/resources/mauth_push_qr.js b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Recovery/webdata/resources/mauth_push_qr.js index 348aa3c..9612c23 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Recovery/webdata/resources/mauth_push_qr.js +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Recovery/webdata/resources/mauth_push_qr.js @@ -16,6 +16,12 @@ let statusPolling; + let isPolling = false; + let pollingTimeout = null; + + const POLLING_INTERVAL = 2000; + const REQUEST_TIMEOUT = 3000; + function dispatch(id) { document.getElementById("mauth_devices").style.display = "none"; // hide selection menu @@ -70,9 +76,7 @@ }); var sessionId = o.sessionId; console.log("started polling for session ID: " + sessionId); - statusPolling = window.setInterval(function () { - poll(sessionId); - }, 2000); + poll(sessionId); } else { console.log("authentication failed: " + o.dispatchResult); @@ -125,47 +129,64 @@ } function poll(sessionId) { + if (isPolling) { + return; // Exit if a polling request is already ongoing + } + isPolling = true; - const request = {}; - request.fidoUafSessionId = sessionId; + const request = { fidoUafSessionId: sessionId }; - // calling nevisFIDO through nevisAuth on current URL using AJAX - fetch("", { + const fetchRequest = fetch("", { method: "POST", headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(request) - }).then(res => { - res.json().then(o => { + }); + + // Set up the timeout for the fetch request + const timeoutPromise = new Promise((_, reject) => { + pollingTimeout = setTimeout(() => { + reject(new Error('Request timed out')); + }, REQUEST_TIMEOUT); + }); + + Promise.race([fetchRequest, timeoutPromise]) + .then(res => res.json()) + .then(o => { + clearTimeout(pollingTimeout); var status = o.status; console.log("status: " + status); + if (status == 'clientAuthenticating') { document.getElementById("mauth_qrcode").style.display = 'none'; document.getElementById("mauth_qrcode_info").style.display = 'none'; document.getElementById("mauth_match_numbers").style.display = 'block'; document.getElementById("mauth_loading").style.display = 'block'; } + if (status == 'succeeded') { clearInterval(statusPolling); - // as this is the last call we have to do a top-level request instead of AJAX const form = createForm(); document.body.appendChild(form); form.submit(); - } - else if (status == 'failed' || status == 'unknown') { - + } else if (status == 'failed' || status == 'unknown') { clearInterval(statusPolling); console.error("authentication failed with status: " + status); - - // as this is the last call we have to do a top-level request instead of AJAX const form = createForm(); addInput(form, "fidoUafSessionId", sessionId); document.body.appendChild(form); form.submit(); } + }) + .catch((err) => { + console.error("error:", err); + }) + .finally(() => { + isPolling = false; + // Schedule the next poll if needed + setTimeout(() => poll(sessionId), POLLING_INTERVAL); }); - }).catch((err) => console.error("error: ", err)); } renderDeviceList(); diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Recovery/webdata/resources/mauth_usernameless.js b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Recovery/webdata/resources/mauth_usernameless.js index e5955ef..900befb 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Recovery/webdata/resources/mauth_usernameless.js +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/Auth_Realm_Recovery/webdata/resources/mauth_usernameless.js @@ -16,6 +16,12 @@ let statusPolling; + let isPolling = false; + let pollingTimeout = null; + + const POLLING_INTERVAL = 2000; + const REQUEST_TIMEOUT = 3000; + function dispatch() { console.log("initiating usernameless mobile authentication..."); @@ -58,9 +64,7 @@ }); var sessionId = o.sessionId; console.log("started polling for session ID: " + sessionId); - statusPolling = window.setInterval(function () { - poll(sessionId); - }, 2000); + poll(sessionId); } else { console.log("authentication failed: " + o.dispatchResult); @@ -73,46 +77,66 @@ } function poll(sessionId) { + if (isPolling) { + return; // Exit if a polling request is already ongoing + } - const request = {}; - request.fidoUafSessionId = sessionId; + isPolling = true; - // calling nevisFIDO through nevisAuth on current URL using AJAX - fetch("", { + const request = { fidoUafSessionId: sessionId }; + + const fetchRequest = fetch("", { method: "POST", headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(request) - }).then(res => { - res.json().then(o => { + }); + + // Set up the timeout for the fetch request + const timeoutPromise = new Promise((_, reject) => { + pollingTimeout = setTimeout(() => { + reject(new Error('Request timed out')); + }, REQUEST_TIMEOUT); + }); + + Promise.race([fetchRequest, timeoutPromise]) + .then(res => res.json()) + .then(o => { + clearTimeout(pollingTimeout); var status = o.status; console.log("status: " + status); + if (status == 'clientAuthenticating') { - document.getElementById("mauth_qrcode").style.display = 'none'; + // show process icon document.getElementById("mauth_loading").style.display = 'block'; + document.getElementById("mauth_qrcode").style.display = 'none'; } if (status == 'succeeded') { clearInterval(statusPolling); // as this is the last call we have to do a top-level request instead of AJAX const form = createForm(); - addInput(form, "fidoUafDone", "true"); // checked by Groovy script + addInput(form, "continue", "true"); // required for custom dispatching in usernameless document.body.appendChild(form); form.submit(); - } - else if (status == 'failed' || status == 'unknown') { - + } else if (status == 'failed' || status == 'unknown') { clearInterval(statusPolling); console.error("authentication failed with status: " + status); - // as this is the last call we have to do a top-level request instead of AJAX const form = createForm(); - addInput(form, "fidoUafSessionId", sessionId); // checked by Groovy script + addInput(form, "fidoUafSessionId", sessionId); document.body.appendChild(form); form.submit(); } + }) + .catch((err) => { + console.error("error:", err); + }) + .finally(() => { + isPolling = false; + // Schedule the next poll if needed + setTimeout(() => poll(sessionId), POLLING_INTERVAL); }); - }).catch((err) => console.error("error: ", err)); } dispatch(); diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/NotUsed_Auth_Realm/webdata/resources/mauth_link_qr.js b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/NotUsed_Auth_Realm/webdata/resources/mauth_link_qr.js index 3676cda..fe0749a 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/NotUsed_Auth_Realm/webdata/resources/mauth_link_qr.js +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/NotUsed_Auth_Realm/webdata/resources/mauth_link_qr.js @@ -16,6 +16,12 @@ let statusPolling; + let isPolling = false; + let pollingTimeout = null; + + const POLLING_INTERVAL = 2000; + const REQUEST_TIMEOUT = 3000; + function dispatchLink() { document.getElementById("mauth_started").style.display = "block"; // show @@ -55,9 +61,7 @@ }); var sessionId = o.sessionId; console.log("started polling for session ID: " + sessionId); - statusPolling = window.setInterval(function () { - poll(sessionId); - }, 2000); + poll(sessionId); } else { console.log("authentication failed: " + o.dispatchResult); @@ -70,21 +74,36 @@ } function poll(sessionId) { + if (isPolling) { + return; // Exit if a polling request is already ongoing + } - const request = {}; - request.fidoUafSessionId = sessionId; + isPolling = true; - // calling nevisFIDO through nevisAuth on current URL using AJAX - fetch("", { + const request = { fidoUafSessionId: sessionId }; + + const fetchRequest = fetch("", { method: "POST", headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(request) - }).then(res => { - res.json().then(o => { + }); + + // Set up the timeout for the fetch request + const timeoutPromise = new Promise((_, reject) => { + pollingTimeout = setTimeout(() => { + reject(new Error('Request timed out')); + }, REQUEST_TIMEOUT); + }); + + Promise.race([fetchRequest, timeoutPromise]) + .then(res => res.json()) + .then(o => { + clearTimeout(pollingTimeout); var status = o.status; console.log("status: " + status); + if (status == 'clientAuthenticating') { // show process icon document.getElementById("mauth_loading").style.display = 'block'; @@ -99,20 +118,24 @@ addInput(form, "continue", "true"); // required for custom dispatching in usernameless document.body.appendChild(form); form.submit(); - } - else if (status == 'failed' || status == 'unknown') { - + } else if (status == 'failed' || status == 'unknown') { clearInterval(statusPolling); console.error("authentication failed with status: " + status); - // as this is the last call we have to do a top-level request instead of AJAX const form = createForm(); addInput(form, "fidoUafSessionId", sessionId); document.body.appendChild(form); form.submit(); } + }) + .catch((err) => { + console.error("error:", err); + }) + .finally(() => { + isPolling = false; + // Schedule the next poll if needed + setTimeout(() => poll(sessionId), POLLING_INTERVAL); }); - }).catch((err) => console.error("error: ", err)); } dispatchLink(); diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/NotUsed_Auth_Realm/webdata/resources/mauth_onboard.js b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/NotUsed_Auth_Realm/webdata/resources/mauth_onboard.js index 156f26e..4be9d24 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/NotUsed_Auth_Realm/webdata/resources/mauth_onboard.js +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/NotUsed_Auth_Realm/webdata/resources/mauth_onboard.js @@ -16,6 +16,12 @@ let statusPolling; + let isPolling = false; + let pollingTimeout = null; + + const POLLING_INTERVAL = 2000; + const REQUEST_TIMEOUT = 3000; + function renderEnrollment() { // link is provided by a hidden GuiElem @@ -52,44 +58,53 @@ } function poll() { + if (isPolling) { + return; // Exit if a polling request is already ongoing + } + + isPolling = true; // state is held on backend side const request = {}; - // calling nevisFIDO through nevisAuth on current URL using AJAX - fetch("", { + const fetchRequest = fetch("", { method: "POST", headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(request) - }).then(res => { - res.json().then(o => { + }); + // Set up the timeout for the fetch request + const timeoutPromise = new Promise((_, reject) => { + pollingTimeout = setTimeout(() => { + reject(new Error('Request timed out')); + }, REQUEST_TIMEOUT); + }); + + Promise.race([fetchRequest, timeoutPromise]) + .then(res => res.json()) + .then(o => { + clearTimeout(pollingTimeout); var status = o.status; console.log("status: " + status); if (status == 'clientRegistering') { - // show process icon document.getElementById("mauth_loading").style.display = 'block'; // hide QR-code and information document.getElementById("mauth_qrcode").style.display = 'none'; document.getElementById("mauth_qrcode_info").style.display = 'none'; - } - else if (status == 'succeeded') { - + } else if (status == 'succeeded') { clearInterval(statusPolling); - console.error("onboarding successful"); + console.log("onboarding successful"); // as this is the last call we have to do a top-level request instead of AJAX const form = createForm(); document.body.appendChild(form); form.submit(); - } - else if (status == 'failed' || status == 'unknown') { - + } else if (status == 'failed' || status == 'unknown') { clearInterval(statusPolling); console.error("onboarding failed with status: " + status); @@ -98,8 +113,15 @@ document.body.appendChild(form); form.submit(); } + }) + .catch((err) => { + console.error("error:", err); + }) + .finally(() => { + isPolling = false; + // Schedule the next poll if needed + setTimeout(() => poll(), POLLING_INTERVAL); }); - }).catch((err) => console.error("error: ", err)); } renderEnrollment(); diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/NotUsed_Auth_Realm/webdata/resources/mauth_push_qr.js b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/NotUsed_Auth_Realm/webdata/resources/mauth_push_qr.js index 348aa3c..9612c23 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/NotUsed_Auth_Realm/webdata/resources/mauth_push_qr.js +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/NotUsed_Auth_Realm/webdata/resources/mauth_push_qr.js @@ -16,6 +16,12 @@ let statusPolling; + let isPolling = false; + let pollingTimeout = null; + + const POLLING_INTERVAL = 2000; + const REQUEST_TIMEOUT = 3000; + function dispatch(id) { document.getElementById("mauth_devices").style.display = "none"; // hide selection menu @@ -70,9 +76,7 @@ }); var sessionId = o.sessionId; console.log("started polling for session ID: " + sessionId); - statusPolling = window.setInterval(function () { - poll(sessionId); - }, 2000); + poll(sessionId); } else { console.log("authentication failed: " + o.dispatchResult); @@ -125,47 +129,64 @@ } function poll(sessionId) { + if (isPolling) { + return; // Exit if a polling request is already ongoing + } + isPolling = true; - const request = {}; - request.fidoUafSessionId = sessionId; + const request = { fidoUafSessionId: sessionId }; - // calling nevisFIDO through nevisAuth on current URL using AJAX - fetch("", { + const fetchRequest = fetch("", { method: "POST", headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(request) - }).then(res => { - res.json().then(o => { + }); + + // Set up the timeout for the fetch request + const timeoutPromise = new Promise((_, reject) => { + pollingTimeout = setTimeout(() => { + reject(new Error('Request timed out')); + }, REQUEST_TIMEOUT); + }); + + Promise.race([fetchRequest, timeoutPromise]) + .then(res => res.json()) + .then(o => { + clearTimeout(pollingTimeout); var status = o.status; console.log("status: " + status); + if (status == 'clientAuthenticating') { document.getElementById("mauth_qrcode").style.display = 'none'; document.getElementById("mauth_qrcode_info").style.display = 'none'; document.getElementById("mauth_match_numbers").style.display = 'block'; document.getElementById("mauth_loading").style.display = 'block'; } + if (status == 'succeeded') { clearInterval(statusPolling); - // as this is the last call we have to do a top-level request instead of AJAX const form = createForm(); document.body.appendChild(form); form.submit(); - } - else if (status == 'failed' || status == 'unknown') { - + } else if (status == 'failed' || status == 'unknown') { clearInterval(statusPolling); console.error("authentication failed with status: " + status); - - // as this is the last call we have to do a top-level request instead of AJAX const form = createForm(); addInput(form, "fidoUafSessionId", sessionId); document.body.appendChild(form); form.submit(); } + }) + .catch((err) => { + console.error("error:", err); + }) + .finally(() => { + isPolling = false; + // Schedule the next poll if needed + setTimeout(() => poll(sessionId), POLLING_INTERVAL); }); - }).catch((err) => console.error("error: ", err)); } renderDeviceList(); diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/NotUsed_Auth_Realm/webdata/resources/mauth_usernameless.js b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/NotUsed_Auth_Realm/webdata/resources/mauth_usernameless.js index e5955ef..900befb 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/NotUsed_Auth_Realm/webdata/resources/mauth_usernameless.js +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend/var/opt/nevislogrend/default/data/applications/NotUsed_Auth_Realm/webdata/resources/mauth_usernameless.js @@ -16,6 +16,12 @@ let statusPolling; + let isPolling = false; + let pollingTimeout = null; + + const POLLING_INTERVAL = 2000; + const REQUEST_TIMEOUT = 3000; + function dispatch() { console.log("initiating usernameless mobile authentication..."); @@ -58,9 +64,7 @@ }); var sessionId = o.sessionId; console.log("started polling for session ID: " + sessionId); - statusPolling = window.setInterval(function () { - poll(sessionId); - }, 2000); + poll(sessionId); } else { console.log("authentication failed: " + o.dispatchResult); @@ -73,46 +77,66 @@ } function poll(sessionId) { + if (isPolling) { + return; // Exit if a polling request is already ongoing + } - const request = {}; - request.fidoUafSessionId = sessionId; + isPolling = true; - // calling nevisFIDO through nevisAuth on current URL using AJAX - fetch("", { + const request = { fidoUafSessionId: sessionId }; + + const fetchRequest = fetch("", { method: "POST", headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(request) - }).then(res => { - res.json().then(o => { + }); + + // Set up the timeout for the fetch request + const timeoutPromise = new Promise((_, reject) => { + pollingTimeout = setTimeout(() => { + reject(new Error('Request timed out')); + }, REQUEST_TIMEOUT); + }); + + Promise.race([fetchRequest, timeoutPromise]) + .then(res => res.json()) + .then(o => { + clearTimeout(pollingTimeout); var status = o.status; console.log("status: " + status); + if (status == 'clientAuthenticating') { - document.getElementById("mauth_qrcode").style.display = 'none'; + // show process icon document.getElementById("mauth_loading").style.display = 'block'; + document.getElementById("mauth_qrcode").style.display = 'none'; } if (status == 'succeeded') { clearInterval(statusPolling); // as this is the last call we have to do a top-level request instead of AJAX const form = createForm(); - addInput(form, "fidoUafDone", "true"); // checked by Groovy script + addInput(form, "continue", "true"); // required for custom dispatching in usernameless document.body.appendChild(form); form.submit(); - } - else if (status == 'failed' || status == 'unknown') { - + } else if (status == 'failed' || status == 'unknown') { clearInterval(statusPolling); console.error("authentication failed with status: " + status); - // as this is the last call we have to do a top-level request instead of AJAX const form = createForm(); - addInput(form, "fidoUafSessionId", sessionId); // checked by Groovy script + addInput(form, "fidoUafSessionId", sessionId); document.body.appendChild(form); form.submit(); } + }) + .catch((err) => { + console.error("error:", err); + }) + .finally(() => { + isPolling = false; + // Schedule the next poll if needed + setTimeout(() => poll(sessionId), POLLING_INTERVAL); }); - }).catch((err) => console.error("error: ", err)); } dispatch(); diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/proxy-idp/etc/nevis/k8s-nevisproxy-idp-0ceb05c56644a59d648c13b9.yaml b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/proxy-idp/etc/nevis/k8s-nevisproxy-idp-0ceb05c56644a59d648c13b9.yaml index 705e0a1..17dcc4d 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/proxy-idp/etc/nevis/k8s-nevisproxy-idp-0ceb05c56644a59d648c13b9.yaml +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/proxy-idp/etc/nevis/k8s-nevisproxy-idp-0ceb05c56644a59d648c13b9.yaml @@ -11,7 +11,7 @@ metadata: spec: type: "NevisProxy" replicas: 1 - version: "8.2405.1" + version: "8.2411.1" gitInitVersion: "1.3.0" runAsNonRoot: true ports: @@ -46,7 +46,7 @@ spec: podDisruptionBudget: maxUnavailable: "50%" git: - tag: "r-35a58676fa94fb637419e8df19b37df68f0f6ac5" + tag: "r-b0ee5bf8f21b6deb852634ece4565dee10c29032" dir: "DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/proxy-idp" credentials: "git-credentials" keystores: diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/proxy-idp/var/opt/nevisproxy/default/conf/log.properties b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/proxy-idp/var/opt/nevisproxy/default/conf/log.properties index 497d6ed..9ca6a83 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/proxy-idp/var/opt/nevisproxy/default/conf/log.properties +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/proxy-idp/var/opt/nevisproxy/default/conf/log.properties @@ -21,8 +21,6 @@ BC.Tracer.ProgName=isi3web # source: pattern://0ceb05c56644a59d648c13b9 BC.Tracer.DebugProfile.Secrets.Cipher=AES # source: pattern://0ceb05c56644a59d648c13b9 -BC.Tracer.DebugProfile.NavajoHttpSess=0 -# source: pattern://0ceb05c56644a59d648c13b9 BC.Tracer.DebugProfile.NavajoResource=0 # source: pattern://0ceb05c56644a59d648c13b9 BC.Tracer.DebugProfile.NavajoRequest=0 @@ -33,10 +31,6 @@ BC.Tracer.DebugProfile.NavajoSSL=0 # source: pattern://0ceb05c56644a59d648c13b9 BC.Tracer.DebugProfile.NavajoCookie=0 # source: pattern://0ceb05c56644a59d648c13b9 -BC.Tracer.DebugProfile.NavajoConIdent=0 -# source: pattern://0ceb05c56644a59d648c13b9 -BC.Tracer.DebugProfile.NavajoSession=0 -# source: pattern://0ceb05c56644a59d648c13b9 BC.Tracer.DebugProfile.NavajoStart=0 # source: pattern://0ceb05c56644a59d648c13b9 BC.Tracer.DebugProfile.NavajoConfig=0 @@ -47,17 +41,7 @@ BC.Tracer.DebugProfile.NavajoHeader=0 # source: pattern://0ceb05c56644a59d648c13b9 BC.Tracer.DebugProfile.NavajoTimer=0 # source: pattern://0ceb05c56644a59d648c13b9 -BC.Tracer.DebugProfile.NavajoMgmt=0 -# source: pattern://0ceb05c56644a59d648c13b9 -BC.Tracer.DebugProfile.NavajoAdmin=0 -# source: pattern://0ceb05c56644a59d648c13b9 -BC.Tracer.DebugProfile.NevisMgmt=0 -# source: pattern://0ceb05c56644a59d648c13b9 -BC.Tracer.DebugProfile.JmxAmp=0 -# source: pattern://0ceb05c56644a59d648c13b9 -BC.Tracer.DebugProfile.MBeanSrv=0 -# source: pattern://0ceb05c56644a59d648c13b9 -BC.Tracer.DebugProfile.HttpAdaptor=0 +BC.Tracer.DebugProfile.Apache=0 # source: pattern://0ceb05c56644a59d648c13b9 BC.Tracer.DebugProfile.IW4HttpConnSrv=0 # source: pattern://0ceb05c56644a59d648c13b9 @@ -65,10 +49,6 @@ BC.Tracer.DebugProfile.IW4HttpsConnSrv=0 # source: pattern://0ceb05c56644a59d648c13b9 BC.Tracer.DebugProfile.IW4Esau4ConnSrv=0 # source: pattern://0ceb05c56644a59d648c13b9 -BC.Tracer.DebugProfile.IW4NISConnSrv=0 -# source: pattern://0ceb05c56644a59d648c13b9 -BC.Tracer.DebugProfile.IW4PAMConnSrv=0 -# source: pattern://0ceb05c56644a59d648c13b9 BC.Tracer.DebugProfile.IW4X509AuthSrv=0 # source: pattern://0ceb05c56644a59d648c13b9 BC.Tracer.DebugProfile.IW4LogRenSrv=0 @@ -149,10 +129,6 @@ BC.Tracer.DebugProfile.IW4MappingFlt=0 # source: pattern://0ceb05c56644a59d648c13b9 BC.Tracer.DebugProfile.IW4ResSessFlt=0 # source: pattern://0ceb05c56644a59d648c13b9 -BC.Tracer.DebugProfile.JMXSessionFlt=0 -# source: pattern://0ceb05c56644a59d648c13b9 -BC.Tracer.DebugProfile.JMXRequestFlt=0 -# source: pattern://0ceb05c56644a59d648c13b9 BC.Tracer.DebugProfile.NevisSession=0 # source: pattern://0ceb05c56644a59d648c13b9 BC.Tracer.DebugProfile.IW4ParamFlt=0 @@ -165,8 +141,6 @@ BC.Tracer.DebugProfile.IW4CSRFFlt=0 # source: pattern://0ceb05c56644a59d648c13b9 BC.Tracer.DebugProfile.IW4FltMappFlt=0 # source: pattern://0ceb05c56644a59d648c13b9 -BC.Tracer.DebugProfile.IW4QmrFlt=0 -# source: pattern://0ceb05c56644a59d648c13b9 BC.Tracer.DebugProfile.IW4LogFlt=0 # source: pattern://0ceb05c56644a59d648c13b9 BC.Tracer.DebugProfile.IW4WebSocketSrv=0 @@ -223,14 +197,16 @@ BC.Tracer.DebugProfile.EsauthProvider=0 # source: pattern://0ceb05c56644a59d648c13b9 BC.Tracer.DebugProfile.IsiOp=0 # source: pattern://0ceb05c56644a59d648c13b9 -BC.Tracer.DebugProfile.transTCP=0 -# source: pattern://0ceb05c56644a59d648c13b9 -BC.Tracer.DebugProfile.IO=0 -# source: pattern://0ceb05c56644a59d648c13b9 -BC.Tracer.DebugProfile.IOSub=0 -# source: pattern://0ceb05c56644a59d648c13b9 -BC.Tracer.DebugProfile.Alarming=0 -# source: pattern://0ceb05c56644a59d648c13b9 -BC.Tracer.DebugProfile.AlarmEngine=0 -# source: pattern://0ceb05c56644a59d648c13b9 BC.Tracer.DebugProfile.NPMultiLevelStr=0 +# source: pattern://0ceb05c56644a59d648c13b9 +BC.Tracer.DebugProfile.NPPSQLSessSrv=0 +# source: pattern://0ceb05c56644a59d648c13b9 +BC.Tracer.DebugProfile.NPFileReader=0 +# source: pattern://0ceb05c56644a59d648c13b9 +BC.Tracer.DebugProfile.NPPerfMeter=0 +# source: pattern://0ceb05c56644a59d648c13b9 +BC.Tracer.DebugProfile.NPLoadBalance=0 +# source: pattern://0ceb05c56644a59d648c13b9 +BC.Tracer.DebugProfile.NPCountryIpFlt=0 +# source: pattern://0ceb05c56644a59d648c13b9 +BC.Tracer.DebugProfile.WSInspFlt=0 diff --git a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/proxy-idp/var/opt/nevisproxy/default/host-auth.agov-w.azure.adnovum.net/WEB-INF/web.xml b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/proxy-idp/var/opt/nevisproxy/default/host-auth.agov-w.azure.adnovum.net/WEB-INF/web.xml index 2ed66cd..3b362ab 100644 --- a/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/proxy-idp/var/opt/nevisproxy/default/host-auth.agov-w.azure.adnovum.net/WEB-INF/web.xml +++ b/DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/proxy-idp/var/opt/nevisproxy/default/host-auth.agov-w.azure.adnovum.net/WEB-INF/web.xml @@ -707,7 +707,7 @@ DynamicRoleAcquire.CheckRoleRemoval - true + false @@ -752,7 +752,7 @@ DynamicRoleAcquire.CheckRoleRemoval - true + false