From cf2add98d91d64fe3e168c1605980dcfa788f931 Mon Sep 17 00:00:00 2001 From: YuriyZ Date: Tue, 24 Jan 2023 12:32:44 +0200 Subject: [PATCH] fix(jans-auth-server): corrected issue caught by RegisterRequestTest #3683 --- .../io/jans/as/client/RegisterRequest.java | 40 ++++++++----------- .../as/client/client/RegisterRequestTest.java | 2 +- 2 files changed, 17 insertions(+), 25 deletions(-) diff --git a/jans-auth-server/client/src/main/java/io/jans/as/client/RegisterRequest.java b/jans-auth-server/client/src/main/java/io/jans/as/client/RegisterRequest.java index efa18a11193..85b631ef6bb 100644 --- a/jans-auth-server/client/src/main/java/io/jans/as/client/RegisterRequest.java +++ b/jans-auth-server/client/src/main/java/io/jans/as/client/RegisterRequest.java @@ -1872,30 +1872,16 @@ public void getParameters(BiFunction function) { if (spontaneousScopes != null && !spontaneousScopes.isEmpty()) { function.apply(SPONTANEOUS_SCOPES.toString(), implode(spontaneousScopes, " ")); } - if (additionalAudience != null && !additionalAudience.isEmpty()) { - function.apply(ADDITIONAL_AUDIENCE.toString(), implode(additionalAudience, " ")); - } - if (spontaneousScopeScriptDns != null && !spontaneousScopeScriptDns.isEmpty()) { - function.apply(SPONTANEOUS_SCOPE_SCRIPT_DNS.toString(), implode(spontaneousScopeScriptDns, " ")); - } - if (updateTokenScriptDns != null && !updateTokenScriptDns.isEmpty()) { - function.apply(UPDATE_TOKEN_SCRIPT_DNS.toString(), implode(updateTokenScriptDns, " ")); - } - if (postAuthnScriptDns != null && !postAuthnScriptDns.isEmpty()) { - function.apply(POST_AUTHN_SCRIPT_DNS.toString(), implode(postAuthnScriptDns, " ")); - } - if (consentGatheringScriptDns != null && !consentGatheringScriptDns.isEmpty()) { - function.apply(CONSENT_GATHERING_SCRIPT_DNS.toString(), implode(consentGatheringScriptDns, " ")); - } - if (introspectionScriptDns != null && !introspectionScriptDns.isEmpty()) { - function.apply(INTROSPECTION_SCRIPT_DNS.toString(), implode(introspectionScriptDns, " ")); - } - if (rptClaimsScriptDns != null && !rptClaimsScriptDns.isEmpty()) { - function.apply(RPT_CLAIMS_SCRIPT_DNS.toString(), implode(rptClaimsScriptDns, " ")); - } - if (ropcScriptDns != null && !ropcScriptDns.isEmpty()) { - function.apply(ROPC_SCRIPT_DNS.toString(), implode(ropcScriptDns, " ")); - } + + applyArray(function, ADDITIONAL_AUDIENCE, additionalAudience); + applyArray(function, SPONTANEOUS_SCOPE_SCRIPT_DNS, spontaneousScopeScriptDns); + applyArray(function, UPDATE_TOKEN_SCRIPT_DNS, updateTokenScriptDns); + applyArray(function, POST_AUTHN_SCRIPT_DNS, postAuthnScriptDns); + applyArray(function, CONSENT_GATHERING_SCRIPT_DNS, consentGatheringScriptDns); + applyArray(function, INTROSPECTION_SCRIPT_DNS, introspectionScriptDns); + applyArray(function, RPT_CLAIMS_SCRIPT_DNS, rptClaimsScriptDns); + applyArray(function, ROPC_SCRIPT_DNS, ropcScriptDns); + if (runIntrospectionScriptBeforeJwtCreation != null) { function.apply(RUN_INTROSPECTION_SCRIPT_BEFORE_JWT_CREATION.toString(), runIntrospectionScriptBeforeJwtCreation.toString()); } @@ -1938,6 +1924,12 @@ public void getParameters(BiFunction function) { } } + private static void applyArray(BiFunction function, RegisterRequestParam key, List list) { + if (list != null && !list.isEmpty()) { + function.apply(key.toString(), toJSONArray(list)); + } + } + public JSONObject getJsonObject() { return jsonObject; } diff --git a/jans-auth-server/client/src/test/java/io/jans/as/client/client/RegisterRequestTest.java b/jans-auth-server/client/src/test/java/io/jans/as/client/client/RegisterRequestTest.java index e282c45e3ac..e2ba531bf22 100644 --- a/jans-auth-server/client/src/test/java/io/jans/as/client/client/RegisterRequestTest.java +++ b/jans-auth-server/client/src/test/java/io/jans/as/client/client/RegisterRequestTest.java @@ -45,7 +45,7 @@ public void getJSONParametersForAdditionalAudienceShouldReturnCorrectValue() { RegisterRequest request = new RegisterRequest(); request.setAdditionalAudience(Lists.newArrayList("aud1", "aud2")); - assertEquals(Lists.newArrayList("aud1", "aud2"), request.getJSONParameters().get("additional_audience")); + assertEquals(Lists.newArrayList("aud1", "aud2"), ((JSONArray) request.getJSONParameters().get("additional_audience")).toList()); } @Test