public interface OAuthProviderProcessor<T extends AccessTokenContext>
| Modifier and Type | Method and Description |
|---|---|
T |
getAccessTokenFromUserProfile(org.exoplatform.services.organization.UserProfile userProfile,
OAuthCodec codec)
Obtain needed data from given userProfile and create accessToken from them
|
<C> C |
getAuthorizedSocialApiObject(T accessToken,
Class<C> socialApiObjectType)
Return object, which can be used to call some operations on this Social network.
|
InteractionState<T> |
processOAuthInteraction(javax.servlet.http.HttpServletRequest httpRequest,
javax.servlet.http.HttpServletResponse httpResponse)
Process OAuth workflow for this OAuth provider (social network).
|
InteractionState<T> |
processOAuthInteraction(javax.servlet.http.HttpServletRequest httpRequest,
javax.servlet.http.HttpServletResponse httpResponse,
String scope)
Possibility to create new OAuth interaction with custom scope (not just the scope which is provided in configuration of this OAuth processor)
|
void |
removeAccessTokenFromUserProfile(org.exoplatform.services.organization.UserProfile userProfile)
Remove data about access token from this user profile
|
void |
revokeToken(T accessToken)
Revoke given access token on OAuth provider side, so application is removed from list of supported applications for given user
|
void |
saveAccessTokenAttributesToUserProfile(org.exoplatform.services.organization.UserProfile userProfile,
OAuthCodec codec,
T accessToken)
Save accessToken data to given userProfile.
|
T |
validateTokenAndUpdateScopes(T accessToken)
Send request to OAuth Provider to validate if given access token is valid and ask for scopes, which are available for given accessToken.
|
InteractionState<T> processOAuthInteraction(javax.servlet.http.HttpServletRequest httpRequest, javax.servlet.http.HttpServletResponse httpResponse) throws IOException, OAuthException
InteractionState
is in state InteractionState.State.FINISH and in this case, InteractionState should also have accessToken filled.
If InteractionState is in state InteractionState.State.AUTH, then more redirections are needed. In this case,
given HttpServletResponse should be already committed and prepared for redirection.httpRequest - httpResponse - IOException - if IO error occured (for example if httpResponse.sendRedirect failed)OAuthException - in case of some other error, which may be specific for this OAuth processor (Details are available in error code)
Caller should be able to handle at least OAuthExceptionCode.USER_DENIED_SCOPE
which happens when user denied scope (authorization screen in web of given social network)InteractionState<T> processOAuthInteraction(javax.servlet.http.HttpServletRequest httpRequest, javax.servlet.http.HttpServletResponse httpResponse, String scope) throws IOException, OAuthException
httpRequest - httpResponse - scope - custom scope, which contains all scopes in single String divided by AccessTokenContext.DELIMITERIOExceptionOAuthExceptionprocessOAuthInteraction(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)void revokeToken(T accessToken) throws OAuthException
accessToken - access token to revokeOAuthException - with code OAuthExceptionCode.TOKEN_REVOCATION_FAILED
if remote revocation of access token failed for some reasonT validateTokenAndUpdateScopes(T accessToken) throws OAuthException
accessToken - accessToken which will be used to ask OAuthProvider about validation and for available scopesOAuthException - usually with codes:
- OAuthExceptionCode.ACCESS_TOKEN_ERROR if invalid access is used as argument
- OAuthExceptionCode.IO_ERROR if IO error occurs<C> C getAuthorizedSocialApiObject(T accessToken, Class<C> socialApiObjectType)
socialApiObjectType - Type of object, which we wanted to return. Method will return null if this type is not supported by this processoraccessToken - access token used to initialize objectvoid saveAccessTokenAttributesToUserProfile(org.exoplatform.services.organization.UserProfile userProfile,
OAuthCodec codec,
T accessToken)
userProfile - where data about access token will be filledcodec - to encode some attributes (sensitive data) before save them to user profileaccessToken - specific access token for this OAuth processorT getAccessTokenFromUserProfile(org.exoplatform.services.organization.UserProfile userProfile, OAuthCodec codec)
userProfile - where data from access token will be obtainedcodec - to decode data from userProfilevoid removeAccessTokenFromUserProfile(org.exoplatform.services.organization.UserProfile userProfile)
userProfile - from which data will be removedCopyright © 2018 JBoss by Red Hat. All Rights Reserved.