Package com.iizix.server.oauth
Class AbstractOAuthService
- java.lang.Object
- com.iizix.server.oauth.AbstractOAuthService
- All Implemented Interfaces:
IOAuthService
public abstract class AbstractOAuthService extends java.lang.Object implements IOAuthService
The abstract service service using OAuth 1.0a or OAuth 2.0.
Field Summary
Fields Modifier and Type Field Description protected static java.lang.String
ACCEPT_LANGUAGE
Accept English US language.protected AccessToken
accessToken
The access token, null for none.protected com.github.scribejava.core.oauth.OAuth10aService
service1
The OAuth 1.0a authentication service.protected com.github.scribejava.core.oauth.OAuth20Service
service2
The OAuth 2.0 authentication service.protected OAuthSession
session
The session.
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractOAuthService(OAuthSession session, com.github.scribejava.core.oauth.OAuth10aService service)
Constructs the service for OAuth 1.0a.protected
AbstractOAuthService(OAuthSession session, com.github.scribejava.core.oauth.OAuth20Service service)
Constructs the service for OAuth 2.0.
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected static com.github.scribejava.core.builder.ServiceBuilder
createServiceBuilder(java.lang.String clientID, java.lang.String clientSecret)
Creates a ServiceBuilder that is initialized for debugging or not.void
dispose()
Disposes of the session, i.e.void
disposeBlocked()
Disposes of the session because of a blocked pop-up window.void
disposeUserCancel()
Disposes of the session because of a user cancel action.void
doAuthenticate(IOAuthListener listener)
protected AccessToken
getAccessToken()
Gets an access token, perhaps by means of refresh.com.github.scribejava.core.model.OAuth1AccessToken
getAccessToken1()
Gets the current, refreshes or get a new OAuth 1.0a Access Token.com.github.scribejava.core.model.OAuth2AccessToken
getAccessToken2()
Gets the current, refreshes or get a new OAuth 2.0 Access Token.protected static java.io.OutputStream
getDebugOutputStream()
Gets the output stream for debugging.abstract java.lang.String
getLogoutURL()
Returns the logout URL for the OAuth service.protected long
getRequestAdditionalTime()
The default additional required time in milliseconds to process a request, i.e.abstract UserProfileInfo
getUserProfileInfo()
Gets the UserProfileInformation from this service.boolean
invalidateAccessToken()
Invalidates the current Access Token that may be valid for quite some time.protected static void
validate(java.lang.String clientID, java.lang.String clientSecret, java.lang.String... scopes)
Validates the clientID, clientSecret and scopes.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.iizix.comm.oauth.IOAuthService
getApproximateSize, getAuthenticationProvider, getServiceName
Field Detail
ACCEPT_LANGUAGE
protected static final java.lang.String ACCEPT_LANGUAGE
Accept English US language.- See Also:
- Constant Field Values
session
protected final OAuthSession session
The session.
service1
protected final com.github.scribejava.core.oauth.OAuth10aService service1
The OAuth 1.0a authentication service.
service2
protected final com.github.scribejava.core.oauth.OAuth20Service service2
The OAuth 2.0 authentication service.
accessToken
protected AccessToken accessToken
The access token, null for none.
Constructor Detail
AbstractOAuthService
protected AbstractOAuthService(OAuthSession session, com.github.scribejava.core.oauth.OAuth20Service service)
Constructs the service for OAuth 2.0.- Parameters:
session
- The session.service
- The service.- Throws:
java.lang.NullPointerException
- Ifsession
orservice
isnull
.
AbstractOAuthService
protected AbstractOAuthService(OAuthSession session, com.github.scribejava.core.oauth.OAuth10aService service)
Constructs the service for OAuth 1.0a.- Parameters:
session
- The session.service
- The service.- Throws:
java.lang.NullPointerException
- Ifsession
orservice
isnull
.
Method Detail
validate
protected static void validate(java.lang.String clientID, java.lang.String clientSecret, java.lang.String... scopes)
Validates the clientID, clientSecret and scopes.- Parameters:
clientID
- The Client ID.clientSecret
- The Client Secret.scopes
- The list of scopes as an array, ornull
for default scopes.- Throws:
java.lang.NullPointerException
- IfclientID
,clientSecret
or any of thescopes
values are null isnull
.java.lang.IllegalArgumentException
- IfclientID
,clientSecret
or any of thescopes
values is empty.
createServiceBuilder
protected static com.github.scribejava.core.builder.ServiceBuilder createServiceBuilder(java.lang.String clientID, java.lang.String clientSecret)
Creates a ServiceBuilder that is initialized for debugging or not.- Parameters:
clientID
- The Client ID.clientSecret
- The Client Secret.- Returns:
- ServiceBuilder The service builder instance.
- Throws:
java.lang.NullPointerException
- IfclientID
orclientSecret
isnull
.java.lang.IllegalArgumentException
- IfclientID
orclientSecret
is empty String.
getDebugOutputStream
protected static java.io.OutputStream getDebugOutputStream()
Gets the output stream for debugging.- Returns:
- The output stream when debugging, or {code null} when not debugging.
getRequestAdditionalTime
protected long getRequestAdditionalTime()
The default additional required time in milliseconds to process a request, i.e. to see if an access token is still valid.Subclasses override this method to return another value.
- Returns:
- The default value of 20_000 milliseconds (20 seconds).
getLogoutURL
public abstract java.lang.String getLogoutURL()
Returns the logout URL for the OAuth service. It is not the same as invalidating an access URL.Subclasses must override this method and implement a return value.
- Returns:
- The logout URL, or
null
if none exists.
disposeBlocked
public void disposeBlocked()
Disposes of the session because of a blocked pop-up window. The listener is notified, if any.- Specified by:
disposeBlocked
in interfaceIOAuthService
disposeUserCancel
public void disposeUserCancel()
Disposes of the session because of a user cancel action.- Specified by:
disposeUserCancel
in interfaceIOAuthService
dispose
public final void dispose()
Disposes of the session, i.e. can e.g. close an asynchronous client in progress.- Specified by:
dispose
in interfaceIOAuthService
doAuthenticate
public void doAuthenticate(IOAuthListener listener) throws java.io.IOException, java.lang.InterruptedException, java.util.concurrent.ExecutionException
- Throws:
java.io.IOException
java.lang.InterruptedException
java.util.concurrent.ExecutionException
getAccessToken
protected final AccessToken getAccessToken() throws java.io.IOException, java.lang.InterruptedException, java.util.concurrent.ExecutionException
Gets an access token, perhaps by means of refresh.- Returns:
- The AccessToken instance.
- Throws:
java.lang.IllegalStateException
- If the authentication has not completed successfully.java.io.IOException
- For I/O errors.java.util.concurrent.ExecutionException
- If execution failed when requesting the token.java.lang.InterruptedException
- If thread was interrupted while waiting for the token.
invalidateAccessToken
public boolean invalidateAccessToken() throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.io.IOException
Invalidates the current Access Token that may be valid for quite some time.The last access token is revoked and this might lead to IOException's.
For OAuth 1.0, this method just clears the Access Token so it has to be retrieved again and just returns false for failure.
- Returns:
- true for success, false for failure (no token to invalidate), or the service is of OAuth 1.0a type.
- Throws:
java.util.concurrent.ExecutionException
- For execution errors.java.lang.InterruptedException
- If the revocation action was interrupted.java.io.IOException
- For I/O errors.
getAccessToken2
public final com.github.scribejava.core.model.OAuth2AccessToken getAccessToken2() throws java.io.IOException, java.lang.InterruptedException, java.util.concurrent.ExecutionException
Gets the current, refreshes or get a new OAuth 2.0 Access Token.- Returns:
- The OAuth 2.0 Access Token instance.
- Throws:
java.lang.IllegalStateException
- If the authentication has not completed successfully.java.io.IOException
- For I/O errors.java.util.concurrent.ExecutionException
- If execution failed when requesting the token.java.lang.InterruptedException
- If thread was interrupted while waiting for the token.
getAccessToken1
public final com.github.scribejava.core.model.OAuth1AccessToken getAccessToken1() throws java.io.IOException, java.lang.InterruptedException, java.util.concurrent.ExecutionException
Gets the current, refreshes or get a new OAuth 1.0a Access Token.- Returns:
- The OAuth 1.0a Access Token instance.
- Throws:
java.lang.IllegalStateException
- If the authentication has not completed successfully.java.io.IOException
- For I/O errors.java.util.concurrent.ExecutionException
- If execution failed when requesting the token.java.lang.InterruptedException
- If thread was interrupted while waiting for the token.
getUserProfileInfo
public abstract UserProfileInfo getUserProfileInfo() throws java.io.IOException, java.lang.InterruptedException, java.util.concurrent.ExecutionException
Gets the UserProfileInformation from this service.This will cause the user to have to authenticate with the service, unless not already done.
All fields available for this service that are possible to set and available will be initialized. Other values will be left
null
, unknown or undefined.- Returns:
- The UserProfileInfo instance.
- Throws:
java.util.concurrent.ExecutionException
- For execution errors.java.lang.InterruptedException
- If the revocation action was interrupted.java.io.IOException
- For I/O errors.