public class OAuthAuthorization extends java.lang.Object implements Authorization, java.io.Serializable, OAuthSupport
Modifier and Type | Field and Description |
---|---|
private Configuration |
conf |
private java.lang.String |
consumerKey |
private java.lang.String |
consumerSecret |
private static java.lang.String |
HMAC_SHA1 |
private static HttpClient |
http |
private static Logger |
logger |
private static HttpParameter |
OAUTH_SIGNATURE_METHOD |
private OAuthToken |
oauthToken |
private static java.util.Random |
RAND |
private java.lang.String |
realm |
private static long |
serialVersionUID |
Constructor and Description |
---|
OAuthAuthorization(Configuration conf) |
Modifier and Type | Method and Description |
---|---|
(package private) static java.lang.String |
constructRequestURL(java.lang.String url)
The Signature Base String includes the request absolute URL, tying the signature to a specific endpoint.
|
static java.lang.String |
encodeParameters(java.util.List<HttpParameter> httpParams) |
static java.lang.String |
encodeParameters(java.util.List<HttpParameter> httpParams,
java.lang.String splitter,
boolean quot) |
private void |
ensureTokenIsAvailable() |
boolean |
equals(java.lang.Object o) |
(package private) java.lang.String |
generateAuthorizationHeader(java.lang.String method,
java.lang.String url,
HttpParameter[] params,
OAuthToken token) |
(package private) java.lang.String |
generateAuthorizationHeader(java.lang.String method,
java.lang.String url,
HttpParameter[] params,
java.lang.String nonce,
java.lang.String timestamp,
OAuthToken otoken) |
java.util.List<HttpParameter> |
generateOAuthSignatureHttpParams(java.lang.String method,
java.lang.String url) |
(package private) java.lang.String |
generateSignature(java.lang.String data) |
(package private) java.lang.String |
generateSignature(java.lang.String data,
OAuthToken token)
Computes RFC 2104-compliant HMAC signature.
|
java.lang.String |
getAuthorizationHeader(HttpRequest req) |
AccessToken |
getOAuthAccessToken()
Returns an access token associated with this instance.
If no access token is associated with this instance, this will retrieve a new access token. |
AccessToken |
getOAuthAccessToken(RequestToken requestToken)
Retrieves an access token associated with the supplied request token and sets userId.
|
AccessToken |
getOAuthAccessToken(RequestToken requestToken,
java.lang.String oauthVerifier)
Retrieves an access token associated with the supplied request token and sets userId.
|
AccessToken |
getOAuthAccessToken(java.lang.String oauthVerifier)
Retrieves an access token.
|
AccessToken |
getOAuthAccessToken(java.lang.String screenName,
java.lang.String password)
Retrieves an access token associated with the supplied screen name and password using xAuth.
In order to get access acquire AccessToken using xAuth, you must apply by sending an email to api@twitter.com — all other applications will receive an HTTP 401 error. |
RequestToken |
getOAuthRequestToken()
Retrieves a request token
|
RequestToken |
getOAuthRequestToken(java.lang.String callbackURL)
Retrieves a request token
|
RequestToken |
getOAuthRequestToken(java.lang.String callbackURL,
java.lang.String xAuthAccessType)
Retrieves a request token
|
RequestToken |
getOAuthRequestToken(java.lang.String callbackURL,
java.lang.String xAuthAccessType,
java.lang.String xAuthMode)
Retrieves a request token
|
int |
hashCode() |
boolean |
isEnabled()
Returns true if authorization credentials are set.
|
(package private) static java.lang.String |
normalizeRequestParameters(HttpParameter[] params)
The request parameters are collected, sorted and concatenated into a normalized string:
• Parameters in the OAuth HTTP Authorization header excluding the realm parameter. • Parameters in the HTTP POST request body (with a content-type of application/x-www-form-urlencoded). • HTTP GET parameters added to the URLs in the query part (as defined by [RFC3986] section 3). The oauth_signature parameter MUST be excluded. The parameters are normalized into a single string as follows: 1. |
private static java.lang.String |
normalizeRequestParameters(java.util.List<HttpParameter> params) |
private void |
parseGetParameters(java.lang.String url,
java.util.List<HttpParameter> signatureBaseParams) |
void |
setOAuthAccessToken(AccessToken accessToken)
Sets the access token
|
void |
setOAuthConsumer(java.lang.String consumerKey,
java.lang.String consumerSecret)
sets the OAuth consumer key and consumer secret
|
void |
setOAuthRealm(java.lang.String realm)
Sets the OAuth realm
|
private static java.util.List<HttpParameter> |
toParamList(HttpParameter[] params) |
java.lang.String |
toString() |
private static final long serialVersionUID
private final Configuration conf
private static transient HttpClient http
private static final java.lang.String HMAC_SHA1
private static final HttpParameter OAUTH_SIGNATURE_METHOD
private static final Logger logger
private java.lang.String consumerKey
private java.lang.String consumerSecret
private java.lang.String realm
private OAuthToken oauthToken
private static final java.util.Random RAND
public OAuthAuthorization(Configuration conf)
conf
- configurationpublic java.lang.String getAuthorizationHeader(HttpRequest req)
getAuthorizationHeader
in interface Authorization
private void ensureTokenIsAvailable()
public boolean isEnabled()
isEnabled
in interface Authorization
public RequestToken getOAuthRequestToken() throws TwitterException
OAuthSupport
getOAuthRequestToken
in interface OAuthSupport
TwitterException
- when Twitter service or network is unavailablepublic RequestToken getOAuthRequestToken(java.lang.String callbackURL) throws TwitterException
OAuthSupport
getOAuthRequestToken
in interface OAuthSupport
callbackURL
- callback URLTwitterException
- when Twitter service or network is unavailablepublic RequestToken getOAuthRequestToken(java.lang.String callbackURL, java.lang.String xAuthAccessType) throws TwitterException
OAuthSupport
getOAuthRequestToken
in interface OAuthSupport
callbackURL
- callback URLxAuthAccessType
- Overrides the access level an application requests to a users account. Supported values are read or write. This parameter is intended to allow a developer to register a read/write application but also request read only access when appropriate.TwitterException
- when Twitter service or network is unavailablepublic RequestToken getOAuthRequestToken(java.lang.String callbackURL, java.lang.String xAuthAccessType, java.lang.String xAuthMode) throws TwitterException
OAuthSupport
getOAuthRequestToken
in interface OAuthSupport
callbackURL
- callback URLxAuthAccessType
- Overrides the access level an application requests to a users account. Supported values are read or write. This parameter is intended to allow a developer to register a read/write application but also request read only access when appropriate.xAuthMode
- Set to reverse_auth to obtain a special request token to be used in the reverse auth process.TwitterException
- when Twitter service or network is unavailablepublic AccessToken getOAuthAccessToken() throws TwitterException
OAuthSupport
getOAuthAccessToken
in interface OAuthSupport
TwitterException
- when Twitter service or network is unavailable, or the user has not authorizedpublic AccessToken getOAuthAccessToken(java.lang.String oauthVerifier) throws TwitterException
OAuthSupport
getOAuthAccessToken
in interface OAuthSupport
oauthVerifier
- OAuth verifier. AKA pin.TwitterException
- when Twitter service or network is unavailable, or the user has not authorizedpublic AccessToken getOAuthAccessToken(RequestToken requestToken) throws TwitterException
OAuthSupport
getOAuthAccessToken
in interface OAuthSupport
requestToken
- the request tokenTwitterException
- when Twitter service or network is unavailable, or the user has not authorizedpublic AccessToken getOAuthAccessToken(RequestToken requestToken, java.lang.String oauthVerifier) throws TwitterException
OAuthSupport
getOAuthAccessToken
in interface OAuthSupport
requestToken
- the request tokenoauthVerifier
- OAuth verifier. AKA pin.TwitterException
- when Twitter service or network is unavailable, or the user has not authorizedpublic AccessToken getOAuthAccessToken(java.lang.String screenName, java.lang.String password) throws TwitterException
OAuthSupport
getOAuthAccessToken
in interface OAuthSupport
screenName
- the screen namepassword
- the passwordTwitterException
- when Twitter service or network is unavailable, or the user has not authorizedpublic void setOAuthAccessToken(AccessToken accessToken)
OAuthSupport
setOAuthAccessToken
in interface OAuthSupport
accessToken
- accessTokenpublic void setOAuthRealm(java.lang.String realm)
realm
- OAuth realmjava.lang.String generateAuthorizationHeader(java.lang.String method, java.lang.String url, HttpParameter[] params, java.lang.String nonce, java.lang.String timestamp, OAuthToken otoken)
private void parseGetParameters(java.lang.String url, java.util.List<HttpParameter> signatureBaseParams)
java.lang.String generateAuthorizationHeader(java.lang.String method, java.lang.String url, HttpParameter[] params, OAuthToken token)
public java.util.List<HttpParameter> generateOAuthSignatureHttpParams(java.lang.String method, java.lang.String url)
java.lang.String generateSignature(java.lang.String data, OAuthToken token)
data
- the data to be signedtoken
- the tokenjava.lang.String generateSignature(java.lang.String data)
static java.lang.String normalizeRequestParameters(HttpParameter[] params)
params
- parameters to be normalized and concatenatedprivate static java.lang.String normalizeRequestParameters(java.util.List<HttpParameter> params)
private static java.util.List<HttpParameter> toParamList(HttpParameter[] params)
public static java.lang.String encodeParameters(java.util.List<HttpParameter> httpParams)
httpParams
- parameters to be encoded and concatenatedpublic static java.lang.String encodeParameters(java.util.List<HttpParameter> httpParams, java.lang.String splitter, boolean quot)
static java.lang.String constructRequestURL(java.lang.String url)
url
- the url to be normalizedpublic void setOAuthConsumer(java.lang.String consumerKey, java.lang.String consumerSecret)
OAuthSupport
setOAuthConsumer
in interface OAuthSupport
consumerKey
- OAuth consumer keyconsumerSecret
- OAuth consumer secretpublic boolean equals(java.lang.Object o)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public java.lang.String toString()
toString
in class java.lang.Object