Class OIDCLoginProtocol

java.lang.Object
org.keycloak.protocol.oidc.OIDCLoginProtocol
All Implemented Interfaces:
org.keycloak.protocol.LoginProtocol, org.keycloak.provider.Provider

public class OIDCLoginProtocol extends Object implements org.keycloak.protocol.LoginProtocol
Author:
Bill Burke, Stian Thorgersen
  • Field Details

  • 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

      public OIDCLoginProtocol(OIDCProviderConfig providerConfig)
  • Method Details

    • setSession

      public OIDCLoginProtocol setSession(org.keycloak.models.KeycloakSession session)
      Specified by:
      setSession in interface org.keycloak.protocol.LoginProtocol
    • setRealm

      public OIDCLoginProtocol setRealm(org.keycloak.models.RealmModel realm)
      Specified by:
      setRealm in interface org.keycloak.protocol.LoginProtocol
    • setUriInfo

      public OIDCLoginProtocol setUriInfo(jakarta.ws.rs.core.UriInfo uriInfo)
      Specified by:
      setUriInfo in interface org.keycloak.protocol.LoginProtocol
    • setHttpHeaders

      public OIDCLoginProtocol setHttpHeaders(jakarta.ws.rs.core.HttpHeaders headers)
      Specified by:
      setHttpHeaders in interface org.keycloak.protocol.LoginProtocol
    • setEventBuilder

      public OIDCLoginProtocol setEventBuilder(org.keycloak.events.EventBuilder event)
      Specified by:
      setEventBuilder in interface org.keycloak.protocol.LoginProtocol
    • getConfig

      public OIDCProviderConfig 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:
      authenticated in interface org.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 the OIDCLoginProtocol to 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 the OIDCLoginProtocol to 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:
      sendError in interface org.keycloak.protocol.LoginProtocol
    • getClientData

      public org.keycloak.protocol.ClientData getClientData(org.keycloak.sessions.AuthenticationSessionModel authSession)
      Specified by:
      getClientData in interface org.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:
      sendError in interface org.keycloak.protocol.LoginProtocol
    • backchannelLogout

      public jakarta.ws.rs.core.Response backchannelLogout(org.keycloak.models.UserSessionModel userSession, org.keycloak.models.AuthenticatedClientSessionModel clientSession)
      Specified by:
      backchannelLogout in interface org.keycloak.protocol.LoginProtocol
    • frontchannelLogout

      public jakarta.ws.rs.core.Response frontchannelLogout(org.keycloak.models.UserSessionModel userSession, org.keycloak.models.AuthenticatedClientSessionModel clientSession)
      Specified by:
      frontchannelLogout in interface org.keycloak.protocol.LoginProtocol
    • finishBrowserLogout

      public jakarta.ws.rs.core.Response finishBrowserLogout(org.keycloak.models.UserSessionModel userSession, org.keycloak.sessions.AuthenticationSessionModel logoutSession)
      Specified by:
      finishBrowserLogout in interface org.keycloak.protocol.LoginProtocol
    • requireReauthentication

      public boolean requireReauthentication(org.keycloak.models.UserSessionModel userSession, org.keycloak.sessions.AuthenticationSessionModel authSession)
      Specified by:
      requireReauthentication in interface org.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:
      sendPushRevocationPolicyRequest in interface org.keycloak.protocol.LoginProtocol
    • authenticationComplete

      public void authenticationComplete(org.keycloak.sessions.AuthenticationSessionModel authSession)
      Specified by:
      authenticationComplete in interface org.keycloak.protocol.LoginProtocol
    • close

      public void close()
      Specified by:
      close in interface org.keycloak.provider.Provider