From 7c90d1455ee39fedbcf084298c4038a28825975f Mon Sep 17 00:00:00 2001 From: Nils Behlen <29949516+nilsbehlen@users.noreply.github.com> Date: Fri, 28 Mar 2025 15:44:35 +0100 Subject: [PATCH] add enrollment link --- src/main/java/org/privacyidea/JSONParser.java | 12 ++++++------ src/main/java/org/privacyidea/PIConstants.java | 1 + src/main/java/org/privacyidea/PIResponse.java | 2 ++ 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/privacyidea/JSONParser.java b/src/main/java/org/privacyidea/JSONParser.java index 70ea860..c0b04e7 100644 --- a/src/main/java/org/privacyidea/JSONParser.java +++ b/src/main/java/org/privacyidea/JSONParser.java @@ -223,18 +223,18 @@ else if ("interactive".equals(modeFromResponse)) String message = getString(challenge, MESSAGE); String clientMode = getString(challenge, CLIENT_MODE); String image = getString(challenge, IMAGE); + String transactionID = getString(challenge, TRANSACTION_ID); String type = getString(challenge, TYPE); if (challenge.has(PASSKEY_REGISTRATION)) { response.passkeyRegistration = challenge.get(PASSKEY_REGISTRATION).toString(); - // TODO for passkey registration with enroll_via_multichallenge, the txid is probably in the wrong place - // as of 3.11.0 - if (response.transactionID == null || response.transactionID.isEmpty()) - { - response.transactionID = transactionID; - } + } + String link = getString(challenge, LINK); + if (response.enrollmentLink == null || response.enrollmentLink.isEmpty()) + { + response.enrollmentLink = link; } if (TOKEN_TYPE_WEBAUTHN.equals(type)) diff --git a/src/main/java/org/privacyidea/PIConstants.java b/src/main/java/org/privacyidea/PIConstants.java index efcd378..2d8abde 100644 --- a/src/main/java/org/privacyidea/PIConstants.java +++ b/src/main/java/org/privacyidea/PIConstants.java @@ -73,6 +73,7 @@ public class PIConstants public static final String ATTRIBUTES = "attributes"; public static final String DETAIL = "detail"; public static final String OTPLEN = "otplen"; + public static final String LINK = "link"; public static final String CODE = "code"; public static final String ERROR = "error"; public static final String STATUS = "status"; diff --git a/src/main/java/org/privacyidea/PIResponse.java b/src/main/java/org/privacyidea/PIResponse.java index fb15806..530d267 100644 --- a/src/main/java/org/privacyidea/PIResponse.java +++ b/src/main/java/org/privacyidea/PIResponse.java @@ -54,6 +54,8 @@ public class PIResponse public String passkeyChallenge = ""; public String passkeyRegistration = ""; public String username = ""; + public String enrollmentLink = ""; + public boolean authenticationSuccessful() {