From fc03e5c0a810b5d92ca56130f9102c73d2b70bed Mon Sep 17 00:00:00 2001 From: themanojshukla Date: Sun, 5 Nov 2023 20:11:39 +0530 Subject: [PATCH 1/3] Option to access raw token response by client A method is added to `JsonAccessToken.java` that returns a deep cloned raw JSON response, as received from the OAuth provider. --- .../dmfs/oauth2/client/tokens/JsonAccessToken.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/java/org/dmfs/oauth2/client/tokens/JsonAccessToken.java b/src/main/java/org/dmfs/oauth2/client/tokens/JsonAccessToken.java index 36b2f51..83d0ef4 100644 --- a/src/main/java/org/dmfs/oauth2/client/tokens/JsonAccessToken.java +++ b/src/main/java/org/dmfs/oauth2/client/tokens/JsonAccessToken.java @@ -135,6 +135,19 @@ public Optional extraParameter(final String parameterName) return new NullSafe<>(mTokenResponse.optString(parameterName, null)); } + /** + * Returns the raw token response given by OAuth provider. + * + * @param executor + * An {@link HttpRequestExecutor} to execute the request. + * + * @return An {@link org.json.JSONObject}. + * + */ + public JSONObject rawResponse() + { + return new JSONObject(mTokenResponse.toMap()); + } /** * A {@link Function} which converts a String into an {@link OAuth2Scope}. From 771aee88d05b1fa9cfef198509460ac15807b5e9 Mon Sep 17 00:00:00 2001 From: themanojshukla Date: Thu, 9 Nov 2023 21:13:44 +0530 Subject: [PATCH 2/3] Fix documentation and build failure --- .../java/org/dmfs/oauth2/client/tokens/JsonAccessToken.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/main/java/org/dmfs/oauth2/client/tokens/JsonAccessToken.java b/src/main/java/org/dmfs/oauth2/client/tokens/JsonAccessToken.java index 83d0ef4..5793d83 100644 --- a/src/main/java/org/dmfs/oauth2/client/tokens/JsonAccessToken.java +++ b/src/main/java/org/dmfs/oauth2/client/tokens/JsonAccessToken.java @@ -138,9 +138,6 @@ public Optional extraParameter(final String parameterName) /** * Returns the raw token response given by OAuth provider. * - * @param executor - * An {@link HttpRequestExecutor} to execute the request. - * * @return An {@link org.json.JSONObject}. * */ From 646308da4cdd8b38c0a93f7a08737346f31ca0d4 Mon Sep 17 00:00:00 2001 From: themanojshukla Date: Tue, 12 Mar 2024 19:49:30 +0530 Subject: [PATCH 3/3] Add testcase to assert rawResponse --- .../dmfs/oauth2/client/tokens/JsonAccessTokenTest.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/test/java/org/dmfs/oauth2/client/tokens/JsonAccessTokenTest.java b/src/test/java/org/dmfs/oauth2/client/tokens/JsonAccessTokenTest.java index 66ca2ec..2bf30f4 100644 --- a/src/test/java/org/dmfs/oauth2/client/tokens/JsonAccessTokenTest.java +++ b/src/test/java/org/dmfs/oauth2/client/tokens/JsonAccessTokenTest.java @@ -62,6 +62,15 @@ public void testCustomPayload() throws Exception .extraParameter("idToken"), is(present(Matchers.hasToString("id_token_value")))); } + @Test + public void testRawResponse() throws Exception + { + JSONObject originalJsonObject = new JSONObject("{\"idToken\":\"id_token_value\"}"); + assertThat(new JsonAccessToken(originalJsonObject, dummy(OAuth2Scope.class)) + .rawResponse(), is(originalJsonObject))); + } + + @Test public void testCustomPayloadWithNonExistingParameter() throws Exception