Class AbstractOAuthConsumer
- All Implemented Interfaces:
Serializable
,OAuthConsumer
- Direct Known Subclasses:
CommonsHttpOAuthConsumer
,DefaultOAuthConsumer
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate HttpParameters
private String
private String
private OAuthMessageSigner
private final Random
private HttpParameters
private boolean
private static final long
private SigningStrategy
private String
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected 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
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
protected String
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.getToken()
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.Signs the given HTTP request by writing an OAuth signature (and other required OAuth parameters) to it."Signs" the given URL by appending all OAuth parameters to it which are required for message signing.sign
(HttpRequest request) Signs the given HTTP request by writing an OAuth signature (and other required OAuth parameters) to it.protected abstract HttpRequest
Adapts the given request object to a SignpostHttpRequest
.
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
consumerKey
-
consumerSecret
-
token
-
messageSigner
-
signingStrategy
-
additionalParameters
-
requestParameters
-
sendEmptyTokens
private boolean sendEmptyTokens -
random
-
-
Constructor Details
-
AbstractOAuthConsumer
-
-
Method Details
-
setMessageSigner
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:
-
setSigningStrategy
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:
-
setAdditionalParameters
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
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
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
- Specified by:
getToken
in interfaceOAuthConsumer
-
getTokenSecret
- Specified by:
getTokenSecret
in interfaceOAuthConsumer
-
getConsumerKey
- Specified by:
getConsumerKey
in interfaceOAuthConsumer
-
getConsumerSecret
- Specified by:
getConsumerSecret
in interfaceOAuthConsumer
-
completeOAuthParameters
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
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
Collects OAuth Authorization header parameters as per OAuth Core 1.0 spec section 9.1.1 -
collectBodyParameters
Collects x-www-form-urlencoded body parameters as per OAuth Core 1.0 spec section 9.1.1- Throws:
IOException
-
collectQueryParameters
Collects HTTP GET query string parameters as per OAuth Core 1.0 spec section 9.1.1 -
generateTimestamp
-
generateNonce
-