oauth.signpost
Class AbstractOAuthConsumer

java.lang.Object
  extended by oauth.signpost.AbstractOAuthConsumer
All Implemented Interfaces:
Serializable, OAuthConsumer
Direct Known Subclasses:
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
AbstractOAuthConsumer(String consumerKey, String consumerSecret)
           
 
Method Summary
protected  void collectBodyParameters(HttpRequest request, HttpParameters out)
          Collects x-www-form-urlencoded body parameters as per OAuth Core 1.0 spec section 9.1.1
protected  void collectHeaderParameters(HttpRequest request, HttpParameters out)
          Collects OAuth Authorization header parameters as per OAuth Core 1.0 spec section 9.1.1
protected  void collectQueryParameters(HttpRequest request, HttpParameters out)
          Collects HTTP GET query string parameters as per OAuth Core 1.0 spec section 9.1.1
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.
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 to OAuthConsumer.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(HttpRequest request)
          Signs the given HTTP request by writing an OAuth signature (and other required OAuth parameters) to it.
 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.
protected abstract  HttpRequest wrap(Object request)
          Adapts the given request object to a Signpost HttpRequest.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractOAuthConsumer

public AbstractOAuthConsumer(String consumerKey,
                             String consumerSecret)
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 interface OAuthConsumer
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 interface OAuthConsumer
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's SigningStrategy will then take care of writing them to the correct part of the request before it is sent.

Specified by:
setAdditionalParameters in interface OAuthConsumer
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 current SigningStrategy.

Specified by:
sign in interface OAuthConsumer
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 SigningStrategy.

This method accepts HTTP library specific request objects; the consumer implementation must ensure that only those request types are passed which it supports.

Specified by:
sign in interface OAuthConsumer
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 interface OAuthConsumer
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 Signpost HttpRequest. 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 interface OAuthConsumer
Parameters:
token - the token
tokenSecret - the token secret

getToken

public String getToken()
Specified by:
getToken in interface OAuthConsumer

getTokenSecret

public String getTokenSecret()
Specified by:
getTokenSecret in interface OAuthConsumer

getConsumerKey

public String getConsumerKey()
Specified by:
getConsumerKey in interface OAuthConsumer

getConsumerSecret

public String getConsumerSecret()
Specified by:
getConsumerSecret in interface OAuthConsumer

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() or generateTimestamp() 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 to OAuthConsumer.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 interface OAuthConsumer
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), try setting this to true.

Specified by:
setSendEmptyTokens in interface OAuthConsumer
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()


Copyright © 2010. All Rights Reserved.