org.keycloak.social.twitter

## Class TwitterIdentityProvider

- java.lang.Object
- - org.keycloak.broker.provider.AbstractIdentityProvider<OAuth2IdentityProviderConfig>
  - - org.keycloak.social.twitter.TwitterIdentityProvider

- All Implemented Interfaces:
    ExchangeTokenToIdentityProviderToken, IdentityProvider<OAuth2IdentityProviderConfig>, SocialIdentityProvider<OAuth2IdentityProviderConfig>, Provider

      public class TwitterIdentityProvider
      extends AbstractIdentityProvider<OAuth2IdentityProviderConfig>
      implements SocialIdentityProvider<OAuth2IdentityProviderConfig>, ExchangeTokenToIdentityProviderToken

  Author:
    Stian Thorgersen

- - ### Nested Class Summary

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

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

      `IdentityProvider.AuthenticationCallback`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static org.jboss.logging.Logger` | `logger`

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

      `ACCOUNT_LINK_URL, session`

    - ### Fields inherited from interface org.keycloak.broker.provider.IdentityProvider

      `EXTERNAL_IDENTITY_PROVIDER, FEDERATED_ACCESS_TOKEN`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TwitterIdentityProvider(KeycloakSession session, OAuth2IdentityProviderConfig config)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `authenticationFinished(AuthenticationSessionModel authSession, BrokeredIdentityContext context)`
    `Object` | `callback(RealmModel realm, IdentityProvider.AuthenticationCallback callback, EventBuilder event)` JAXRS callback endpoint for when the remote IDP wants to callback to keycloak.
    `javax.ws.rs.core.Response` | `exchangeFromToken(javax.ws.rs.core.UriInfo uriInfo, EventBuilder builder, ClientModel authorizedClient, UserSessionModel tokenUserSession, UserModel tokenSubject, javax.ws.rs.core.MultivaluedMap<String,String> params)`
    `protected javax.ws.rs.core.Response` | `exchangeSessionToken(javax.ws.rs.core.UriInfo uriInfo, ClientModel authorizedClient, UserSessionModel tokenUserSession, UserModel tokenSubject)`
    `protected javax.ws.rs.core.Response` | `exchangeStoredToken(javax.ws.rs.core.UriInfo uriInfo, ClientModel authorizedClient, UserSessionModel tokenUserSession, UserModel tokenSubject)`
    `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

      `backchannelLogout, close, exchangeErrorResponse, exchangeNotLinked, exchangeNotLinkedNoStore, exchangeNotSupported, exchangeTokenExpired, exchangeUnsupportedRequiredType, export, getConfig, getLinkingUrl, getMarshaller, importNewUser, keycloakInitiatedBrowserLogout, preprocessFederatedIdentity, updateBrokeredUser`

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

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

    - ### Methods inherited from interface org.keycloak.broker.provider.IdentityProvider

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

    - ### Methods inherited from interface org.keycloak.provider.Provider

      `close`

- - ### Field Detail

    - #### logger

          protected static final org.jboss.logging.Logger logger

  - ### Constructor Detail

    - #### TwitterIdentityProvider

          public TwitterIdentityProvider(KeycloakSession session,
                                         OAuth2IdentityProviderConfig 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<OAuth2IdentityProviderConfig>`
      Overrides:
        `callback` in class `AbstractIdentityProvider<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<OAuth2IdentityProviderConfig>`
      Overrides:
        `performLogin` in class `AbstractIdentityProvider<OAuth2IdentityProviderConfig>`
      Parameters:
        `request` - The initial authentication request. Contains all the contextual information in order to build an authentication request to the identity provider.
      Returns:

    - #### exchangeFromToken

          public javax.ws.rs.core.Response exchangeFromToken(javax.ws.rs.core.UriInfo uriInfo,
                                                             EventBuilder builder,
                                                             ClientModel authorizedClient,
                                                             UserSessionModel tokenUserSession,
                                                             UserModel tokenSubject,
                                                             javax.ws.rs.core.MultivaluedMap<String,String> params)

      Specified by:
        `exchangeFromToken` in interface `ExchangeTokenToIdentityProviderToken`
        `authorizedClient` - client requesting exchange
        `tokenUserSession` - UserSessionModel of token exchanging from
        `tokenSubject` - UserModel of token exchanging from
        `params` - form parameters received for requested exchange
      Returns:

    - #### exchangeStoredToken

          protected javax.ws.rs.core.Response exchangeStoredToken(javax.ws.rs.core.UriInfo uriInfo,
                                                                  ClientModel authorizedClient,
                                                                  UserSessionModel tokenUserSession,
                                                                  UserModel tokenSubject)

    - #### exchangeSessionToken

          protected javax.ws.rs.core.Response exchangeSessionToken(javax.ws.rs.core.UriInfo uriInfo,
                                                                   ClientModel authorizedClient,
                                                                   UserSessionModel tokenUserSession,
                                                                   UserModel tokenSubject)

    - #### 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.

      Specified by:
        `retrieveToken` in interface `IdentityProvider<OAuth2IdentityProviderConfig>`
      Returns:

    - #### authenticationFinished

          public void authenticationFinished(AuthenticationSessionModel authSession,
                                             BrokeredIdentityContext context)

      Specified by:
        `authenticationFinished` in interface `IdentityProvider<OAuth2IdentityProviderConfig>`
      Overrides:
        `authenticationFinished` in class `AbstractIdentityProvider<OAuth2IdentityProviderConfig>`

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