Package org.keycloak.social.github
Class GitHubIdentityProvider
- java.lang.Object
-
- org.keycloak.broker.provider.AbstractIdentityProvider<C>
-
- org.keycloak.broker.oidc.AbstractOAuth2IdentityProvider
-
- org.keycloak.social.github.GitHubIdentityProvider
-
- All Implemented Interfaces:
ExchangeExternalToken
,ExchangeTokenToIdentityProviderToken
,IdentityProvider
,SocialIdentityProvider
,Provider
public class GitHubIdentityProvider extends AbstractOAuth2IdentityProvider implements SocialIdentityProvider
- Author:
- Stian Thorgersen
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.keycloak.broker.oidc.AbstractOAuth2IdentityProvider
AbstractOAuth2IdentityProvider.Endpoint
-
Nested classes/interfaces inherited from interface org.keycloak.broker.provider.IdentityProvider
IdentityProvider.AuthenticationCallback
-
-
Field Summary
Fields Modifier and Type Field Description protected static String
API_URL_KEY
API URL key in config map.static String
AUTH_FRAGMENT
static String
AUTH_URL
Deprecated.UseDEFAULT_AUTH_URL
instead.protected static String
BASE_URL_KEY
Base URL key in config map.static String
DEFAULT_API_URL
static String
DEFAULT_AUTH_URL
static String
DEFAULT_BASE_URL
static String
DEFAULT_EMAIL_URL
static String
DEFAULT_PROFILE_URL
static String
DEFAULT_SCOPE
static String
DEFAULT_TOKEN_URL
static String
EMAIL_FRAGMENT
static String
EMAIL_URL
Deprecated.UseDEFAULT_EMAIL_URL
instead.protected static String
EMAIL_URL_KEY
Email URL key in config map.static String
PROFILE_FRAGMENT
static String
PROFILE_URL
Deprecated.UseDEFAULT_PROFILE_URL
instead.static String
TOKEN_FRAGMENT
static String
TOKEN_URL
Deprecated.UseDEFAULT_TOKEN_URL
instead.-
Fields inherited from class org.keycloak.broker.oidc.AbstractOAuth2IdentityProvider
ACCESS_DENIED, FEDERATED_REFRESH_TOKEN, FEDERATED_TOKEN_EXPIRATION, logger, mapper, OAUTH2_GRANT_TYPE_AUTHORIZATION_CODE, OAUTH2_GRANT_TYPE_REFRESH_TOKEN, OAUTH2_PARAMETER_ACCESS_TOKEN, OAUTH2_PARAMETER_CLIENT_ID, OAUTH2_PARAMETER_CLIENT_SECRET, OAUTH2_PARAMETER_CODE, OAUTH2_PARAMETER_GRANT_TYPE, OAUTH2_PARAMETER_REDIRECT_URI, OAUTH2_PARAMETER_RESPONSE_TYPE, OAUTH2_PARAMETER_SCOPE, OAUTH2_PARAMETER_STATE
-
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 Description GitHubIdentityProvider(KeycloakSession session, OAuth2IdentityProviderConfig config)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected BrokeredIdentityContext
doGetFederatedIdentity(String accessToken)
protected BrokeredIdentityContext
extractIdentityFromProfile(EventBuilder event, com.fasterxml.jackson.databind.JsonNode profile)
protected String
getDefaultScopes()
protected String
getProfileEndpointForValidation(EventBuilder event)
protected static String
getUrlFromConfig(OAuth2IdentityProviderConfig config, String key, String defaultValue)
Get URL from config with default value fallback.protected boolean
supportsExternalExchange()
-
Methods inherited from class org.keycloak.broker.oidc.AbstractOAuth2IdentityProvider
asJsonNode, authenticateTokenRequest, authenticationFinished, buildUserInfoRequest, callback, createAuthorizationUrl, exchangeExternal, exchangeExternalComplete, exchangeExternalImpl, exchangeExternalUserInfoValidationOnly, exchangeFromToken, exchangeSessionToken, exchangeStoredToken, extractTokenFromResponse, generateToken, getAccessTokenResponseParameter, getConfig, getFederatedIdentity, getJsonProperty, getSignatureContext, hasExternalExchangeToken, isIssuer, performLogin, retrieveToken, validateExternalTokenThroughUserInfo
-
Methods inherited from class org.keycloak.broker.provider.AbstractIdentityProvider
backchannelLogout, close, exchangeErrorResponse, exchangeNotLinked, exchangeNotLinkedNoStore, exchangeNotSupported, exchangeTokenExpired, exchangeUnsupportedRequiredType, export, 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
authenticationFinished, backchannelLogout, callback, export, getMarshaller, importNewUser, keycloakInitiatedBrowserLogout, performLogin, preprocessFederatedIdentity, retrieveToken, updateBrokeredUser
-
-
-
-
Field Detail
-
DEFAULT_BASE_URL
public static final String DEFAULT_BASE_URL
- See Also:
- Constant Field Values
-
AUTH_FRAGMENT
public static final String AUTH_FRAGMENT
- See Also:
- Constant Field Values
-
TOKEN_FRAGMENT
public static final String TOKEN_FRAGMENT
- See Also:
- Constant Field Values
-
DEFAULT_AUTH_URL
public static final String DEFAULT_AUTH_URL
- See Also:
- Constant Field Values
-
DEFAULT_TOKEN_URL
public static final String DEFAULT_TOKEN_URL
- See Also:
- Constant Field Values
-
AUTH_URL
@Deprecated public static final String AUTH_URL
Deprecated.UseDEFAULT_AUTH_URL
instead.- See Also:
- Constant Field Values
-
TOKEN_URL
@Deprecated public static final String TOKEN_URL
Deprecated.UseDEFAULT_TOKEN_URL
instead.- See Also:
- Constant Field Values
-
DEFAULT_API_URL
public static final String DEFAULT_API_URL
- See Also:
- Constant Field Values
-
PROFILE_FRAGMENT
public static final String PROFILE_FRAGMENT
- See Also:
- Constant Field Values
-
EMAIL_FRAGMENT
public static final String EMAIL_FRAGMENT
- See Also:
- Constant Field Values
-
DEFAULT_PROFILE_URL
public static final String DEFAULT_PROFILE_URL
- See Also:
- Constant Field Values
-
DEFAULT_EMAIL_URL
public static final String DEFAULT_EMAIL_URL
- See Also:
- Constant Field Values
-
PROFILE_URL
@Deprecated public static final String PROFILE_URL
Deprecated.UseDEFAULT_PROFILE_URL
instead.- See Also:
- Constant Field Values
-
EMAIL_URL
@Deprecated public static final String EMAIL_URL
Deprecated.UseDEFAULT_EMAIL_URL
instead.- See Also:
- Constant Field Values
-
DEFAULT_SCOPE
public static final String DEFAULT_SCOPE
- See Also:
- Constant Field Values
-
BASE_URL_KEY
protected static final String BASE_URL_KEY
Base URL key in config map.- See Also:
- Constant Field Values
-
API_URL_KEY
protected static final String API_URL_KEY
API URL key in config map.- See Also:
- Constant Field Values
-
EMAIL_URL_KEY
protected static final String EMAIL_URL_KEY
Email URL key in config map.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
GitHubIdentityProvider
public GitHubIdentityProvider(KeycloakSession session, OAuth2IdentityProviderConfig config)
-
-
Method Detail
-
getUrlFromConfig
protected static String getUrlFromConfig(OAuth2IdentityProviderConfig config, String key, String defaultValue)
Get URL from config with default value fallback.- Parameters:
config
- Identity provider configuration.key
- Key to look for value in config's config map.defaultValue
- Default value if value at key is null or empty string.- Returns:
- URL for specified key in the configuration with default value fallback.
-
supportsExternalExchange
protected boolean supportsExternalExchange()
- Overrides:
supportsExternalExchange
in classAbstractOAuth2IdentityProvider
-
getProfileEndpointForValidation
protected String getProfileEndpointForValidation(EventBuilder event)
- Overrides:
getProfileEndpointForValidation
in classAbstractOAuth2IdentityProvider
-
extractIdentityFromProfile
protected BrokeredIdentityContext extractIdentityFromProfile(EventBuilder event, com.fasterxml.jackson.databind.JsonNode profile)
- Overrides:
extractIdentityFromProfile
in classAbstractOAuth2IdentityProvider
-
doGetFederatedIdentity
protected BrokeredIdentityContext doGetFederatedIdentity(String accessToken)
- Overrides:
doGetFederatedIdentity
in classAbstractOAuth2IdentityProvider
-
getDefaultScopes
protected String getDefaultScopes()
- Specified by:
getDefaultScopes
in classAbstractOAuth2IdentityProvider
-
-