public abstract class OAuthSignatureMethod
extends java.lang.Object
Static methods of this class implement a registry of signature methods. It's pre-populated with the standard OAuth algorithms. Appliations can replace them or add new ones.
| Modifier and Type | Class and Description |
|---|---|
private static class |
OAuthSignatureMethod.ComparableParameter
An efficiently sortable wrapper around a parameter.
|
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
_ACCESSOR |
private static Base64 |
BASE64 |
private static java.lang.String |
BASE64_ENCODING
The character encoding used for base64.
|
private java.lang.String |
consumerSecret |
private static java.util.Map<java.lang.String,java.lang.Class> |
NAME_TO_CLASS |
private java.lang.String |
tokenSecret |
| Constructor and Description |
|---|
OAuthSignatureMethod() |
| Modifier and Type | Method and Description |
|---|---|
static java.lang.String |
base64Encode(byte[] b) |
static byte[] |
decodeBase64(java.lang.String s) |
static boolean |
equals(byte[] a,
byte[] b)
Determine whether the given arrays contain the same sequence of bytes.
|
static boolean |
equals(java.lang.String x,
java.lang.String y)
Determine whether the given strings contain the same sequence of
characters.
|
static java.lang.String |
getBaseString(OAuthMessage message) |
protected java.lang.String |
getConsumerSecret() |
private static java.util.List<java.util.Map.Entry> |
getParameters(java.util.Collection<OAuthSignatureMethod.ComparableParameter> parameters)
Retrieve the original parameters from a sorted collection.
|
protected java.lang.String |
getSignature(OAuthMessage message) |
protected abstract java.lang.String |
getSignature(java.lang.String baseString)
Compute the signature for the given base string.
|
java.lang.String |
getTokenSecret() |
protected void |
initialize(java.lang.String name,
OAuthAccessor accessor) |
protected abstract boolean |
isValid(java.lang.String signature,
java.lang.String baseString)
Decide whether the signature is valid.
|
static OAuthSignatureMethod |
newMethod(java.lang.String name,
OAuthAccessor accessor)
The factory for signature methods.
|
static OAuthSignatureMethod |
newSigner(OAuthMessage message,
OAuthAccessor accessor) |
protected static java.lang.String |
normalizeParameters(java.util.Collection<? extends java.util.Map.Entry> parameters) |
protected static java.lang.String |
normalizeUrl(java.lang.String url) |
static void |
registerMethodClass(java.lang.String name,
java.lang.Class clazz)
Subsequently, newMethod(name) will attempt to instantiate the given
class, with no constructor parameters.
|
protected void |
setConsumerSecret(java.lang.String consumerSecret) |
void |
setTokenSecret(java.lang.String tokenSecret) |
void |
sign(OAuthMessage message)
Add a signature to the message.
|
static void |
unregisterMethod(java.lang.String name)
Subsequently, newMethod(name) will fail.
|
void |
validate(OAuthMessage message)
Check whether the message has a valid signature.
|
public static final java.lang.String _ACCESSOR
private java.lang.String consumerSecret
private java.lang.String tokenSecret
private static final java.lang.String BASE64_ENCODING
private static final Base64 BASE64
private static final java.util.Map<java.lang.String,java.lang.Class> NAME_TO_CLASS
public void sign(OAuthMessage message) throws OAuthException, java.io.IOException, java.net.URISyntaxException
java.net.URISyntaxExceptionjava.io.IOExceptionOAuthExceptionpublic void validate(OAuthMessage message) throws java.io.IOException, OAuthException, java.net.URISyntaxException
java.net.URISyntaxExceptionOAuthProblemException - the signature is invalidjava.io.IOExceptionOAuthExceptionprotected java.lang.String getSignature(OAuthMessage message) throws OAuthException, java.io.IOException, java.net.URISyntaxException
OAuthExceptionjava.io.IOExceptionjava.net.URISyntaxExceptionprotected void initialize(java.lang.String name,
OAuthAccessor accessor)
throws OAuthException
OAuthExceptionprotected abstract java.lang.String getSignature(java.lang.String baseString)
throws OAuthException
OAuthExceptionprotected abstract boolean isValid(java.lang.String signature,
java.lang.String baseString)
throws OAuthException
OAuthExceptionprotected java.lang.String getConsumerSecret()
protected void setConsumerSecret(java.lang.String consumerSecret)
public java.lang.String getTokenSecret()
public void setTokenSecret(java.lang.String tokenSecret)
public static java.lang.String getBaseString(OAuthMessage message) throws java.io.IOException, java.net.URISyntaxException
java.io.IOExceptionjava.net.URISyntaxExceptionprotected static java.lang.String normalizeUrl(java.lang.String url)
throws java.net.URISyntaxException
java.net.URISyntaxExceptionprotected static java.lang.String normalizeParameters(java.util.Collection<? extends java.util.Map.Entry> parameters)
throws java.io.IOException
java.io.IOExceptionpublic static boolean equals(java.lang.String x,
java.lang.String y)
public static boolean equals(byte[] a,
byte[] b)
public static byte[] decodeBase64(java.lang.String s)
public static java.lang.String base64Encode(byte[] b)
public static OAuthSignatureMethod newSigner(OAuthMessage message, OAuthAccessor accessor) throws java.io.IOException, OAuthException
java.io.IOExceptionOAuthExceptionpublic static OAuthSignatureMethod newMethod(java.lang.String name, OAuthAccessor accessor) throws OAuthException
OAuthExceptionpublic static void registerMethodClass(java.lang.String name,
java.lang.Class clazz)
public static void unregisterMethod(java.lang.String name)
private static java.util.List<java.util.Map.Entry> getParameters(java.util.Collection<OAuthSignatureMethod.ComparableParameter> parameters)