org.keycloak.broker.oidc

## Class AbstractOAuth2IdentityProvider<C extends OAuth2IdentityProviderConfig>

- java.lang.Object
- - org.keycloak.broker.provider.AbstractIdentityProvider<C>
  - - org.keycloak.broker.oidc.AbstractOAuth2IdentityProvider<C>

- All Implemented Interfaces:
    IdentityProvider<C>, Provider
  Direct Known Subclasses:
    FacebookIdentityProvider, GitHubIdentityProvider, LinkedInIdentityProvider, MicrosoftIdentityProvider, OIDCIdentityProvider, StackoverflowIdentityProvider

      public abstract class AbstractOAuth2IdentityProvider<C extends OAuth2IdentityProviderConfig>
      extends AbstractIdentityProvider<C>

  Author:
    Pedro Igor

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected class` | `AbstractOAuth2IdentityProvider.Endpoint`

    - ### Nested classes/interfaces inherited from interface org.keycloak.broker.provider.IdentityProvider

      `IdentityProvider.AuthenticationCallback`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `ACCESS_DENIED`
    `static String` | `FEDERATED_ACCESS_TOKEN`
    `static String` | `FEDERATED_REFRESH_TOKEN`
    `static String` | `FEDERATED_TOKEN_EXPIRATION`
    `protected static org.jboss.logging.Logger` | `logger`
    `protected static com.fasterxml.jackson.databind.ObjectMapper` | `mapper`
    `static String` | `OAUTH2_GRANT_TYPE_AUTHORIZATION_CODE`
    `static String` | `OAUTH2_GRANT_TYPE_REFRESH_TOKEN`
    `static String` | `OAUTH2_PARAMETER_ACCESS_TOKEN`
    `static String` | `OAUTH2_PARAMETER_CLIENT_ID`
    `static String` | `OAUTH2_PARAMETER_CLIENT_SECRET`
    `static String` | `OAUTH2_PARAMETER_CODE`
    `static String` | `OAUTH2_PARAMETER_GRANT_TYPE`
    `static String` | `OAUTH2_PARAMETER_REDIRECT_URI`
    `static String` | `OAUTH2_PARAMETER_RESPONSE_TYPE`
    `static String` | `OAUTH2_PARAMETER_SCOPE`
    `static String` | `OAUTH2_PARAMETER_STATE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractOAuth2IdentityProvider(C config)`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `com.fasterxml.jackson.databind.JsonNode` | `asJsonNode(String json)`
    `Object` | `callback(RealmModel realm, IdentityProvider.AuthenticationCallback callback, EventBuilder event)` JAXRS callback endpoint for when the remote IDP wants to callback to keycloak.
    `protected javax.ws.rs.core.UriBuilder` | `createAuthorizationUrl(AuthenticationRequest request)`
    `protected BrokeredIdentityContext` | `doGetFederatedIdentity(String accessToken)`
    `protected String` | `extractTokenFromResponse(String response, String tokenName)`
    `C` | `getConfig()`
    `protected abstract String` | `getDefaultScopes()`
    `BrokeredIdentityContext` | `getFederatedIdentity(String response)`
    `String` | `getJsonProperty(com.fasterxml.jackson.databind.JsonNode jsonNode, String name)` Get JSON property as text.
    `javax.ws.rs.core.Response` | `performLogin(AuthenticationRequest request)` Initiates the authentication process by sending an authentication request to an identity provider.
    `javax.ws.rs.core.Response` | `retrieveToken(KeycloakSession session, FederatedIdentityModel identity)` Returns a `Response` containing the token previously stored during the authentication process for a specific user.

    - ### Methods inherited from class org.keycloak.broker.provider.AbstractIdentityProvider

      `attachUserSession, backchannelLogout, close, export, getMarshaller, importNewUser, keycloakInitiatedBrowserLogout, preprocessFederatedIdentity, updateBrokeredUser`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### logger

          protected static final org.jboss.logging.Logger logger

    - #### OAUTH2_GRANT_TYPE_REFRESH_TOKEN

          public static final String OAUTH2_GRANT_TYPE_REFRESH_TOKEN

      See Also:
        Constant Field Values

    - #### OAUTH2_GRANT_TYPE_AUTHORIZATION_CODE

          public static final String OAUTH2_GRANT_TYPE_AUTHORIZATION_CODE

      See Also:
        Constant Field Values

    - #### FEDERATED_ACCESS_TOKEN

          public static final String FEDERATED_ACCESS_TOKEN

      See Also:
        Constant Field Values

    - #### FEDERATED_REFRESH_TOKEN

          public static final String FEDERATED_REFRESH_TOKEN

      See Also:
        Constant Field Values

    - #### FEDERATED_TOKEN_EXPIRATION

          public static final String FEDERATED_TOKEN_EXPIRATION

      See Also:
        Constant Field Values

    - #### ACCESS_DENIED

          public static final String ACCESS_DENIED

      See Also:
        Constant Field Values

    - #### mapper

          protected static com.fasterxml.jackson.databind.ObjectMapper mapper

    - #### OAUTH2_PARAMETER_ACCESS_TOKEN

          public static final String OAUTH2_PARAMETER_ACCESS_TOKEN

      See Also:
        Constant Field Values

    - #### OAUTH2_PARAMETER_SCOPE

          public static final String OAUTH2_PARAMETER_SCOPE

      See Also:
        Constant Field Values

    - #### OAUTH2_PARAMETER_STATE

          public static final String OAUTH2_PARAMETER_STATE

      See Also:
        Constant Field Values

    - #### OAUTH2_PARAMETER_RESPONSE_TYPE

          public static final String OAUTH2_PARAMETER_RESPONSE_TYPE

      See Also:
        Constant Field Values

    - #### OAUTH2_PARAMETER_REDIRECT_URI

          public static final String OAUTH2_PARAMETER_REDIRECT_URI

      See Also:
        Constant Field Values

    - #### OAUTH2_PARAMETER_CODE

          public static final String OAUTH2_PARAMETER_CODE

      See Also:
        Constant Field Values

    - #### OAUTH2_PARAMETER_CLIENT_ID

          public static final String OAUTH2_PARAMETER_CLIENT_ID

      See Also:
        Constant Field Values

    - #### OAUTH2_PARAMETER_CLIENT_SECRET

          public static final String OAUTH2_PARAMETER_CLIENT_SECRET

      See Also:
        Constant Field Values

    - #### OAUTH2_PARAMETER_GRANT_TYPE

          public static final String OAUTH2_PARAMETER_GRANT_TYPE

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### AbstractOAuth2IdentityProvider

          public AbstractOAuth2IdentityProvider(C config)

  - ### Method Detail

    - #### callback

          public Object callback(RealmModel realm,
                                 IdentityProvider.AuthenticationCallback callback,
                                 EventBuilder event)

      Description copied from interface: `IdentityProvider`
      JAXRS callback endpoint for when the remote IDP wants to callback to keycloak.
      Specified by:
        `callback` in interface `IdentityProvider<C extends OAuth2IdentityProviderConfig>`
      Overrides:
        `callback` in class `AbstractIdentityProvider<C extends OAuth2IdentityProviderConfig>`
      Returns:

    - #### performLogin

          public javax.ws.rs.core.Response performLogin(AuthenticationRequest request)

      Description copied from interface: `IdentityProvider`

      Initiates the authentication process by sending an authentication request to an identity provider. This method is called only once during the authentication.

      Specified by:
        `performLogin` in interface `IdentityProvider<C extends OAuth2IdentityProviderConfig>`
      Overrides:
        `performLogin` in class `AbstractIdentityProvider<C extends OAuth2IdentityProviderConfig>`
      Parameters:
        `request` - The initial authentication request. Contains all the contextual information in order to build an authentication request to the identity provider.
      Returns:

    - #### retrieveToken

          public javax.ws.rs.core.Response retrieveToken(KeycloakSession session,
                                                         FederatedIdentityModel identity)

      Description copied from interface: `IdentityProvider`

      Returns a `Response` containing the token previously stored during the authentication process for a specific user.

      Returns:

    - #### getConfig

          public C getConfig()

      Overrides:
        `getConfig` in class `AbstractIdentityProvider<C extends OAuth2IdentityProviderConfig>`

    - #### extractTokenFromResponse

          protected String extractTokenFromResponse(String response,
                                                    String tokenName)

    - #### getFederatedIdentity

          public BrokeredIdentityContext getFederatedIdentity(String response)

    - #### doGetFederatedIdentity

          protected BrokeredIdentityContext doGetFederatedIdentity(String accessToken)

    - #### createAuthorizationUrl

          protected javax.ws.rs.core.UriBuilder createAuthorizationUrl(AuthenticationRequest request)

    - #### getJsonProperty

          public String getJsonProperty(com.fasterxml.jackson.databind.JsonNode jsonNode,
                                        String name)

      Get JSON property as text. JSON numbers and booleans are converted to text. Empty string is converted to null.
      Parameters:
        `jsonNode` - to get property from
        `name` - of property to get
      Returns:
        string value of the property or null.

    - #### asJsonNode

          public com.fasterxml.jackson.databind.JsonNode asJsonNode(String json)
                                                             throws IOException

      Throws:
        `IOException`

    - #### getDefaultScopes

          protected abstract String getDefaultScopes()

Copyright © 2016 JBoss by Red Hat. All rights reserved.