Class AbstractOAuthConsumer
- java.lang.Object
-
- oauth.signpost.AbstractOAuthConsumer
-
- All Implemented Interfaces:
Serializable
,OAuthConsumer
- Direct Known Subclasses:
CommonsHttpOAuthConsumer
,DefaultOAuthConsumer
public abstract class AbstractOAuthConsumer extends Object implements OAuthConsumer
ABC for consumer implementations. If you're developing a custom consumer you will probably inherit from this class to save you a lot of work.- Author:
- Matthias Kaeppler
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description AbstractOAuthConsumer(String consumerKey, String consumerSecret)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
collectBodyParameters(HttpRequest request, HttpParameters out)
Collects x-www-form-urlencoded body parameters as per OAuth Core 1.0 spec section 9.1.1protected void
collectHeaderParameters(HttpRequest request, HttpParameters out)
Collects OAuth Authorization header parameters as per OAuth Core 1.0 spec section 9.1.1protected void
collectQueryParameters(HttpRequest request, HttpParameters out)
Collects HTTP GET query string parameters as per OAuth Core 1.0 spec section 9.1.1protected void
completeOAuthParameters(HttpParameters out)
Helper method that adds any OAuth parameters to the given request parameters which are missing from the current request but required for signing.protected String
generateNonce()
protected String
generateTimestamp()
String
getConsumerKey()
String
getConsumerSecret()
HttpParameters
getRequestParameters()
Returns all parameters collected from the HTTP request during message signing (this means the return value may be NULL before a call toOAuthConsumer.sign(oauth.signpost.http.HttpRequest)
), plus all required OAuth parameters that were added because the request didn't contain them beforehand.String
getToken()
String
getTokenSecret()
void
setAdditionalParameters(HttpParameters additionalParameters)
Allows you to add parameters (typically OAuth parameters such as oauth_callback or oauth_verifier) which will go directly into the signer, i.e.void
setMessageSigner(OAuthMessageSigner messageSigner)
Sets the message signer that should be used to generate the OAuth signature.void
setSendEmptyTokens(boolean enable)
Causes the consumer to always include the oauth_token parameter to be sent, even if blank.void
setSigningStrategy(SigningStrategy signingStrategy)
Defines which strategy should be used to write a signature to an HTTP request.void
setTokenWithSecret(String token, String tokenSecret)
Sets the OAuth token and token secret used for message signing.HttpRequest
sign(Object request)
Signs the given HTTP request by writing an OAuth signature (and other required OAuth parameters) to it.String
sign(String url)
"Signs" the given URL by appending all OAuth parameters to it which are required for message signing.HttpRequest
sign(HttpRequest request)
Signs the given HTTP request by writing an OAuth signature (and other required OAuth parameters) to it.protected abstract HttpRequest
wrap(Object request)
Adapts the given request object to a SignpostHttpRequest
.
-
-
-
Method Detail
-
setMessageSigner
public void setMessageSigner(OAuthMessageSigner messageSigner)
Description copied from interface:OAuthConsumer
Sets the message signer that should be used to generate the OAuth signature.- Specified by:
setMessageSigner
in interfaceOAuthConsumer
- Parameters:
messageSigner
- the signer- See Also:
HmacSha1MessageSigner
,PlainTextMessageSigner
-
setSigningStrategy
public void setSigningStrategy(SigningStrategy signingStrategy)
Description copied from interface:OAuthConsumer
Defines which strategy should be used to write a signature to an HTTP request.- Specified by:
setSigningStrategy
in interfaceOAuthConsumer
- Parameters:
signingStrategy
- the strategy- See Also:
AuthorizationHeaderSigningStrategy
,QueryStringSigningStrategy
-
setAdditionalParameters
public void setAdditionalParameters(HttpParameters additionalParameters)
Description copied from interface:OAuthConsumer
Allows you to add parameters (typically OAuth parameters such as oauth_callback or oauth_verifier) which will go directly into the signer, i.e. you don't have to put them into the request first. The consumer'sSigningStrategy
will then take care of writing them to the correct part of the request before it is sent. This is useful if you want to pre-set custom OAuth parameters. Note that these parameters are expected to already be percent encoded -- they will be simply merged as-is. BE CAREFUL WITH THIS METHOD! Your service provider may decide to ignore any non-standard OAuth params when computing the signature.- Specified by:
setAdditionalParameters
in interfaceOAuthConsumer
- Parameters:
additionalParameters
- the parameters
-
sign
public HttpRequest sign(HttpRequest request) throws OAuthMessageSignerException, OAuthExpectationFailedException, OAuthCommunicationException
Description copied from interface:OAuthConsumer
Signs the given HTTP request by writing an OAuth signature (and other required OAuth parameters) to it. Where these parameters are written depends on the currentSigningStrategy
.- Specified by:
sign
in interfaceOAuthConsumer
- Parameters:
request
- the request to sign- Returns:
- the request object passed as an argument
- Throws:
OAuthMessageSignerException
OAuthExpectationFailedException
OAuthCommunicationException
-
sign
public HttpRequest sign(Object request) throws OAuthMessageSignerException, OAuthExpectationFailedException, OAuthCommunicationException
Description copied from interface:OAuthConsumer
Signs the given HTTP request by writing an OAuth signature (and other required OAuth parameters) to it. Where these parameters are written depends on the current
This method accepts HTTP library specific request objects; the consumer implementation must ensure that only those request types are passed which it supports.SigningStrategy
.- Specified by:
sign
in interfaceOAuthConsumer
- Parameters:
request
- the request to sign- Returns:
- the request object passed as an argument
- Throws:
OAuthMessageSignerException
OAuthExpectationFailedException
OAuthCommunicationException
-
sign
public String sign(String url) throws OAuthMessageSignerException, OAuthExpectationFailedException, OAuthCommunicationException
Description copied from interface:OAuthConsumer
"Signs" the given URL by appending all OAuth parameters to it which are required for message signing. The assumed HTTP method is GET. Essentially, this is equivalent to signing an HTTP GET request, but it can be useful if your application requires clickable links to protected resources, i.e. when your application does not have access to the actual request that is being sent.
- Specified by:
sign
in interfaceOAuthConsumer
- Parameters:
url
- the input URL. May have query parameters.- Returns:
- the input URL, with all necessary OAuth parameters attached as a query string. Existing query parameters are preserved.
- Throws:
OAuthMessageSignerException
OAuthExpectationFailedException
OAuthCommunicationException
-
wrap
protected abstract HttpRequest wrap(Object request)
Adapts the given request object to a SignpostHttpRequest
. How this is done depends on the consumer implementation.- Parameters:
request
- the native HTTP request instance- Returns:
- the adapted request
-
setTokenWithSecret
public void setTokenWithSecret(String token, String tokenSecret)
Description copied from interface:OAuthConsumer
Sets the OAuth token and token secret used for message signing.- Specified by:
setTokenWithSecret
in interfaceOAuthConsumer
- Parameters:
token
- the tokentokenSecret
- the token secret
-
getToken
public String getToken()
- Specified by:
getToken
in interfaceOAuthConsumer
-
getTokenSecret
public String getTokenSecret()
- Specified by:
getTokenSecret
in interfaceOAuthConsumer
-
getConsumerKey
public String getConsumerKey()
- Specified by:
getConsumerKey
in interfaceOAuthConsumer
-
getConsumerSecret
public String getConsumerSecret()
- Specified by:
getConsumerSecret
in interfaceOAuthConsumer
-
completeOAuthParameters
protected void completeOAuthParameters(HttpParameters out)
Helper method that adds any OAuth parameters to the given request parameters which are missing from the current request but required for signing. A good example is the oauth_nonce parameter, which is typically not provided by the client in advance.
It's probably not a very good idea to override this method. If you want to generate different nonces or timestamps, override
generateNonce()
orgenerateTimestamp()
instead.- Parameters:
out
- the request parameter which should be completed
-
getRequestParameters
public HttpParameters getRequestParameters()
Description copied from interface:OAuthConsumer
Returns all parameters collected from the HTTP request during message signing (this means the return value may be NULL before a call toOAuthConsumer.sign(oauth.signpost.http.HttpRequest)
), plus all required OAuth parameters that were added because the request didn't contain them beforehand. In other words, this is the exact set of parameters that were used for creating the message signature.- Specified by:
getRequestParameters
in interfaceOAuthConsumer
- Returns:
- the request parameters used for message signing
-
setSendEmptyTokens
public void setSendEmptyTokens(boolean enable)
Description copied from interface:OAuthConsumer
Causes the consumer to always include the oauth_token parameter to be sent, even if blank. If you're seeing 401s during calls to
OAuthProvider.retrieveRequestToken(oauth.signpost.OAuthConsumer, java.lang.String, java.lang.String...)
, try setting this to true.- Specified by:
setSendEmptyTokens
in interfaceOAuthConsumer
- Parameters:
enable
- true or false
-
collectHeaderParameters
protected void collectHeaderParameters(HttpRequest request, HttpParameters out)
Collects OAuth Authorization header parameters as per OAuth Core 1.0 spec section 9.1.1
-
collectBodyParameters
protected void collectBodyParameters(HttpRequest request, HttpParameters out) throws IOException
Collects x-www-form-urlencoded body parameters as per OAuth Core 1.0 spec section 9.1.1- Throws:
IOException
-
collectQueryParameters
protected void collectQueryParameters(HttpRequest request, HttpParameters out)
Collects HTTP GET query string parameters as per OAuth Core 1.0 spec section 9.1.1
-
generateTimestamp
protected String generateTimestamp()
-
generateNonce
protected String generateNonce()
-
-