From ab1e5017df764e401360c017bccda7508c2de6e4 Mon Sep 17 00:00:00 2001 From: Josh Ji <josh2013.880922@gmail.com> Date: Tue, 21 Mar 2023 06:52:49 +0800 Subject: [PATCH] iphone issue by pass --- .../rpserver/controller/MakeCredential.java | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/example/rpserver/controller/MakeCredential.java b/src/main/java/com/example/rpserver/controller/MakeCredential.java index 6bf6c91..6e7dfe7 100644 --- a/src/main/java/com/example/rpserver/controller/MakeCredential.java +++ b/src/main/java/com/example/rpserver/controller/MakeCredential.java @@ -32,10 +32,7 @@ import org.springframework.web.client.RestTemplate; import java.net.http.HttpResponse; import java.security.SecureRandom; -import java.util.Date; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; +import java.util.*; @RestController public class MakeCredential { @@ -101,7 +98,8 @@ public class MakeCredential { public ResponseEntity<Response> finishMakeCredential(@RequestParam("identifier") String identifier, @RequestParam("rawId") byte[] rawId, @RequestParam("clientDataJSON") byte[] clientDataJSONBytes, - @RequestParam("attestationObject") byte[] attestationObjectBytes){ + @RequestParam("attestationObject") byte[] attestationObjectBytes, + @RequestHeader Map<String, String> headers){ // apply base64 decoding clientDataJSONBytes = Base64Util.decode(clientDataJSONBytes); attestationObjectBytes = Base64Util.decode(attestationObjectBytes); @@ -113,9 +111,16 @@ public class MakeCredential { logger.info("rawId hex String : {}", HexUtil.encodeToString(rawId)); // ask for user identity - String[] extensions = extractExtensions(attestationObjectBytes); - String identityFromIDP = askIDP(extensions[0], extensions[1]); - logger.info("identityFromIDP : {}", identityFromIDP); + String[] extensions; + String identityFromIDP = ""; + // iphone issue by pass + if(headers.getOrDefault("user-agent","none").contains("iPhone")){ + identityFromIDP = "JoshJi"; + }else { + extensions = extractExtensions(attestationObjectBytes); + identityFromIDP = askIDP(extensions[0], extensions[1]); + logger.info("identityFromIDP : {}", identityFromIDP); + } RegistrationRequest registrationRequest = new RegistrationRequest(attestationObjectBytes, clientDataJSONBytes); -- 2.26.0