From fa6fb649d56e046d6611eed9c346f8c81409e833 Mon Sep 17 00:00:00 2001 From: Timothy Lee Date: Thu, 6 Jun 2013 20:30:03 -0700 Subject: [PATCH 1/6] Create OAuthBaseRequest to allow other request implementations to be signed by Scribe. --- .../OAuthParametersMissingException.java | 4 ++-- .../extractors/BaseStringExtractor.java | 8 ++++---- .../extractors/BaseStringExtractorImpl.java | 6 +++--- .../scribe/extractors/HeaderExtractor.java | 4 ++-- .../extractors/HeaderExtractorImpl.java | 4 ++-- .../org/scribe/model/OAuthBaseRequest.java | 19 +++++++++++++++++++ .../java/org/scribe/model/OAuthRequest.java | 2 +- .../org/scribe/oauth/OAuth10aServiceImpl.java | 8 ++++---- .../org/scribe/oauth/OAuth20ServiceImpl.java | 2 +- .../java/org/scribe/oauth/OAuthService.java | 2 +- 10 files changed, 39 insertions(+), 20 deletions(-) create mode 100644 src/main/java/org/scribe/model/OAuthBaseRequest.java diff --git a/src/main/java/org/scribe/exceptions/OAuthParametersMissingException.java b/src/main/java/org/scribe/exceptions/OAuthParametersMissingException.java index 8407ce493..8510e289b 100644 --- a/src/main/java/org/scribe/exceptions/OAuthParametersMissingException.java +++ b/src/main/java/org/scribe/exceptions/OAuthParametersMissingException.java @@ -17,9 +17,9 @@ public class OAuthParametersMissingException extends OAuthException /** * Default constructor. * - * @param request OAuthRequest that caused the error + * @param request OAuthBaseRequest that caused the error */ - public OAuthParametersMissingException(OAuthRequest request) + public OAuthParametersMissingException(OAuthBaseRequest request) { super(String.format(MSG, request)); } diff --git a/src/main/java/org/scribe/extractors/BaseStringExtractor.java b/src/main/java/org/scribe/extractors/BaseStringExtractor.java index 83ddd10fc..e29712c4e 100644 --- a/src/main/java/org/scribe/extractors/BaseStringExtractor.java +++ b/src/main/java/org/scribe/extractors/BaseStringExtractor.java @@ -3,19 +3,19 @@ import org.scribe.model.*; /** - * Simple command object that extracts a base string from a {@link OAuthRequest} + * Simple command object that extracts a base string from a {@link OAuthBaseRequest} * * @author Pablo Fernandez */ public interface BaseStringExtractor { /** - * Extracts an url-encoded base string from the {@link OAuthRequest}. + * Extracts an url-encoded base string from the {@link OAuthBaseRequest}. * * See the oauth spec for more info on this. * - * @param request the OAuthRequest + * @param request the OAuthBaseRequest * @return the url-encoded base string */ - String extract(OAuthRequest request); + String extract(OAuthBaseRequest request); } diff --git a/src/main/java/org/scribe/extractors/BaseStringExtractorImpl.java b/src/main/java/org/scribe/extractors/BaseStringExtractorImpl.java index 5e28ce276..c1331eb0e 100644 --- a/src/main/java/org/scribe/extractors/BaseStringExtractorImpl.java +++ b/src/main/java/org/scribe/extractors/BaseStringExtractorImpl.java @@ -18,7 +18,7 @@ public class BaseStringExtractorImpl implements BaseStringExtractor /** * {@inheritDoc} */ - public String extract(OAuthRequest request) + public String extract(OAuthBaseRequest request) { checkPreconditions(request); String verb = OAuthEncoder.encode(request.getVerb().name()); @@ -27,7 +27,7 @@ public String extract(OAuthRequest request) return String.format(AMPERSAND_SEPARATED_STRING, verb, url, params); } - private String getSortedAndEncodedParams(OAuthRequest request) + private String getSortedAndEncodedParams(OAuthBaseRequest request) { ParameterList params = new ParameterList(); params.addAll(request.getQueryStringParams()); @@ -36,7 +36,7 @@ private String getSortedAndEncodedParams(OAuthRequest request) return params.sort().asOauthBaseString(); } - private void checkPreconditions(OAuthRequest request) + private void checkPreconditions(OAuthBaseRequest request) { Preconditions.checkNotNull(request, "Cannot extract base string from a null object"); diff --git a/src/main/java/org/scribe/extractors/HeaderExtractor.java b/src/main/java/org/scribe/extractors/HeaderExtractor.java index 2bc1f8bd4..1dad6c76d 100644 --- a/src/main/java/org/scribe/extractors/HeaderExtractor.java +++ b/src/main/java/org/scribe/extractors/HeaderExtractor.java @@ -12,8 +12,8 @@ public interface HeaderExtractor /** * Generates an OAuth 'Authorization' Http header to include in requests as the signature. * - * @param request the OAuthRequest to inspect and generate the header + * @param request the OAuthBaseRequest to inspect and generate the header * @return the Http header value */ - String extract(OAuthRequest request); + String extract(OAuthBaseRequest request); } diff --git a/src/main/java/org/scribe/extractors/HeaderExtractorImpl.java b/src/main/java/org/scribe/extractors/HeaderExtractorImpl.java index 85f452640..c27488991 100644 --- a/src/main/java/org/scribe/extractors/HeaderExtractorImpl.java +++ b/src/main/java/org/scribe/extractors/HeaderExtractorImpl.java @@ -21,7 +21,7 @@ public class HeaderExtractorImpl implements HeaderExtractor /** * {@inheritDoc} */ - public String extract(OAuthRequest request) + public String extract(OAuthBaseRequest request) { checkPreconditions(request); Map parameters = request.getOauthParameters(); @@ -45,7 +45,7 @@ public String extract(OAuthRequest request) return header.toString(); } - private void checkPreconditions(OAuthRequest request) + private void checkPreconditions(OAuthBaseRequest request) { Preconditions.checkNotNull(request, "Cannot extract a header from a null object"); diff --git a/src/main/java/org/scribe/model/OAuthBaseRequest.java b/src/main/java/org/scribe/model/OAuthBaseRequest.java new file mode 100644 index 000000000..96969cc34 --- /dev/null +++ b/src/main/java/org/scribe/model/OAuthBaseRequest.java @@ -0,0 +1,19 @@ +package org.scribe.model; + +import java.util.Map; + +public interface OAuthBaseRequest { + + public void addOAuthParameter(String key, String value); + public Map getOauthParameters(); + + public String getCompleteUrl(); + public void addHeader(String key, String value); + public void addQuerystringParameter(String key, String value); + public String getSanitizedUrl(); + public ParameterList getQueryStringParams(); + public Verb getVerb(); + public ParameterList getBodyParams(); + + public String toString(); +} diff --git a/src/main/java/org/scribe/model/OAuthRequest.java b/src/main/java/org/scribe/model/OAuthRequest.java index 8d241a4c0..9f0978a11 100644 --- a/src/main/java/org/scribe/model/OAuthRequest.java +++ b/src/main/java/org/scribe/model/OAuthRequest.java @@ -9,7 +9,7 @@ * * @author Pablo Fernandez */ -public class OAuthRequest extends Request +public class OAuthRequest extends Request implements OAuthBaseRequest { private static final String OAUTH_PREFIX = "oauth_"; private Map oauthParameters; diff --git a/src/main/java/org/scribe/oauth/OAuth10aServiceImpl.java b/src/main/java/org/scribe/oauth/OAuth10aServiceImpl.java index 2b207f566..f44eba705 100644 --- a/src/main/java/org/scribe/oauth/OAuth10aServiceImpl.java +++ b/src/main/java/org/scribe/oauth/OAuth10aServiceImpl.java @@ -64,7 +64,7 @@ public Token getRequestToken(RequestTuner tuner) return api.getRequestTokenExtractor().extract(body); } - private void addOAuthParams(OAuthRequest request, Token token) + private void addOAuthParams(OAuthBaseRequest request, Token token) { request.addOAuthParameter(OAuthConstants.TIMESTAMP, api.getTimestampService().getTimestampInSeconds()); request.addOAuthParameter(OAuthConstants.NONCE, api.getTimestampService().getNonce()); @@ -113,7 +113,7 @@ public Token getAccessToken(Token requestToken, Verifier verifier, RequestTuner /** * {@inheritDoc} */ - public void signRequest(Token token, OAuthRequest request) + public void signRequest(Token token, OAuthBaseRequest request) { config.log("signing request: " + request.getCompleteUrl()); @@ -143,7 +143,7 @@ public String getAuthorizationUrl(Token requestToken) return api.getAuthorizationUrl(requestToken); } - private String getSignature(OAuthRequest request, Token token) + private String getSignature(OAuthBaseRequest request, Token token) { config.log("generating signature..."); config.log("using base64 encoder: " + Base64Encoder.type()); @@ -155,7 +155,7 @@ private String getSignature(OAuthRequest request, Token token) return signature; } - private void appendSignature(OAuthRequest request) + private void appendSignature(OAuthBaseRequest request) { switch (config.getSignatureType()) { diff --git a/src/main/java/org/scribe/oauth/OAuth20ServiceImpl.java b/src/main/java/org/scribe/oauth/OAuth20ServiceImpl.java index 6262c3700..695eebfa8 100644 --- a/src/main/java/org/scribe/oauth/OAuth20ServiceImpl.java +++ b/src/main/java/org/scribe/oauth/OAuth20ServiceImpl.java @@ -56,7 +56,7 @@ public String getVersion() /** * {@inheritDoc} */ - public void signRequest(Token accessToken, OAuthRequest request) + public void signRequest(Token accessToken, OAuthBaseRequest request) { request.addQuerystringParameter(OAuthConstants.ACCESS_TOKEN, accessToken.getToken()); } diff --git a/src/main/java/org/scribe/oauth/OAuthService.java b/src/main/java/org/scribe/oauth/OAuthService.java index 0c9c57e9b..58f21e942 100644 --- a/src/main/java/org/scribe/oauth/OAuthService.java +++ b/src/main/java/org/scribe/oauth/OAuthService.java @@ -33,7 +33,7 @@ public interface OAuthService * @param accessToken access token (obtained previously) * @param request request to sign */ - public void signRequest(Token accessToken, OAuthRequest request); + public void signRequest(Token accessToken, OAuthBaseRequest request); /** * Returns the OAuth version of the service. From 3ef527493bb9de6a0c9c00316dea5360827fb68e Mon Sep 17 00:00:00 2001 From: Nathan Esquenazi Date: Thu, 6 Jun 2013 23:01:14 -0700 Subject: [PATCH 2/6] Adds javadocs to the interface OAuthBaseRequest --- .../org/scribe/model/OAuthBaseRequest.java | 59 ++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/scribe/model/OAuthBaseRequest.java b/src/main/java/org/scribe/model/OAuthBaseRequest.java index 96969cc34..0da6a0718 100644 --- a/src/main/java/org/scribe/model/OAuthBaseRequest.java +++ b/src/main/java/org/scribe/model/OAuthBaseRequest.java @@ -3,16 +3,73 @@ import java.util.Map; public interface OAuthBaseRequest { - + /** + * Adds an OAuth parameter. + * + * @param key name of the parameter + * @param value value of the parameter + * + * @throws IllegalArgumentException if the parameter is not an OAuth parameter + */ public void addOAuthParameter(String key, String value); + + /** + * Returns the {@link Map} containing the key-value pair of parameters. + * + * @return parameters as map + */ public Map getOauthParameters(); + /** + * Returns the complete url (host + resource + encoded querystring parameters). + * + * @return the complete url. + */ public String getCompleteUrl(); + + /** + * Add an HTTP Header to the Request + * + * @param key the header name + * @param value the header value + */ public void addHeader(String key, String value); + + /** + * Add a QueryString parameter + * + * @param key the parameter name + * @param value the parameter value + */ public void addQuerystringParameter(String key, String value); + + /** + * Returns the URL without the port and the query string part. + * + * @return the OAuth-sanitized URL + */ public String getSanitizedUrl(); + + /** + * Get a {@link ParameterList} with the query string parameters. + * + * @return a {@link ParameterList} containing the query string parameters. + * @throws OAuthException if the request URL is not valid. + */ public ParameterList getQueryStringParams(); + + /** + * Returns the HTTP Verb + * + * @return the verb + */ public Verb getVerb(); + + /** + * Obtains a {@link ParameterList} of the body parameters. + * + * @return a {@link ParameterList}containing the body parameters. + */ public ParameterList getBodyParams(); public String toString(); From db6bfcce7cc8f0ceae8a72285ba44306c0e869bc Mon Sep 17 00:00:00 2001 From: Nathan Esquenazi Date: Sat, 8 Jun 2013 10:38:48 -0600 Subject: [PATCH 3/6] Remove toString from OAuthBaseRequest --- src/main/java/org/scribe/model/OAuthBaseRequest.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/org/scribe/model/OAuthBaseRequest.java b/src/main/java/org/scribe/model/OAuthBaseRequest.java index 0da6a0718..1d0cb7365 100644 --- a/src/main/java/org/scribe/model/OAuthBaseRequest.java +++ b/src/main/java/org/scribe/model/OAuthBaseRequest.java @@ -71,6 +71,4 @@ public interface OAuthBaseRequest { * @return a {@link ParameterList}containing the body parameters. */ public ParameterList getBodyParams(); - - public String toString(); } From 0fb9ba8cbed79b5e78ada95a8f215db547bd212b Mon Sep 17 00:00:00 2001 From: Nathan Esquenazi Date: Sun, 19 Jan 2014 16:36:32 -0800 Subject: [PATCH 4/6] Add getRealm to BaseRequest --- pom.xml | 11 +---------- src/main/java/org/scribe/model/OAuthBaseRequest.java | 5 +++++ 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/pom.xml b/pom.xml index ac6ed35ce..c2e321764 100644 --- a/pom.xml +++ b/pom.xml @@ -125,16 +125,7 @@ findbugs-maven-plugin 3.0.0 - - failing-on-high - compile - - check - - - Low - - + diff --git a/src/main/java/org/scribe/model/OAuthBaseRequest.java b/src/main/java/org/scribe/model/OAuthBaseRequest.java index 1d0cb7365..009176f12 100644 --- a/src/main/java/org/scribe/model/OAuthBaseRequest.java +++ b/src/main/java/org/scribe/model/OAuthBaseRequest.java @@ -71,4 +71,9 @@ public interface OAuthBaseRequest { * @return a {@link ParameterList}containing the body parameters. */ public ParameterList getBodyParams(); + + /** + * Returns a realm + */ + public String getRealm(); } From 16bd596dcf3440df4addc2b90b56a068c828911a Mon Sep 17 00:00:00 2001 From: Nathan Esquenazi Date: Mon, 20 Jan 2014 01:40:20 -0800 Subject: [PATCH 5/6] Add jardesc --- jarbuilder.jardesc | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 jarbuilder.jardesc diff --git a/jarbuilder.jardesc b/jarbuilder.jardesc new file mode 100644 index 000000000..da8a13412 --- /dev/null +++ b/jarbuilder.jardesc @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + From b51ec8bcb0d34d0d80fe013a7a7f538038db1c78 Mon Sep 17 00:00:00 2001 From: Nathan Esquenazi Date: Mon, 20 Jan 2014 01:43:27 -0800 Subject: [PATCH 6/6] Tweak desc --- jarbuilder.jardesc | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/jarbuilder.jardesc b/jarbuilder.jardesc index da8a13412..c74cbcb92 100644 --- a/jarbuilder.jardesc +++ b/jarbuilder.jardesc @@ -11,18 +11,16 @@ - - - - - - - + + + + +