From 6185d5020526846e20fd66a29af672a1f0d65135 Mon Sep 17 00:00:00 2001 From: Mahammed Taheer Date: Fri, 13 Dec 2024 13:21:12 +0530 Subject: [PATCH] [ES-1100] Fixed issue to return verified claims metadata as json string. Signed-off-by: Mahammed Taheer --- .../util/KeyBindedTokenMatcherUtilTest.java | 2 +- .../core/constant/IdAuthCommonConstants.java | 2 +- .../service/kyc/impl/KycServiceImpl.java | 19 ++++++++++++++----- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/authentication/authentication-common/src/test/java/io/mosip/authentication/common/service/util/KeyBindedTokenMatcherUtilTest.java b/authentication/authentication-common/src/test/java/io/mosip/authentication/common/service/util/KeyBindedTokenMatcherUtilTest.java index 6bfd363de7d..266e908def4 100644 --- a/authentication/authentication-common/src/test/java/io/mosip/authentication/common/service/util/KeyBindedTokenMatcherUtilTest.java +++ b/authentication/authentication-common/src/test/java/io/mosip/authentication/common/service/util/KeyBindedTokenMatcherUtilTest.java @@ -97,7 +97,7 @@ public void matchTestWithInValidCerts_thenFail() throws IdAuthenticationBusiness try { keyBindedTokenMatcherUtil.match(input, bindingCertificates, properties); }catch (IdAuthenticationBusinessException e){ - Assert.assertEquals("IDA-KBT-001",e.getErrorCode()); + Assert.assertEquals("IDA-KBT-002",e.getErrorCode()); } } diff --git a/authentication/authentication-core/src/main/java/io/mosip/authentication/core/constant/IdAuthCommonConstants.java b/authentication/authentication-core/src/main/java/io/mosip/authentication/core/constant/IdAuthCommonConstants.java index 8eaa307d01f..1285366a6b0 100644 --- a/authentication/authentication-core/src/main/java/io/mosip/authentication/core/constant/IdAuthCommonConstants.java +++ b/authentication/authentication-core/src/main/java/io/mosip/authentication/core/constant/IdAuthCommonConstants.java @@ -471,7 +471,7 @@ public final class IdAuthCommonConstants { public static final String VERIFIED_CLAIMS_ATTRIBS = "verifiedAttributes"; - public static final String NULL_CONST = "=null"; + public static final String NULL_CONST = "null"; public static final String COMMA_STRING = ","; diff --git a/authentication/authentication-service/src/main/java/io/mosip/authentication/service/kyc/impl/KycServiceImpl.java b/authentication/authentication-service/src/main/java/io/mosip/authentication/service/kyc/impl/KycServiceImpl.java index 728b89bef7d..a2d422fd7b0 100644 --- a/authentication/authentication-service/src/main/java/io/mosip/authentication/service/kyc/impl/KycServiceImpl.java +++ b/authentication/authentication-service/src/main/java/io/mosip/authentication/service/kyc/impl/KycServiceImpl.java @@ -813,11 +813,14 @@ public String buildVerifiedClaimsMetadata(String verifiedClaimsData, String oidc if (verifiedClaimsData.equals(EMPTY)) { mosipLogger.info(IdAuthCommonConstants.SESSION_ID, this.getClass().getSimpleName(), "buildVerifiedClaimsMetadata", "No Verified Claims data found for the id."); - return oidcClientAllowedVerifiedClaims.stream() - .map(md -> md.concat(NULL_CONST)) - .collect(Collectors.joining(COMMA_STRING)); + Map verifiedClaimsMap = new HashMap<>(); + oidcClientAllowedVerifiedClaims.stream() + .forEach(claim -> verifiedClaimsMap.put(claim, NULL_CONST)); + return convertMapToJsonString(verifiedClaimsMap); } + mosipLogger.info(IdAuthCommonConstants.SESSION_ID, this.getClass().getSimpleName(), + "buildVerifiedClaimsMetadata", "Verified Claims data found for the id."); JSONObject verifiedClaimJson = new JSONObject(verifiedClaimsData); Set verifiedClaimKeys = StreamSupport.stream(Spliterators.spliteratorUnknownSize( verifiedClaimJson.keys(), 0), @@ -835,15 +838,21 @@ public String buildVerifiedClaimsMetadata(String verifiedClaimsData, String oidc return Stream.empty(); }).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); - String verifiedClaimsStr = null; + Map verifiedClaimsMap = idAttribsMap.entrySet().stream().filter(e -> verifiedClaimKeys.contains(e.getKey())) .map(entry -> new Object[] {(Object)entry.getValue(), ((JSONArray)verifiedClaimJson.get(entry.getKey())).toList()}) .collect(Collectors.toMap(strArr -> strArr[0].toString(), strArr -> strArr[1])); oidcClientAllowedVerifiedClaims.stream().filter(claim -> !verifiedClaimsMap.keySet().contains(claim)) - .forEach(claim -> verifiedClaimsMap.put(claim, "null")); + .forEach(claim -> verifiedClaimsMap.put(claim, NULL_CONST)); + + return convertMapToJsonString(verifiedClaimsMap); + } + + private String convertMapToJsonString(Map verifiedClaimsMap) { + String verifiedClaimsStr = null; try { verifiedClaimsStr = mapper.writeValueAsString(verifiedClaimsMap); } catch (JsonProcessingException exp) {