Skip to content

Commit 665092d

Browse files
committed
Merge branch 'issue-793-client-credentials-support' of https://github.com/vivin/scribejava into vivin-issue-793-client-credentials-support
2 parents 82f3833 + 5237697 commit 665092d

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

scribejava-core/src/main/java/com/github/scribejava/core/model/OAuthConstants.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public interface OAuthConstants {
3232
String REFRESH_TOKEN = "refresh_token";
3333
String GRANT_TYPE = "grant_type";
3434
String AUTHORIZATION_CODE = "authorization_code";
35+
String CLIENT_CREDENTIALS = "client_credentials";
3536
String STATE = "state";
3637
String USERNAME = "username";
3738
String PASSWORD = "password";

scribejava-core/src/main/java/com/github/scribejava/core/oauth/OAuth20Service.java

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,47 @@ protected OAuthRequest createAccessTokenPasswordGrantRequest(String username, St
192192
return request;
193193
}
194194

195+
public final Future<OAuth2AccessToken> getAccessTokenClientCredentialsGrantAsync() {
196+
return getAccessTokenClientCredentialsGrant(null);
197+
}
198+
199+
public final OAuth2AccessToken getAccessTokenClientCredentialsGrant()
200+
throws IOException, InterruptedException, ExecutionException {
201+
final OAuthRequest request = createAccessTokenClientCredentialsGrantRequest();
202+
203+
return sendAccessTokenRequestSync(request);
204+
}
205+
206+
/**
207+
* Start the request to retrieve the access token using client-credentials grant. The optionally provided callback
208+
* will be called with the Token when it is available.
209+
*
210+
* @param callback optional callback
211+
* @return Future
212+
*/
213+
public final Future<OAuth2AccessToken> getAccessTokenClientCredentialsGrant(
214+
OAuthAsyncRequestCallback<OAuth2AccessToken> callback) {
215+
final OAuthRequest request = createAccessTokenClientCredentialsGrantRequest();
216+
217+
return sendAccessTokenRequestAsync(request, callback);
218+
}
219+
220+
protected OAuthRequest createAccessTokenClientCredentialsGrantRequest() {
221+
final OAuthRequest request = new OAuthRequest(api.getAccessTokenVerb(), api.getAccessTokenEndpoint());
222+
final OAuthConfig config = getConfig();
223+
request.addParameter(OAuthConstants.CLIENT_ID, config.getApiKey());
224+
final String apiSecret = config.getApiSecret();
225+
if (apiSecret != null) {
226+
request.addParameter(OAuthConstants.CLIENT_SECRET, apiSecret);
227+
}
228+
final String scope = config.getScope();
229+
if (scope != null) {
230+
request.addParameter(OAuthConstants.SCOPE, scope);
231+
}
232+
request.addParameter(OAuthConstants.GRANT_TYPE, OAuthConstants.CLIENT_CREDENTIALS);
233+
return request;
234+
}
235+
195236
/**
196237
* {@inheritDoc}
197238
*/

0 commit comments

Comments
 (0)