From 88b765f39ad3862c99dbbe89ea6b0006e6668180 Mon Sep 17 00:00:00 2001 From: derek Date: Sat, 12 Feb 2022 14:08:49 -0500 Subject: [PATCH] Add ability to pass custom parameters into refresh token request --- .../scribejava/core/oauth/OAuth20Service.java | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/scribejava-core/src/main/java/com/github/scribejava/core/oauth/OAuth20Service.java b/scribejava-core/src/main/java/com/github/scribejava/core/oauth/OAuth20Service.java index 82052e351..5ccd14721 100644 --- a/scribejava-core/src/main/java/com/github/scribejava/core/oauth/OAuth20Service.java +++ b/scribejava-core/src/main/java/com/github/scribejava/core/oauth/OAuth20Service.java @@ -255,8 +255,14 @@ public Future getAccessToken(String code, return getAccessToken(AccessTokenRequestParams.create(code), callback); } - // ===== refresh AccessToken methods ===== + protected OAuthRequest createRefreshTokenRequest(String refreshToken, String scope) { + return createRefreshTokenRequest(refreshToken, scope, null); + } + + // ===== refresh AccessToken methods ===== + protected OAuthRequest createRefreshTokenRequest(String refreshToken, String scope, + Map additionalParams) { if (refreshToken == null || refreshToken.isEmpty()) { throw new IllegalArgumentException("The refreshToken cannot be null or empty"); } @@ -273,6 +279,12 @@ protected OAuthRequest createRefreshTokenRequest(String refreshToken, String sco request.addParameter(OAuthConstants.REFRESH_TOKEN, refreshToken); request.addParameter(OAuthConstants.GRANT_TYPE, OAuthConstants.REFRESH_TOKEN); + if (additionalParams != null && !additionalParams.isEmpty()) { + for (Map.Entry entry : additionalParams.entrySet()) { + request.addParameter(entry.getKey(), entry.getValue()); + } + } + logRequestWithParams("refresh token", request); return request; @@ -283,7 +295,7 @@ public Future refreshAccessTokenAsync(String refreshToken) { } public Future refreshAccessTokenAsync(String refreshToken, String scope) { - return refreshAccessToken(refreshToken, scope, null); + return refreshAccessToken(refreshToken, scope, (OAuthAsyncRequestCallback) null); } public OAuth2AccessToken refreshAccessToken(String refreshToken) @@ -293,7 +305,12 @@ public OAuth2AccessToken refreshAccessToken(String refreshToken) public OAuth2AccessToken refreshAccessToken(String refreshToken, String scope) throws IOException, InterruptedException, ExecutionException { - final OAuthRequest request = createRefreshTokenRequest(refreshToken, scope); + return refreshAccessToken(refreshToken, scope, (Map) null); + } + + public OAuth2AccessToken refreshAccessToken(String refreshToken, String scope, Map additionalParams) + throws IOException, InterruptedException, ExecutionException { + final OAuthRequest request = createRefreshTokenRequest(refreshToken, scope, additionalParams); return sendAccessTokenRequestSync(request); }