Class OAuthHmacThreeLeggedFlow
- java.lang.Object
-
- com.google.api.client.extensions.auth.helpers.oauth.OAuthHmacThreeLeggedFlow
-
- All Implemented Interfaces:
ThreeLeggedFlow
@Beta public class OAuthHmacThreeLeggedFlow extends java.lang.Object implements ThreeLeggedFlow
Beta
ThreeLeggedFlow
implementation that will execute the proper requests to obtain an OAuth1 Credential object that can be used to sign requests.This class is not thread safe, nor should you attempt to execute a flow from multiple threads simultaneously.
- Since:
- 1.5
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.String
authorizationServerUrl
Authorization url which we will use to talk to the server.private java.lang.String
authorizationUrl
Url which is generated to authorize this specific user for this service.private java.lang.String
consumerKey
Key that identifies the server to the service provider.private java.lang.String
consumerSecret
Secret that is shared between the server and the service provider.private java.lang.String
tempToken
Temporary token that gets associated with this flow.private java.lang.String
tempTokenSecret
Temporary secret that gets associated with the temporary token.private com.google.api.client.http.HttpTransport
transport
Http transport to use to communicate with the auth server.private java.lang.String
userId
Key that can be used to associate this flow with an end user.
-
Constructor Summary
Constructors Constructor Description OAuthHmacThreeLeggedFlow(java.lang.String userId, java.lang.String consumerKey, java.lang.String consumerSecret, java.lang.String authorizationServerUrl, java.lang.String temporaryTokenUrl, java.lang.String callbackUrl, com.google.api.client.http.HttpTransport transport)
Create an OAuthThreeLeggedFlow instance from the required information.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Credential
complete(java.lang.String authorizationCode)
After the user has authorized the request, the token or code obtained should be passed to this complete function to allow us to exchange the code with the authentication server for aCredential
.java.lang.String
getAuthorizationUrl()
After the object is created, the developer should use this method to interrogate it for the authorization URL to which the user should be redirected to obtain permission.Credential
loadCredential(javax.jdo.PersistenceManager pm)
Convenience function that will load a credential based on the userId for which this flow was instantiated.void
setHttpTransport(com.google.api.client.http.HttpTransport transport)
SetHttpTransport
instance for this three legged flow.void
setJsonFactory(com.google.api.client.json.JsonFactory jsonFactory)
SetJsonFactory
instance for this three legged flow.
-
-
-
Field Detail
-
userId
private java.lang.String userId
Key that can be used to associate this flow with an end user.
-
tempToken
private java.lang.String tempToken
Temporary token that gets associated with this flow.
-
tempTokenSecret
private java.lang.String tempTokenSecret
Temporary secret that gets associated with the temporary token.
-
consumerSecret
private java.lang.String consumerSecret
Secret that is shared between the server and the service provider.
-
consumerKey
private java.lang.String consumerKey
Key that identifies the server to the service provider.
-
authorizationServerUrl
private java.lang.String authorizationServerUrl
Authorization url which we will use to talk to the server.
-
authorizationUrl
private final java.lang.String authorizationUrl
Url which is generated to authorize this specific user for this service.
-
transport
private com.google.api.client.http.HttpTransport transport
Http transport to use to communicate with the auth server.
-
-
Constructor Detail
-
OAuthHmacThreeLeggedFlow
public OAuthHmacThreeLeggedFlow(java.lang.String userId, java.lang.String consumerKey, java.lang.String consumerSecret, java.lang.String authorizationServerUrl, java.lang.String temporaryTokenUrl, java.lang.String callbackUrl, com.google.api.client.http.HttpTransport transport) throws java.io.IOException
Create an OAuthThreeLeggedFlow instance from the required information.- Parameters:
userId
- Key that can be used to associate this flow with an end user.consumerKey
- Key that identifies the server to the service provider.consumerSecret
- Secret that is shared between the server and the service provider.authorizationServerUrl
- Url with which we communicate to authorize tis application.temporaryTokenUrl
- Url which we will use to obtain a temporary token.callbackUrl
- Url which the server should redirect the user to after obtaining authorization.- Throws:
java.io.IOException
- Exception thrown when the flow is unable to communicate with the service provider.
-
-
Method Detail
-
getAuthorizationUrl
public java.lang.String getAuthorizationUrl()
Description copied from interface:ThreeLeggedFlow
After the object is created, the developer should use this method to interrogate it for the authorization URL to which the user should be redirected to obtain permission.- Specified by:
getAuthorizationUrl
in interfaceThreeLeggedFlow
- Returns:
- URL to which the user should be directed
-
complete
public Credential complete(java.lang.String authorizationCode) throws java.io.IOException
Description copied from interface:ThreeLeggedFlow
After the user has authorized the request, the token or code obtained should be passed to this complete function to allow us to exchange the code with the authentication server for aCredential
.- Specified by:
complete
in interfaceThreeLeggedFlow
- Parameters:
authorizationCode
- Code or token obtained after the user grants permission- Returns:
Credential
object that is obtained from token server- Throws:
java.io.IOException
-
loadCredential
public Credential loadCredential(javax.jdo.PersistenceManager pm)
Description copied from interface:ThreeLeggedFlow
Convenience function that will load a credential based on the userId for which this flow was instantiated.- Specified by:
loadCredential
in interfaceThreeLeggedFlow
- Parameters:
pm
-PersistenceManager
instance which this flow should use to interact with the data store. The caller must remember to callPersistenceManager.close()
after this method returns.- Returns:
- Fully initialized
Credential
object ornull
if none exists.
-
setHttpTransport
public void setHttpTransport(com.google.api.client.http.HttpTransport transport)
Description copied from interface:ThreeLeggedFlow
SetHttpTransport
instance for this three legged flow.- Specified by:
setHttpTransport
in interfaceThreeLeggedFlow
-
setJsonFactory
public void setJsonFactory(com.google.api.client.json.JsonFactory jsonFactory)
Description copied from interface:ThreeLeggedFlow
SetJsonFactory
instance for this three legged flow.- Specified by:
setJsonFactory
in interfaceThreeLeggedFlow
-
-