Package org.keycloak.broker.provider
Class AbstractIdentityProvider<C extends IdentityProviderModel>
- java.lang.Object
- 
- org.keycloak.broker.provider.AbstractIdentityProvider<C>
 
- 
- All Implemented Interfaces:
- IdentityProvider<C>,- Provider
 - Direct Known Subclasses:
- AbstractOAuth2IdentityProvider,- SAMLIdentityProvider,- TwitterIdentityProvider
 
 public abstract class AbstractIdentityProvider<C extends IdentityProviderModel> extends Object implements IdentityProvider<C> - Author:
- Pedro Igor
 
- 
- 
Nested Class Summary- 
Nested classes/interfaces inherited from interface org.keycloak.broker.provider.IdentityProviderIdentityProvider.AuthenticationCallback
 
- 
 - 
Field SummaryFields Modifier and Type Field Description static StringACCOUNT_LINK_URLprotected KeycloakSessionsession- 
Fields inherited from interface org.keycloak.broker.provider.IdentityProviderEXTERNAL_IDENTITY_PROVIDER, FEDERATED_ACCESS_TOKEN
 
- 
 - 
Constructor SummaryConstructors Constructor Description AbstractIdentityProvider(KeycloakSession session, C config)
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description voidauthenticationFinished(AuthenticationSessionModel authSession, BrokeredIdentityContext context)voidbackchannelLogout(KeycloakSession session, UserSessionModel userSession, javax.ws.rs.core.UriInfo uriInfo, RealmModel realm)Objectcallback(RealmModel realm, IdentityProvider.AuthenticationCallback callback, EventBuilder event)JAXRS callback endpoint for when the remote IDP wants to callback to keycloak.voidclose()protected javax.ws.rs.core.ResponseexchangeErrorResponse(javax.ws.rs.core.UriInfo uriInfo, ClientModel authorizedClient, UserSessionModel tokenUserSession, String errorCode, String reason)javax.ws.rs.core.ResponseexchangeNotLinked(javax.ws.rs.core.UriInfo uriInfo, ClientModel authorizedClient, UserSessionModel tokenUserSession, UserModel tokenSubject)javax.ws.rs.core.ResponseexchangeNotLinkedNoStore(javax.ws.rs.core.UriInfo uriInfo, ClientModel authorizedClient, UserSessionModel tokenUserSession, UserModel tokenSubject)javax.ws.rs.core.ResponseexchangeNotSupported()javax.ws.rs.core.ResponseexchangeTokenExpired(javax.ws.rs.core.UriInfo uriInfo, ClientModel authorizedClient, UserSessionModel tokenUserSession, UserModel tokenSubject)javax.ws.rs.core.ResponseexchangeUnsupportedRequiredType()javax.ws.rs.core.Responseexport(javax.ws.rs.core.UriInfo uriInfo, RealmModel realm, String format)Export a representation of the IdentityProvider in a specific format.CgetConfig()protected StringgetLinkingUrl(javax.ws.rs.core.UriInfo uriInfo, ClientModel authorizedClient, UserSessionModel tokenUserSession)IdentityProviderDataMarshallergetMarshaller()Implementation of marshaller to serialize/deserialize attached data to Strings, which can be saved in clientSessionvoidimportNewUser(KeycloakSession session, RealmModel realm, UserModel user, BrokeredIdentityContext context)javax.ws.rs.core.ResponsekeycloakInitiatedBrowserLogout(KeycloakSession session, UserSessionModel userSession, javax.ws.rs.core.UriInfo uriInfo, RealmModel realm)Called when a Keycloak application initiates a logout through the browser.javax.ws.rs.core.ResponseperformLogin(AuthenticationRequest request)Initiates the authentication process by sending an authentication request to an identity provider.voidpreprocessFederatedIdentity(KeycloakSession session, RealmModel realm, BrokeredIdentityContext context)voidupdateBrokeredUser(KeycloakSession session, RealmModel realm, UserModel user, BrokeredIdentityContext context)- 
Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 - 
Methods inherited from interface org.keycloak.broker.provider.IdentityProviderretrieveToken
 
- 
 
- 
- 
- 
Field Detail- 
ACCOUNT_LINK_URLpublic static final String ACCOUNT_LINK_URL - See Also:
- Constant Field Values
 
 - 
sessionprotected final KeycloakSession session 
 
- 
 - 
Constructor Detail- 
AbstractIdentityProviderpublic AbstractIdentityProvider(KeycloakSession session, C config) 
 
- 
 - 
Method Detail- 
getConfigpublic C getConfig() 
 - 
exportpublic javax.ws.rs.core.Response export(javax.ws.rs.core.UriInfo uriInfo, RealmModel realm, String format)Description copied from interface:IdentityProviderExport a representation of the IdentityProvider in a specific format. For example, a SAML EntityDescriptor- Specified by:
- exportin interface- IdentityProvider<C extends IdentityProviderModel>
- Returns:
 
 - 
callbackpublic Object callback(RealmModel realm, IdentityProvider.AuthenticationCallback callback, EventBuilder event) Description copied from interface:IdentityProviderJAXRS callback endpoint for when the remote IDP wants to callback to keycloak.- Specified by:
- callbackin interface- IdentityProvider<C extends IdentityProviderModel>
- Returns:
 
 - 
performLoginpublic javax.ws.rs.core.Response performLogin(AuthenticationRequest request) Description copied from interface:IdentityProviderInitiates the authentication process by sending an authentication request to an identity provider. This method is called only once during the authentication. - Specified by:
- performLoginin interface- IdentityProvider<C extends IdentityProviderModel>
- Parameters:
- request- The initial authentication request. Contains all the contextual information in order to build an authentication request to the identity provider.
- Returns:
 
 - 
keycloakInitiatedBrowserLogoutpublic javax.ws.rs.core.Response keycloakInitiatedBrowserLogout(KeycloakSession session, UserSessionModel userSession, javax.ws.rs.core.UriInfo uriInfo, RealmModel realm) Description copied from interface:IdentityProviderCalled when a Keycloak application initiates a logout through the browser. This is expected to do a logout with the IDP- Specified by:
- keycloakInitiatedBrowserLogoutin interface- IdentityProvider<C extends IdentityProviderModel>
- Returns:
- null if this is not supported by this provider
 
 - 
backchannelLogoutpublic void backchannelLogout(KeycloakSession session, UserSessionModel userSession, javax.ws.rs.core.UriInfo uriInfo, RealmModel realm) - Specified by:
- backchannelLogoutin interface- IdentityProvider<C extends IdentityProviderModel>
 
 - 
exchangeNotSupportedpublic javax.ws.rs.core.Response exchangeNotSupported() 
 - 
exchangeNotLinkedpublic javax.ws.rs.core.Response exchangeNotLinked(javax.ws.rs.core.UriInfo uriInfo, ClientModel authorizedClient, UserSessionModel tokenUserSession, UserModel tokenSubject)
 - 
exchangeNotLinkedNoStorepublic javax.ws.rs.core.Response exchangeNotLinkedNoStore(javax.ws.rs.core.UriInfo uriInfo, ClientModel authorizedClient, UserSessionModel tokenUserSession, UserModel tokenSubject)
 - 
exchangeErrorResponseprotected javax.ws.rs.core.Response exchangeErrorResponse(javax.ws.rs.core.UriInfo uriInfo, ClientModel authorizedClient, UserSessionModel tokenUserSession, String errorCode, String reason)
 - 
getLinkingUrlprotected String getLinkingUrl(javax.ws.rs.core.UriInfo uriInfo, ClientModel authorizedClient, UserSessionModel tokenUserSession) 
 - 
exchangeTokenExpiredpublic javax.ws.rs.core.Response exchangeTokenExpired(javax.ws.rs.core.UriInfo uriInfo, ClientModel authorizedClient, UserSessionModel tokenUserSession, UserModel tokenSubject)
 - 
exchangeUnsupportedRequiredTypepublic javax.ws.rs.core.Response exchangeUnsupportedRequiredType() 
 - 
authenticationFinishedpublic void authenticationFinished(AuthenticationSessionModel authSession, BrokeredIdentityContext context) - Specified by:
- authenticationFinishedin interface- IdentityProvider<C extends IdentityProviderModel>
 
 - 
preprocessFederatedIdentitypublic void preprocessFederatedIdentity(KeycloakSession session, RealmModel realm, BrokeredIdentityContext context) - Specified by:
- preprocessFederatedIdentityin interface- IdentityProvider<C extends IdentityProviderModel>
 
 - 
importNewUserpublic void importNewUser(KeycloakSession session, RealmModel realm, UserModel user, BrokeredIdentityContext context) - Specified by:
- importNewUserin interface- IdentityProvider<C extends IdentityProviderModel>
 
 - 
updateBrokeredUserpublic void updateBrokeredUser(KeycloakSession session, RealmModel realm, UserModel user, BrokeredIdentityContext context) - Specified by:
- updateBrokeredUserin interface- IdentityProvider<C extends IdentityProviderModel>
 
 - 
getMarshallerpublic IdentityProviderDataMarshaller getMarshaller() Description copied from interface:IdentityProviderImplementation of marshaller to serialize/deserialize attached data to Strings, which can be saved in clientSession- Specified by:
- getMarshallerin interface- IdentityProvider<C extends IdentityProviderModel>
- Returns:
 
 
- 
 
-