Package oauth.signpost
Class OAuth
- java.lang.Object
-
- oauth.signpost.OAuth
-
public class OAuth extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description 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.private static PercentEscaper
percentEncoder
static java.lang.String
VERSION_1_0
-
Constructor Summary
Constructors Constructor Description OAuth()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description 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 java.lang.String
addQueryParameters(java.lang.String url, java.util.Map<java.lang.String,java.lang.String> params)
static java.lang.String
addQueryString(java.lang.String url, java.lang.String queryString)
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.StringformEncode(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>>
voidformEncode(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.
-
-
-
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 toOAuthProvider#retrieveAccessToken(OAuthConsumer, String)
in order to complete the token handshake.- See Also:
- Constant Field Values
-
percentEncoder
private static final PercentEscaper percentEncoder
-
-
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 URLkvPairs
- 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)
-
addQueryString
public static java.lang.String addQueryString(java.lang.String url, java.lang.String queryString)
-
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_tokenvalue
- 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)
-
-