Class OAuth2IdentityProvider
java.lang.Object
com.github.philippheuer.credentialmanager.domain.IdentityProvider
com.github.philippheuer.credentialmanager.identityprovider.OAuth2IdentityProvider
- Direct Known Subclasses:
DefaultOAuth2IdentityProvider,TwitchIdentityProvider
public abstract class OAuth2IdentityProvider extends IdentityProvider
OAuth2 Identity Provider
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.StringauthUrlAuth Endpointprotected java.lang.StringclientIdOAuth Client Idprotected java.lang.StringclientSecretOAuth Client Secretprotected java.lang.StringredirectUrlRedirect URLprotected java.lang.StringresponseTypeResponse Typeprotected java.lang.StringscopeSeperatorScope Separatorprotected java.lang.StringtokenEndpointPostTypeToken Endpoint Post Type: QUERY or BODYprotected java.lang.StringtokenUrlToken EndpointFields inherited from class com.github.philippheuer.credentialmanager.domain.IdentityProvider
configuration, credentialManager, providerName, providerType -
Constructor Summary
Constructors Constructor Description OAuth2IdentityProvider(java.lang.String providerName, java.lang.String providerType, java.lang.String clientId, java.lang.String clientSecret, java.lang.String authUrl, java.lang.String tokenUrl, java.lang.String redirectUrl)Constructor -
Method Summary
Modifier and Type Method Description abstract java.util.Optional<OAuth2Credential>getAdditionalCredentialInformation(OAuth2Credential credential)Get Token InformationOAuth2CredentialgetAppAccessToken()Get a Credential for server-to-server requests using the OAuth2 Client Credentials Flow.java.lang.StringgetAuthenticationUrl(java.lang.String redirectUrl, java.util.List<java.lang.Object> scopes, java.lang.String state)Get Authentication Urljava.lang.StringgetAuthenticationUrl(java.util.List<java.lang.Object> scopes, java.lang.String state)Get Authentication UrlOAuth2CredentialgetCredentialByCode(java.lang.String code)Get Access TokenOAuth2CredentialgetCredentialByUsernameAndPassword(java.lang.String username, java.lang.String password)Get Access TokenOAuth2CredentialgetScopedCredentialByUsernameAndPassword(java.lang.String username, java.lang.String password, java.lang.String scope)Get Access Tokenjava.util.Optional<OAuth2Credential>refreshCredential(OAuth2Credential oldCredential)Refresh access token using refresh tokenMethods inherited from class com.github.philippheuer.credentialmanager.domain.IdentityProvider
canEqual, equals, getConfiguration, getCredentialManager, getProviderName, getProviderType, hashCode, setConfiguration, setCredentialManager, setProviderName, setProviderType, toStringMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Field Details
-
clientId
protected java.lang.String clientIdOAuth Client Id -
clientSecret
protected java.lang.String clientSecretOAuth Client Secret -
authUrl
protected java.lang.String authUrlAuth Endpoint -
tokenUrl
protected java.lang.String tokenUrlToken Endpoint -
redirectUrl
protected java.lang.String redirectUrlRedirect URL -
scopeSeperator
protected java.lang.String scopeSeperatorScope Separator -
responseType
protected java.lang.String responseTypeResponse Type -
tokenEndpointPostType
protected java.lang.String tokenEndpointPostTypeToken Endpoint Post Type: QUERY or BODY
-
-
Constructor Details
-
OAuth2IdentityProvider
public OAuth2IdentityProvider(java.lang.String providerName, java.lang.String providerType, java.lang.String clientId, java.lang.String clientSecret, java.lang.String authUrl, java.lang.String tokenUrl, java.lang.String redirectUrl)Constructor- Parameters:
providerName- Provider NameproviderType- Provider TypeclientId- Client IDclientSecret- Client SecretauthUrl- Auth URLtokenUrl- Token URLredirectUrl- Redirect URL
-
-
Method Details
-
getAuthenticationUrl
public java.lang.String getAuthenticationUrl(java.util.List<java.lang.Object> scopes, java.lang.String state)Get Authentication Url- Parameters:
scopes- requested scopesstate- state - csrf protection- Returns:
- url
-
getAuthenticationUrl
public java.lang.String getAuthenticationUrl(java.lang.String redirectUrl, java.util.List<java.lang.Object> scopes, java.lang.String state)Get Authentication Url- Parameters:
redirectUrl- overwrite the redirect url with a custom onescopes- requested scopesstate- state - csrf protection- Returns:
- url
-
getCredentialByCode
Get Access Token -
getCredentialByUsernameAndPassword
public OAuth2Credential getCredentialByUsernameAndPassword(java.lang.String username, java.lang.String password)Get Access Token -
getScopedCredentialByUsernameAndPassword
public OAuth2Credential getScopedCredentialByUsernameAndPassword(java.lang.String username, java.lang.String password, java.lang.String scope)Get Access Token -
refreshCredential
Refresh access token using refresh token- Parameters:
oldCredential- The credential to refresh- Returns:
- The refreshed credential
- Throws:
java.lang.UnsupportedOperationException- If the token endpoint type is not "QUERY" or "BODY", or if the credential has no refresh token.java.lang.RuntimeException- If the response is unsuccessful
-
getAppAccessToken
Get a Credential for server-to-server requests using the OAuth2 Client Credentials Flow.- Returns:
- The refreshed credential
- Throws:
java.lang.UnsupportedOperationException- If the token endpoint type is not "QUERY" or "BODY"java.lang.RuntimeException- If the response is unsuccessful
-
getAdditionalCredentialInformation
public abstract java.util.Optional<OAuth2Credential> getAdditionalCredentialInformation(OAuth2Credential credential)Get Token Information- Parameters:
credential- OAuth2 Credential- Returns:
- Token Information
-