diff --git a/src/main/java/org/scribe/model/Request.java b/src/main/java/org/scribe/model/Request.java index e48578e21..ae6fd4109 100644 --- a/src/main/java/org/scribe/model/Request.java +++ b/src/main/java/org/scribe/model/Request.java @@ -108,12 +108,12 @@ Response doSend(RequestTuner tuner) throws IOException { connection.setReadTimeout(readTimeout.intValue()); } + tuner.tune(this); addHeaders(connection); if (verb.equals(Verb.PUT) || verb.equals(Verb.POST)) { addBody(connection, getByteBodyContents()); } - tuner.tune(this); return new Response(connection); } diff --git a/src/main/java/org/scribe/oauth/OAuth20ServiceImpl.java b/src/main/java/org/scribe/oauth/OAuth20ServiceImpl.java index 6262c3700..44fc9c80f 100644 --- a/src/main/java/org/scribe/oauth/OAuth20ServiceImpl.java +++ b/src/main/java/org/scribe/oauth/OAuth20ServiceImpl.java @@ -9,7 +9,9 @@ public class OAuth20ServiceImpl implements OAuthService private final DefaultApi20 api; private final OAuthConfig config; - + private static RequestTuner NOOP = new RequestTuner() { + @Override public void tune(Request _){} + }; /** * Default constructor * @@ -26,6 +28,13 @@ public OAuth20ServiceImpl(DefaultApi20 api, OAuthConfig config) * {@inheritDoc} */ public Token getAccessToken(Token requestToken, Verifier verifier) + { + return getAccessToken(requestToken,verifier,NOOP); + } + /** + * {@inheritDoc} + */ + public Token getAccessToken(Token requestToken, Verifier verifier, RequestTuner tuner) { OAuthRequest request = new OAuthRequest(api.getAccessTokenVerb(), api.getAccessTokenEndpoint()); request.addQuerystringParameter(OAuthConstants.CLIENT_ID, config.getApiKey()); @@ -33,10 +42,12 @@ public Token getAccessToken(Token requestToken, Verifier verifier) request.addQuerystringParameter(OAuthConstants.CODE, verifier.getValue()); request.addQuerystringParameter(OAuthConstants.REDIRECT_URI, config.getCallback()); if(config.hasScope()) request.addQuerystringParameter(OAuthConstants.SCOPE, config.getScope()); - Response response = request.send(); + Response response = request.send(tuner); return api.getAccessTokenExtractor().extract(response.getBody()); } - + + + /** * {@inheritDoc} */ @@ -44,6 +55,14 @@ public Token getRequestToken() { throw new UnsupportedOperationException("Unsupported operation, please use 'getAuthorizationUrl' and redirect your users there"); } + + /** + * {@inheritDoc} + */ + public Token getRequestToken(RequestTuner tuner) + { + throw new UnsupportedOperationException("Unsupported operation, please use 'getAuthorizationUrl' and redirect your users there"); + } /** * {@inheritDoc} diff --git a/src/main/java/org/scribe/oauth/OAuthService.java b/src/main/java/org/scribe/oauth/OAuthService.java index 0c9c57e9b..1975c64fe 100644 --- a/src/main/java/org/scribe/oauth/OAuthService.java +++ b/src/main/java/org/scribe/oauth/OAuthService.java @@ -18,6 +18,8 @@ public interface OAuthService */ public Token getRequestToken(); + public Token getRequestToken(RequestTuner tuner); + /** * Retrieve the access token * @@ -27,6 +29,8 @@ public interface OAuthService */ public Token getAccessToken(Token requestToken, Verifier verifier); + public Token getAccessToken(Token requestToken, Verifier verifier,RequestTuner tuner); + /** * Signs am OAuth request *