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:
org.keycloak.broker.provider.ExchangeExternalToken
,org.keycloak.broker.provider.ExchangeTokenToIdentityProviderToken
,org.keycloak.broker.provider.IdentityProvider
,org.keycloak.broker.social.SocialIdentityProvider
,org.keycloak.provider.Provider
public class GitHubIdentityProvider extends AbstractOAuth2IdentityProvider implements org.keycloak.broker.social.SocialIdentityProvider
- Author:
- Stian Thorgersen
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.keycloak.broker.oidc.AbstractOAuth2IdentityProvider
AbstractOAuth2IdentityProvider.Endpoint
-
-
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
-
-
Constructor Summary
Constructors Constructor Description GitHubIdentityProvider(org.keycloak.models.KeycloakSession session, OAuth2IdentityProviderConfig config)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected org.keycloak.broker.provider.BrokeredIdentityContext
doGetFederatedIdentity(String accessToken)
protected org.keycloak.broker.provider.BrokeredIdentityContext
extractIdentityFromProfile(org.keycloak.events.EventBuilder event, com.fasterxml.jackson.databind.JsonNode profile)
protected String
getDefaultScopes()
protected String
getProfileEndpointForValidation(org.keycloak.events.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
-
-
-
-
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(org.keycloak.models.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(org.keycloak.events.EventBuilder event)
- Overrides:
getProfileEndpointForValidation
in classAbstractOAuth2IdentityProvider
-
extractIdentityFromProfile
protected org.keycloak.broker.provider.BrokeredIdentityContext extractIdentityFromProfile(org.keycloak.events.EventBuilder event, com.fasterxml.jackson.databind.JsonNode profile)
- Overrides:
extractIdentityFromProfile
in classAbstractOAuth2IdentityProvider
-
doGetFederatedIdentity
protected org.keycloak.broker.provider.BrokeredIdentityContext doGetFederatedIdentity(String accessToken)
- Overrides:
doGetFederatedIdentity
in classAbstractOAuth2IdentityProvider
-
getDefaultScopes
protected String getDefaultScopes()
- Specified by:
getDefaultScopes
in classAbstractOAuth2IdentityProvider
-
-