oauth.signpost
クラス AbstractOAuthProvider

java.lang.Object
  上位を拡張 oauth.signpost.AbstractOAuthProvider
すべての実装されたインタフェース:
Serializable, OAuthProvider
直系の既知のサブクラス:
DefaultOAuthProvider

public abstract class AbstractOAuthProvider
extends Object
implements OAuthProvider

ABC for all provider implementations. If you're writing a custom provider, you will probably inherit from this class, since it takes a lot of work from you.

作成者:
Matthias Kaeppler
関連項目:
直列化された形式

コンストラクタの概要
AbstractOAuthProvider(String requestTokenEndpointUrl, String accessTokenEndpointUrl, String authorizationWebsiteUrl)
           
 
メソッドの概要
protected  void closeConnection(HttpRequest request, HttpResponse response)
          Called when the connection is being finalized after receiving the response.
protected abstract  HttpRequest createRequest(String endpointUrl)
          Overrride this method if you want to customize the logic for building a request object for the given endpoint URL.
 String getAccessTokenEndpointUrl()
           
 String getAuthorizationWebsiteUrl()
           
 Map<String,String> getRequestHeaders()
           
 String getRequestTokenEndpointUrl()
           
protected  String getResponseParameter(String key)
          Returns a single query parameter as served by the service provider in a token reply.
 HttpParameters getResponseParameters()
          Any additional non-OAuth parameters returned in the response body of a token request can be obtained through this method.
protected  void handleUnexpectedResponse(int statusCode, HttpResponse response)
           
 boolean isOAuth10a()
           
 void removeListener(OAuthProviderListener listener)
           
 void retrieveAccessToken(OAuthConsumer consumer, String oauthVerifier, String... customOAuthParams)
          Queries the service provider for an access token.
 String retrieveRequestToken(OAuthConsumer consumer, String callbackUrl, String... customOAuthParams)
          Queries the service provider for a request token.
protected  void retrieveToken(OAuthConsumer consumer, String endpointUrl, HttpParameters customOAuthParams)
           Implemented by subclasses.
protected abstract  HttpResponse sendRequest(HttpRequest request)
          Override this method if you want to customize the logic for how the given request is sent to the server.
 void setListener(OAuthProviderListener listener)
           
 void setOAuth10a(boolean isOAuth10aProvider)
           
 void setRequestHeader(String header, String value)
          Use this method to set custom HTTP headers to be used for the requests which are sent to retrieve tokens.
 void setResponseParameters(HttpParameters parameters)
          Subclasses must use this setter to preserve any non-OAuth query parameters contained in the server response.
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

AbstractOAuthProvider

public AbstractOAuthProvider(String requestTokenEndpointUrl,
                             String accessTokenEndpointUrl,
                             String authorizationWebsiteUrl)
メソッドの詳細

retrieveRequestToken

public String retrieveRequestToken(OAuthConsumer consumer,
                                   String callbackUrl,
                                   String... customOAuthParams)
                            throws OAuthMessageSignerException,
                                   OAuthNotAuthorizedException,
                                   OAuthExpectationFailedException,
                                   OAuthCommunicationException
インタフェース OAuthProvider の記述:
Queries the service provider for a request token.

Pre-conditions: the given OAuthConsumer must have a valid consumer key and consumer secret already set.

Post-conditions: the given OAuthConsumer will have an unauthorized request token and token secret set.

定義:
インタフェース OAuthProvider 内の retrieveRequestToken
パラメータ:
consumer - the OAuthConsumer that should be used to sign the request
callbackUrl - Pass an actual URL if your app can receive callbacks and you want to get informed about the result of the authorization process. Pass OAuth.OUT_OF_BAND if the service provider implements OAuth 1.0a and your app cannot receive callbacks. Pass null if the service provider implements OAuth 1.0 and your app cannot receive callbacks. Please note that some services (among them Twitter) will fail authorization if you pass a callback URL but register your application as a desktop app (which would only be able to handle OOB requests).
customOAuthParams - you can pass custom OAuth parameters here which will go directly into the signer, i.e. you don't have to put them into the request first. This is useful for pre-setting OAuth params for signing. Pass them sequentially in key/value order.
戻り値:
The URL to which the user must be sent in order to authorize the consumer. It includes the unauthorized request token (and in the case of OAuth 1.0, the callback URL -- 1.0a clients send along with the token request).
例外:
OAuthMessageSignerException - if signing the request failed
OAuthNotAuthorizedException - if the service provider rejected the consumer
OAuthExpectationFailedException - if required parameters were not correctly set by the consumer or service provider
OAuthCommunicationException - if server communication failed

retrieveAccessToken

public void retrieveAccessToken(OAuthConsumer consumer,
                                String oauthVerifier,
                                String... customOAuthParams)
                         throws OAuthMessageSignerException,
                                OAuthNotAuthorizedException,
                                OAuthExpectationFailedException,
                                OAuthCommunicationException
インタフェース OAuthProvider の記述:
Queries the service provider for an access token.

Pre-conditions: the given OAuthConsumer must have a valid consumer key, consumer secret, authorized request token and token secret already set.

Post-conditions: the given OAuthConsumer will have an access token and token secret set.

定義:
インタフェース OAuthProvider 内の retrieveAccessToken
パラメータ:
consumer - the OAuthConsumer that should be used to sign the request
oauthVerifier - NOTE: Only applies to service providers implementing OAuth 1.0a. Set to null if the service provider is still using OAuth 1.0. The verification code issued by the service provider after the the user has granted the consumer authorization. If the callback method provided in the previous step was OAuth.OUT_OF_BAND, then you must ask the user for this value. If your app has received a callback, the verfication code was passed as part of that request instead.
customOAuthParams - you can pass custom OAuth parameters here which will go directly into the signer, i.e. you don't have to put them into the request first. This is useful for pre-setting OAuth params for signing. Pass them sequentially in key/value order.
例外:
OAuthMessageSignerException - if signing the request failed
OAuthNotAuthorizedException - if the service provider rejected the consumer
OAuthExpectationFailedException - if required parameters were not correctly set by the consumer or service provider
OAuthCommunicationException - if server communication failed

retrieveToken

protected void retrieveToken(OAuthConsumer consumer,
                             String endpointUrl,
                             HttpParameters customOAuthParams)
                      throws OAuthMessageSignerException,
                             OAuthCommunicationException,
                             OAuthNotAuthorizedException,
                             OAuthExpectationFailedException

Implemented by subclasses. The responsibility of this method is to contact the service provider at the given endpoint URL and fetch a request or access token. What kind of token is retrieved solely depends on the URL being used.

Correct implementations of this method must guarantee the following post-conditions:

パラメータ:
consumer - the OAuthConsumer that should be used to sign the request
endpointUrl - the URL at which the service provider serves the OAuth token that is to be fetched
customOAuthParams - you can pass custom OAuth parameters here (such as oauth_callback or oauth_verifier) which will go directly into the signer, i.e. you don't have to put them into the request first.
例外:
OAuthMessageSignerException - if signing the token request fails
OAuthCommunicationException - if a network communication error occurs
OAuthNotAuthorizedException - if the server replies 401 - Unauthorized
OAuthExpectationFailedException - if an expectation has failed, e.g. because the server didn't reply in the expected format

handleUnexpectedResponse

protected void handleUnexpectedResponse(int statusCode,
                                        HttpResponse response)
                                 throws Exception
例外:
Exception

createRequest

protected abstract HttpRequest createRequest(String endpointUrl)
                                      throws Exception
Overrride this method if you want to customize the logic for building a request object for the given endpoint URL.

パラメータ:
endpointUrl - the URL to which the request will go
戻り値:
the request object
例外:
Exception - if something breaks

sendRequest

protected abstract HttpResponse sendRequest(HttpRequest request)
                                     throws Exception
Override this method if you want to customize the logic for how the given request is sent to the server.

パラメータ:
request - the request to send
戻り値:
the response to the request
例外:
Exception - if something breaks

closeConnection

protected void closeConnection(HttpRequest request,
                               HttpResponse response)
                        throws Exception
Called when the connection is being finalized after receiving the response. Use this to do any cleanup / resource freeing.

パラメータ:
request - the request that has been sent
response - the response that has been received
例外:
Exception - if something breaks

getResponseParameters

public HttpParameters getResponseParameters()
インタフェース OAuthProvider の記述:
Any additional non-OAuth parameters returned in the response body of a token request can be obtained through this method. These parameters will be preserved until the next token request is issued. The return value is never null.

定義:
インタフェース OAuthProvider 内の getResponseParameters

getResponseParameter

protected String getResponseParameter(String key)
Returns a single query parameter as served by the service provider in a token reply. You must call setResponseParameters(oauth.signpost.http.HttpParameters) with the set of parameters before using this method.

パラメータ:
key - the parameter name
戻り値:
the parameter value

setResponseParameters

public void setResponseParameters(HttpParameters parameters)
インタフェース OAuthProvider の記述:
Subclasses must use this setter to preserve any non-OAuth query parameters contained in the server response. It's the caller's responsibility that any OAuth parameters be removed beforehand.

定義:
インタフェース OAuthProvider 内の setResponseParameters
パラメータ:
parameters - the map of query parameters served by the service provider in the token response

setOAuth10a

public void setOAuth10a(boolean isOAuth10aProvider)
定義:
インタフェース OAuthProvider 内の setOAuth10a
パラメータ:
isOAuth10aProvider - set to true if the service provider supports OAuth 1.0a. Note that you need only call this method if you reconstruct a provider object in between calls to retrieveRequestToken() and retrieveAccessToken() (i.e. if the object state isn't preserved). If instead those two methods are called on the same provider instance, this flag will be deducted automatically based on the server response during retrieveRequestToken(), so you can simply ignore this method.

isOAuth10a

public boolean isOAuth10a()
定義:
インタフェース OAuthProvider 内の isOAuth10a
戻り値:
true if the service provider supports OAuth 1.0a. Note that the value returned here is only meaningful after you have already performed the token handshake, otherwise there is no way to determine what version of the OAuth protocol the service provider implements.

getRequestTokenEndpointUrl

public String getRequestTokenEndpointUrl()
定義:
インタフェース OAuthProvider 内の getRequestTokenEndpointUrl

getAccessTokenEndpointUrl

public String getAccessTokenEndpointUrl()
定義:
インタフェース OAuthProvider 内の getAccessTokenEndpointUrl

getAuthorizationWebsiteUrl

public String getAuthorizationWebsiteUrl()
定義:
インタフェース OAuthProvider 内の getAuthorizationWebsiteUrl

setRequestHeader

public void setRequestHeader(String header,
                             String value)
インタフェース OAuthProvider の記述:
Use this method to set custom HTTP headers to be used for the requests which are sent to retrieve tokens. @deprecated THIS METHOD HAS BEEN DEPRECATED. Use OAuthProviderListener to customize requests.

定義:
インタフェース OAuthProvider 内の setRequestHeader
パラメータ:
header - The header name (e.g. 'WWW-Authenticate')
value - The header value (e.g. 'realm=www.example.com')

getRequestHeaders

public Map<String,String> getRequestHeaders()
定義:
インタフェース OAuthProvider 内の getRequestHeaders
戻り値:
all request headers set via OAuthProvider.setRequestHeader(java.lang.String, java.lang.String)

setListener

public void setListener(OAuthProviderListener listener)
定義:
インタフェース OAuthProvider 内の setListener

removeListener

public void removeListener(OAuthProviderListener listener)
定義:
インタフェース OAuthProvider 内の removeListener


Copyright © 2012. All Rights Reserved.