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.URISyntaxException
java.io.IOException
OAuthException
public void validate(OAuthMessage message) throws java.io.IOException, OAuthException, java.net.URISyntaxException
java.net.URISyntaxException
OAuthProblemException
- the signature is invalidjava.io.IOException
OAuthException
protected java.lang.String getSignature(OAuthMessage message) throws OAuthException, java.io.IOException, java.net.URISyntaxException
OAuthException
java.io.IOException
java.net.URISyntaxException
protected void initialize(java.lang.String name, OAuthAccessor accessor) throws OAuthException
OAuthException
protected abstract java.lang.String getSignature(java.lang.String baseString) throws OAuthException
OAuthException
protected abstract boolean isValid(java.lang.String signature, java.lang.String baseString) throws OAuthException
OAuthException
protected 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.IOException
java.net.URISyntaxException
protected static java.lang.String normalizeUrl(java.lang.String url) throws java.net.URISyntaxException
java.net.URISyntaxException
protected static java.lang.String normalizeParameters(java.util.Collection<? extends java.util.Map.Entry> parameters) throws java.io.IOException
java.io.IOException
public 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.IOException
OAuthException
public static OAuthSignatureMethod newMethod(java.lang.String name, OAuthAccessor accessor) throws OAuthException
OAuthException
public 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)