Package org.keycloak.protocol.oidc
Class OIDCLoginProtocol
java.lang.Object
org.keycloak.protocol.oidc.OIDCLoginProtocol
- All Implemented Interfaces:
org.keycloak.protocol.LoginProtocol,org.keycloak.provider.Provider
- Author:
- Bill Burke, Stian Thorgersen
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.keycloak.protocol.LoginProtocol
org.keycloak.protocol.LoginProtocol.Error -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final StringDeprecated, for removal: This API element is subject to removal in a future version.static final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringprotected org.keycloak.events.EventBuilderstatic final Stringprotected jakarta.ws.rs.core.HttpHeadersstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final intstatic final intstatic final intstatic final intstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringprotected OIDCProviderConfigprotected org.keycloak.models.RealmModelstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringprotected OIDCResponseModeprotected OIDCResponseTypestatic final Stringprotected org.keycloak.models.KeycloakSessionstatic final Stringstatic final Stringstatic final Stringprotected jakarta.ws.rs.core.UriInfo -
Constructor Summary
ConstructorsConstructorDescriptionOIDCLoginProtocol(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, jakarta.ws.rs.core.UriInfo uriInfo, jakarta.ws.rs.core.HttpHeaders headers, org.keycloak.events.EventBuilder event) OIDCLoginProtocol(OIDCProviderConfig providerConfig) -
Method Summary
Modifier and TypeMethodDescriptionjakarta.ws.rs.core.Responseauthenticated(org.keycloak.sessions.AuthenticationSessionModel authSession, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx) voidauthenticationComplete(org.keycloak.sessions.AuthenticationSessionModel authSession) jakarta.ws.rs.core.ResponsebackchannelLogout(org.keycloak.models.UserSessionModel userSession, org.keycloak.models.AuthenticatedClientSessionModel clientSession) jakarta.ws.rs.core.ResponsebuildRedirectUri(OIDCRedirectUriBuilder redirectUriBuilder, org.keycloak.sessions.AuthenticationSessionModel authSession, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx) this method can be used in extension-implementations to theOIDCLoginProtocolto add additional parameters to the redirectUri after successful authentication and to store these e.g. in the clientSessionjakarta.ws.rs.core.ResponsebuildRedirectUri(OIDCRedirectUriBuilder redirectUriBuilder, org.keycloak.sessions.AuthenticationSessionModel authSession, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx, Exception ex, org.keycloak.protocol.LoginProtocol.Error oidcError) this method can be used in extension-implementations to theOIDCLoginProtocolto add additional parameters to the redirectUri after failed authenticationvoidclose()jakarta.ws.rs.core.ResponsefinishBrowserLogout(org.keycloak.models.UserSessionModel userSession, org.keycloak.sessions.AuthenticationSessionModel logoutSession) jakarta.ws.rs.core.ResponsefrontchannelLogout(org.keycloak.models.UserSessionModel userSession, org.keycloak.models.AuthenticatedClientSessionModel clientSession) org.keycloak.protocol.ClientDatagetClientData(org.keycloak.sessions.AuthenticationSessionModel authSession) protected booleanisAuthTimeExpired(org.keycloak.models.UserSessionModel userSession, org.keycloak.sessions.AuthenticationSessionModel authSession) protected booleanisPromptLogin(org.keycloak.sessions.AuthenticationSessionModel authSession) protected booleanisReAuthRequiredForKcAction(org.keycloak.models.UserSessionModel userSession, org.keycloak.sessions.AuthenticationSessionModel authSession) booleanrequireReauthentication(org.keycloak.models.UserSessionModel userSession, org.keycloak.sessions.AuthenticationSessionModel authSession) jakarta.ws.rs.core.ResponsesendError(org.keycloak.models.ClientModel client, org.keycloak.protocol.ClientData clientData, org.keycloak.protocol.LoginProtocol.Error error) jakarta.ws.rs.core.ResponsesendError(org.keycloak.sessions.AuthenticationSessionModel authSession, org.keycloak.protocol.LoginProtocol.Error error, String errorMessage) booleansendPushRevocationPolicyRequest(org.keycloak.models.RealmModel realm, org.keycloak.models.ClientModel resource, int notBefore, String managementUrl) setEventBuilder(org.keycloak.events.EventBuilder event) setHttpHeaders(jakarta.ws.rs.core.HttpHeaders headers) setRealm(org.keycloak.models.RealmModel realm) setSession(org.keycloak.models.KeycloakSession session) setUriInfo(jakarta.ws.rs.core.UriInfo uriInfo)
-
Field Details
-
LOGIN_PROTOCOL
- See Also:
-
STATE_PARAM
- See Also:
-
SCOPE_PARAM
- See Also:
-
RESOURCE_PARAM
- See Also:
-
CODE_PARAM
- See Also:
-
RESPONSE_TYPE_PARAM
- See Also:
-
GRANT_TYPE_PARAM
- See Also:
-
REDIRECT_URI_PARAM
- See Also:
-
POST_LOGOUT_REDIRECT_URI_PARAM
- See Also:
-
CLIENT_ID_PARAM
- See Also:
-
NONCE_PARAM
- See Also:
-
MAX_AGE_PARAM
- See Also:
-
PROMPT_PARAM
- See Also:
-
LOGIN_HINT_PARAM
- See Also:
-
REQUEST_PARAM
- See Also:
-
REQUEST_URI_PARAM
- See Also:
-
UI_LOCALES_PARAM
- See Also:
-
CLAIMS_PARAM
- See Also:
-
ACR_PARAM
- See Also:
-
ID_TOKEN_HINT
- See Also:
-
CONSENT_NOTE
- See Also:
-
LOGOUT_STATE_PARAM
- See Also:
-
LOGOUT_REDIRECT_URI
- See Also:
-
LOGOUT_VALIDATED_ID_TOKEN_SESSION_STATE
- See Also:
-
LOGOUT_VALIDATED_ID_TOKEN_ISSUED_AT
- See Also:
-
ISSUER
- See Also:
-
RESPONSE_MODE_PARAM
- See Also:
-
PROMPT_VALUE_NONE
- See Also:
-
PROMPT_VALUE_LOGIN
- See Also:
-
PROMPT_VALUE_CONSENT
- See Also:
-
PROMPT_VALUE_CREATE
- See Also:
-
PROMPT_VALUE_SELECT_ACCOUNT
- See Also:
-
CLIENT_SECRET_BASIC
- See Also:
-
CLIENT_SECRET_POST
- See Also:
-
CLIENT_SECRET_JWT
- See Also:
-
PRIVATE_KEY_JWT
- See Also:
-
TLS_CLIENT_AUTH
- See Also:
-
ATTEST_JWT_CLIENT_AUTH
- See Also:
-
CLIENT_SECRET_BASIC_UNENCODED
Deprecated, for removal: This API element is subject to removal in a future version.This is just for legacy setups which expect an unencoded, non-RFC6749 compliant client secret send from Keycloak to an IdP.- See Also:
-
CODE_CHALLENGE_PARAM
- See Also:
-
CODE_CHALLENGE_METHOD_PARAM
- See Also:
-
PKCE_CODE_CHALLENGE_MIN_LENGTH
public static final int PKCE_CODE_CHALLENGE_MIN_LENGTH- See Also:
-
PKCE_CODE_CHALLENGE_MAX_LENGTH
public static final int PKCE_CODE_CHALLENGE_MAX_LENGTH- See Also:
-
PKCE_CODE_VERIFIER_MIN_LENGTH
public static final int PKCE_CODE_VERIFIER_MIN_LENGTH- See Also:
-
PKCE_CODE_VERIFIER_MAX_LENGTH
public static final int PKCE_CODE_VERIFIER_MAX_LENGTH- See Also:
-
PKCE_METHOD_PLAIN
- See Also:
-
PKCE_METHOD_S256
- See Also:
-
DPOP_JKT
- See Also:
-
session
protected org.keycloak.models.KeycloakSession session -
realm
protected org.keycloak.models.RealmModel realm -
uriInfo
protected jakarta.ws.rs.core.UriInfo uriInfo -
headers
protected jakarta.ws.rs.core.HttpHeaders headers -
event
protected org.keycloak.events.EventBuilder event -
responseType
-
responseMode
-
providerConfig
-
-
Constructor Details
-
OIDCLoginProtocol
public OIDCLoginProtocol(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, jakarta.ws.rs.core.UriInfo uriInfo, jakarta.ws.rs.core.HttpHeaders headers, org.keycloak.events.EventBuilder event) -
OIDCLoginProtocol
-
-
Method Details
-
setSession
- Specified by:
setSessionin interfaceorg.keycloak.protocol.LoginProtocol
-
setRealm
- Specified by:
setRealmin interfaceorg.keycloak.protocol.LoginProtocol
-
setUriInfo
- Specified by:
setUriInfoin interfaceorg.keycloak.protocol.LoginProtocol
-
setHttpHeaders
- Specified by:
setHttpHeadersin interfaceorg.keycloak.protocol.LoginProtocol
-
setEventBuilder
- Specified by:
setEventBuilderin interfaceorg.keycloak.protocol.LoginProtocol
-
getConfig
-
authenticated
public jakarta.ws.rs.core.Response authenticated(org.keycloak.sessions.AuthenticationSessionModel authSession, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx) - Specified by:
authenticatedin interfaceorg.keycloak.protocol.LoginProtocol
-
buildRedirectUri
public jakarta.ws.rs.core.Response buildRedirectUri(OIDCRedirectUriBuilder redirectUriBuilder, org.keycloak.sessions.AuthenticationSessionModel authSession, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx) this method can be used in extension-implementations to theOIDCLoginProtocolto add additional parameters to the redirectUri after successful authentication and to store these e.g. in the clientSession -
buildRedirectUri
public jakarta.ws.rs.core.Response buildRedirectUri(OIDCRedirectUriBuilder redirectUriBuilder, org.keycloak.sessions.AuthenticationSessionModel authSession, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx, Exception ex, org.keycloak.protocol.LoginProtocol.Error oidcError) this method can be used in extension-implementations to theOIDCLoginProtocolto add additional parameters to the redirectUri after failed authentication -
sendError
public jakarta.ws.rs.core.Response sendError(org.keycloak.sessions.AuthenticationSessionModel authSession, org.keycloak.protocol.LoginProtocol.Error error, String errorMessage) - Specified by:
sendErrorin interfaceorg.keycloak.protocol.LoginProtocol
-
getClientData
public org.keycloak.protocol.ClientData getClientData(org.keycloak.sessions.AuthenticationSessionModel authSession) - Specified by:
getClientDatain interfaceorg.keycloak.protocol.LoginProtocol
-
sendError
public jakarta.ws.rs.core.Response sendError(org.keycloak.models.ClientModel client, org.keycloak.protocol.ClientData clientData, org.keycloak.protocol.LoginProtocol.Error error) - Specified by:
sendErrorin interfaceorg.keycloak.protocol.LoginProtocol
-
backchannelLogout
public jakarta.ws.rs.core.Response backchannelLogout(org.keycloak.models.UserSessionModel userSession, org.keycloak.models.AuthenticatedClientSessionModel clientSession) - Specified by:
backchannelLogoutin interfaceorg.keycloak.protocol.LoginProtocol
-
frontchannelLogout
public jakarta.ws.rs.core.Response frontchannelLogout(org.keycloak.models.UserSessionModel userSession, org.keycloak.models.AuthenticatedClientSessionModel clientSession) - Specified by:
frontchannelLogoutin interfaceorg.keycloak.protocol.LoginProtocol
-
finishBrowserLogout
public jakarta.ws.rs.core.Response finishBrowserLogout(org.keycloak.models.UserSessionModel userSession, org.keycloak.sessions.AuthenticationSessionModel logoutSession) - Specified by:
finishBrowserLogoutin interfaceorg.keycloak.protocol.LoginProtocol
-
requireReauthentication
public boolean requireReauthentication(org.keycloak.models.UserSessionModel userSession, org.keycloak.sessions.AuthenticationSessionModel authSession) - Specified by:
requireReauthenticationin interfaceorg.keycloak.protocol.LoginProtocol
-
isPromptLogin
protected boolean isPromptLogin(org.keycloak.sessions.AuthenticationSessionModel authSession) -
isAuthTimeExpired
protected boolean isAuthTimeExpired(org.keycloak.models.UserSessionModel userSession, org.keycloak.sessions.AuthenticationSessionModel authSession) -
isReAuthRequiredForKcAction
protected boolean isReAuthRequiredForKcAction(org.keycloak.models.UserSessionModel userSession, org.keycloak.sessions.AuthenticationSessionModel authSession) -
sendPushRevocationPolicyRequest
public boolean sendPushRevocationPolicyRequest(org.keycloak.models.RealmModel realm, org.keycloak.models.ClientModel resource, int notBefore, String managementUrl) - Specified by:
sendPushRevocationPolicyRequestin interfaceorg.keycloak.protocol.LoginProtocol
-
authenticationComplete
public void authenticationComplete(org.keycloak.sessions.AuthenticationSessionModel authSession) - Specified by:
authenticationCompletein interfaceorg.keycloak.protocol.LoginProtocol
-
close
public void close()- Specified by:
closein interfaceorg.keycloak.provider.Provider
-