org.springframework.social.oauth2
Interface OAuth2Operations

All Known Implementing Classes:
OAuth2Template

public interface OAuth2Operations

A service interface for the OAuth2 flow. This interface allows you to conduct the "OAuth dance" with a service provider on behalf of a user.


Method Summary
 java.lang.String buildAuthenticateUrl(GrantType grantType, OAuth2Parameters parameters)
          Construct the URL to redirect the user to for authentication.
 java.lang.String buildAuthorizeUrl(GrantType grantType, OAuth2Parameters parameters)
          Construct the URL to redirect the user to for authorization.
 AccessGrant exchangeForAccess(java.lang.String authorizationCode, java.lang.String redirectUri, MultiValueMap<java.lang.String,java.lang.String> additionalParameters)
          Exchange the authorization code for an access grant.
 AccessGrant refreshAccess(java.lang.String refreshToken, java.lang.String scope, MultiValueMap<java.lang.String,java.lang.String> additionalParameters)
          Refreshes a previous access grant.
 

Method Detail

buildAuthorizeUrl

java.lang.String buildAuthorizeUrl(GrantType grantType,
                                   OAuth2Parameters parameters)
Construct the URL to redirect the user to for authorization.

Parameters:
grantType - specifies whether to use client-side or server-side OAuth flow
parameters - authorization parameters needed to build the URL
Returns:
the absolute authorize URL to redirect the user to for authorization

buildAuthenticateUrl

java.lang.String buildAuthenticateUrl(GrantType grantType,
                                      OAuth2Parameters parameters)
Construct the URL to redirect the user to for authentication. The authenticate URL differs from the authorizationUrl slightly in that it does not require the user to authorize the app multiple times. This provides a better user experience for "Sign in with Provider" scenarios.

Parameters:
grantType - specifies whether to use client-side or server-side OAuth flow
parameters - authorization parameters needed to build the URL
Returns:
the absolute authenticate URL to redirect the user to for authorization

exchangeForAccess

AccessGrant exchangeForAccess(java.lang.String authorizationCode,
                              java.lang.String redirectUri,
                              MultiValueMap<java.lang.String,java.lang.String> additionalParameters)
Exchange the authorization code for an access grant.

Parameters:
authorizationCode - the authorization code returned by the provider upon user authorization
redirectUri - the authorization callback url; this value must match the redirectUri registered with the provider
additionalParameters - any additional parameters to be sent when exchanging the authorization code for an access grant. Should not be encoded.
Returns:
the access grant.

refreshAccess

AccessGrant refreshAccess(java.lang.String refreshToken,
                          java.lang.String scope,
                          MultiValueMap<java.lang.String,java.lang.String> additionalParameters)
Refreshes a previous access grant.

Parameters:
refreshToken - the refresh token from the previous access grant.
scope - optional scope to narrow to when refreshing access; if null, the existing scope is preserved.
additionalParameters - any additional parameters to be sent when refreshing a previous access grant. Should not be encoded.
Returns:
the access grant.