oauth.signpost
Class OAuth

java.lang.Object
  extended by oauth.signpost.OAuth

public class OAuth
extends java.lang.Object


Field Summary
static java.lang.String ENCODING
           
static java.lang.String FORM_ENCODED
           
static java.lang.String HTTP_AUTHORIZATION_HEADER
           
static java.lang.String OAUTH_CALLBACK
           
static java.lang.String OAUTH_CALLBACK_CONFIRMED
           
static java.lang.String OAUTH_CONSUMER_KEY
           
static java.lang.String OAUTH_NONCE
           
static java.lang.String OAUTH_SIGNATURE
           
static java.lang.String OAUTH_SIGNATURE_METHOD
           
static java.lang.String OAUTH_TIMESTAMP
           
static java.lang.String OAUTH_TOKEN
           
static java.lang.String OAUTH_TOKEN_SECRET
           
static java.lang.String OAUTH_VERIFIER
           
static java.lang.String OAUTH_VERSION
           
static java.lang.String OUT_OF_BAND
          Pass this value as the callback "url" upon retrieving a request token if your application cannot receive callbacks (e.g.
static java.lang.String VERSION_1_0
           
 
Constructor Summary
OAuth()
           
 
Method Summary
static java.lang.String addQueryParameters(java.lang.String url, java.util.Map<java.lang.String,java.lang.String> params)
           
static java.lang.String addQueryParameters(java.lang.String url, java.lang.String... kvPairs)
          Appends a list of key/value pairs to the given URL, e.g.:
static void debugOut(java.lang.String key, java.lang.String value)
           
static HttpParameters decodeForm(java.io.InputStream content)
           
static HttpParameters decodeForm(java.lang.String form)
          Parse a form-urlencoded document.
static
<T extends java.util.Map.Entry<java.lang.String,java.lang.String>>
java.lang.String
formEncode(java.util.Collection<T> parameters)
          Construct a x-www-form-urlencoded document containing the given sequence of name/value pairs.
static
<T extends java.util.Map.Entry<java.lang.String,java.lang.String>>
void
formEncode(java.util.Collection<T> parameters, java.io.OutputStream into)
          Construct a x-www-form-urlencoded document containing the given sequence of name/value pairs.
static boolean isEmpty(java.lang.String str)
           
static HttpParameters oauthHeaderToParamsMap(java.lang.String oauthHeader)
           
static java.lang.String percentDecode(java.lang.String s)
           
static java.lang.String percentEncode(java.lang.String s)
           
static java.lang.String prepareOAuthHeader(java.lang.String... kvPairs)
          Builds an OAuth header from the given list of header fields.
static java.lang.String safeToString(java.lang.Object from)
           
static java.lang.String toHeaderElement(java.lang.String name, java.lang.String value)
          Helper method to concatenate a parameter and its value to a pair that can be used in an HTTP header.
static
<T extends java.util.Map.Entry<java.lang.String,java.lang.String>>
java.util.Map<java.lang.String,java.lang.String>
toMap(java.util.Collection<T> from)
          Construct a Map containing a copy of the given parameters.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

VERSION_1_0

public static final java.lang.String VERSION_1_0
See Also:
Constant Field Values

ENCODING

public static final java.lang.String ENCODING
See Also:
Constant Field Values

FORM_ENCODED

public static final java.lang.String FORM_ENCODED
See Also:
Constant Field Values

HTTP_AUTHORIZATION_HEADER

public static final java.lang.String HTTP_AUTHORIZATION_HEADER
See Also:
Constant Field Values

OAUTH_CONSUMER_KEY

public static final java.lang.String OAUTH_CONSUMER_KEY
See Also:
Constant Field Values

OAUTH_TOKEN

public static final java.lang.String OAUTH_TOKEN
See Also:
Constant Field Values

OAUTH_TOKEN_SECRET

public static final java.lang.String OAUTH_TOKEN_SECRET
See Also:
Constant Field Values

OAUTH_SIGNATURE_METHOD

public static final java.lang.String OAUTH_SIGNATURE_METHOD
See Also:
Constant Field Values

OAUTH_SIGNATURE

public static final java.lang.String OAUTH_SIGNATURE
See Also:
Constant Field Values

OAUTH_TIMESTAMP

public static final java.lang.String OAUTH_TIMESTAMP
See Also:
Constant Field Values

OAUTH_NONCE

public static final java.lang.String OAUTH_NONCE
See Also:
Constant Field Values

OAUTH_VERSION

public static final java.lang.String OAUTH_VERSION
See Also:
Constant Field Values

OAUTH_CALLBACK

public static final java.lang.String OAUTH_CALLBACK
See Also:
Constant Field Values

OAUTH_CALLBACK_CONFIRMED

public static final java.lang.String OAUTH_CALLBACK_CONFIRMED
See Also:
Constant Field Values

OAUTH_VERIFIER

public static final java.lang.String OAUTH_VERIFIER
See Also:
Constant Field Values

OUT_OF_BAND

public static final java.lang.String OUT_OF_BAND
Pass this value as the callback "url" upon retrieving a request token if your application cannot receive callbacks (e.g. because it's a desktop app). This will tell the service provider that verification happens out-of-band, which basically means that it will generate a PIN code (the OAuth verifier) and display that to your user. You must obtain this code from your user and pass it to OAuthProvider.retrieveAccessToken(OAuthConsumer, String) in order to complete the token handshake.

See Also:
Constant Field Values
Constructor Detail

OAuth

public OAuth()
Method Detail

percentEncode

public static java.lang.String percentEncode(java.lang.String s)

percentDecode

public static java.lang.String percentDecode(java.lang.String s)

formEncode

public static <T extends java.util.Map.Entry<java.lang.String,java.lang.String>> void formEncode(java.util.Collection<T> parameters,
                                                                                                 java.io.OutputStream into)
                       throws java.io.IOException
Construct a x-www-form-urlencoded document containing the given sequence of name/value pairs. Use OAuth percent encoding (not exactly the encoding mandated by x-www-form-urlencoded).

Throws:
java.io.IOException

formEncode

public static <T extends java.util.Map.Entry<java.lang.String,java.lang.String>> java.lang.String formEncode(java.util.Collection<T> parameters)
                                   throws java.io.IOException
Construct a x-www-form-urlencoded document containing the given sequence of name/value pairs. Use OAuth percent encoding (not exactly the encoding mandated by x-www-form-urlencoded).

Throws:
java.io.IOException

decodeForm

public static HttpParameters decodeForm(java.lang.String form)
Parse a form-urlencoded document.


decodeForm

public static HttpParameters decodeForm(java.io.InputStream content)
                                 throws java.io.IOException
Throws:
java.io.IOException

toMap

public static <T extends java.util.Map.Entry<java.lang.String,java.lang.String>> java.util.Map<java.lang.String,java.lang.String> toMap(java.util.Collection<T> from)
Construct a Map containing a copy of the given parameters. If several parameters have the same name, the Map will contain the first value, only.


safeToString

public static final java.lang.String safeToString(java.lang.Object from)

isEmpty

public static boolean isEmpty(java.lang.String str)

addQueryParameters

public static java.lang.String addQueryParameters(java.lang.String url,
                                                  java.lang.String... kvPairs)
Appends a list of key/value pairs to the given URL, e.g.:
 String url = OAuth.addQueryParameters("http://example.com?a=1", b, 2, c, 3);
 
which yields:
 http://example.com?a=1&b=2&c=3
 
All parameters will be encoded according to OAuth's percent encoding rules.

Parameters:
url - the URL
kvPairs - the list of key/value pairs
Returns:

addQueryParameters

public static java.lang.String addQueryParameters(java.lang.String url,
                                                  java.util.Map<java.lang.String,java.lang.String> params)

prepareOAuthHeader

public static java.lang.String prepareOAuthHeader(java.lang.String... kvPairs)
Builds an OAuth header from the given list of header fields. All parameters starting in 'oauth_*' will be percent encoded.
 String authHeader = OAuth.prepareOAuthHeader("realm", "http://example.com", "oauth_token", "x%y");
 
which yields:
 OAuth realm="http://example.com", oauth_token="x%25y"
 

Parameters:
kvPairs - the list of key/value pairs
Returns:
a string eligible to be used as an OAuth HTTP Authorization header.

oauthHeaderToParamsMap

public static HttpParameters oauthHeaderToParamsMap(java.lang.String oauthHeader)

toHeaderElement

public static java.lang.String toHeaderElement(java.lang.String name,
                                               java.lang.String value)
Helper method to concatenate a parameter and its value to a pair that can be used in an HTTP header. This method percent encodes both parts before joining them.

Parameters:
name - the OAuth parameter name, e.g. oauth_token
value - the OAuth parameter value, e.g. 'hello oauth'
Returns:
a name/value pair, e.g. oauth_token="hello%20oauth"

debugOut

public static void debugOut(java.lang.String key,
                            java.lang.String value)