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 Details

    • clientId

      protected java.lang.String clientId
      OAuth Client Id
    • clientSecret

      protected java.lang.String clientSecret
      OAuth Client Secret
    • authUrl

      protected java.lang.String authUrl
      Auth Endpoint
    • tokenUrl

      protected java.lang.String tokenUrl
      Token Endpoint
    • redirectUrl

      protected java.lang.String redirectUrl
      Redirect URL
    • scopeSeperator

      protected java.lang.String scopeSeperator
      Scope Separator
    • responseType

      protected java.lang.String responseType
      Response Type
    • tokenEndpointPostType

      protected java.lang.String tokenEndpointPostType
      Token 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 Name
      providerType - Provider Type
      clientId - Client ID
      clientSecret - Client Secret
      authUrl - Auth URL
      tokenUrl - Token URL
      redirectUrl - 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 scopes
      state - 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 one
      scopes - requested scopes
      state - state - csrf protection
      Returns:
      url
    • getCredentialByCode

      public OAuth2Credential getCredentialByCode​(java.lang.String code)
      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

      public java.util.Optional<OAuth2Credential> refreshCredential​(OAuth2Credential oldCredential)
      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

      public OAuth2Credential 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