Class KeycloakAuthenticatorValve

java.lang.Object
org.apache.catalina.util.LifecycleBase
org.apache.catalina.util.LifecycleMBeanBase
org.apache.catalina.valves.ValveBase
org.apache.catalina.authenticator.AuthenticatorBase
org.apache.catalina.authenticator.FormAuthenticator
org.nuxeo.shaded.keycloak.adapters.tomcat.AbstractKeycloakAuthenticatorValve
org.nuxeo.shaded.keycloak.adapters.tomcat.KeycloakAuthenticatorValve
All Implemented Interfaces:
jakarta.security.auth.message.config.RegistrationListener, MBeanRegistration, org.apache.catalina.Authenticator, org.apache.catalina.Contained, org.apache.catalina.JmxEnabled, org.apache.catalina.Lifecycle, org.apache.catalina.LifecycleListener, org.apache.catalina.Valve

public class KeycloakAuthenticatorValve extends AbstractKeycloakAuthenticatorValve
Keycloak authentication valve
Version:
$Revision: 1 $
Author:
Bill Burke
Implementation Note:
Copied from Keycloak Tomcat Adapter since it won't be upgraded to Jakarta as their support is dropped
  • Nested Class Summary

    Nested classes/interfaces inherited from class org.apache.catalina.authenticator.AuthenticatorBase

    org.apache.catalina.authenticator.AuthenticatorBase.AllowCorsPreflight

    Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle

    org.apache.catalina.Lifecycle.SingleUse
  • Field Summary

    Fields inherited from class org.nuxeo.shaded.keycloak.adapters.tomcat.AbstractKeycloakAuthenticatorValve

    deploymentContext, nodesRegistrationManagement, TOKEN_STORE_NOTE, userSessionManagement

    Fields inherited from class org.apache.catalina.authenticator.FormAuthenticator

    authenticationSessionTimeout, characterEncoding, landingPage

    Fields inherited from class org.apache.catalina.authenticator.AuthenticatorBase

    alwaysUseSession, AUTH_HEADER_NAME, cache, changeSessionIdOnAuthentication, context, disableProxyCaching, jaspicCallbackHandlerClass, REALM_NAME, securePagesWithPragma, secureRandomAlgorithm, secureRandomClass, secureRandomProvider, sendAuthInfoResponseHeaders, sessionIdGenerator, sm, sso

    Fields inherited from class org.apache.catalina.valves.ValveBase

    asyncSupported, container, containerLog, next

    Fields inherited from interface org.apache.catalina.Lifecycle

    AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    authenticate(org.apache.catalina.connector.Request request, jakarta.servlet.http.HttpServletResponse response)
     
    createAuthenticatedActionsValve(org.keycloak.adapters.AdapterDeploymentContext deploymentContext, org.apache.catalina.Valve next, org.apache.catalina.Container container)
     
    protected org.keycloak.adapters.tomcat.GenericPrincipalFactory
     
    createRequestAuthenticator(org.apache.catalina.connector.Request request, CatalinaHttpFacade facade, org.keycloak.adapters.KeycloakDeployment deployment, org.keycloak.adapters.AdapterTokenStore tokenStore)
     
    protected boolean
    doAuthenticate(org.apache.catalina.connector.Request request, jakarta.servlet.http.HttpServletResponse response)
     
    protected boolean
    forwardToErrorPageInternal(org.apache.catalina.connector.Request request, jakarta.servlet.http.HttpServletResponse response, Object loginConfig)
     
    protected org.keycloak.adapters.AdapterTokenStore
    getTokenStore(org.apache.catalina.connector.Request request, org.keycloak.adapters.spi.HttpFacade facade, org.keycloak.adapters.KeycloakDeployment resolvedDeployment)
     
    protected void
     
    void
    logout(org.apache.catalina.connector.Request request)
     

    Methods inherited from class org.apache.catalina.authenticator.FormAuthenticator

    forwardToErrorPage, forwardToLoginPage, getAuthenticationSessionTimeout, getAuthMethod, getCharacterEncoding, getLandingPage, isContinuationRequired, matchRequest, register, restoreRequest, savedRequestURL, saveRequest, setAuthenticationSessionTimeout, setCharacterEncoding, setLandingPage

    Methods inherited from class org.apache.catalina.authenticator.AuthenticatorBase

    allowCorsPreflightBypass, associate, changeSessionID, checkForCachedAuthentication, doLogin, getAllowCorsPreflight, getAlwaysUseSession, getCache, getChangeSessionIdOnAuthentication, getContainer, getDisableProxyCaching, getJaspicCallbackHandlerClass, getRealmName, getSecurePagesWithPragma, getSecureRandomAlgorithm, getSecureRandomClass, getSecureRandomProvider, isPreemptiveAuthPossible, isSendAuthInfoResponseHeaders, login, notify, reauthenticateFromSSO, register, setAllowCorsPreflight, setAlwaysUseSession, setCache, setChangeSessionIdOnAuthentication, setContainer, setDisableProxyCaching, setJaspicCallbackHandlerClass, setSecurePagesWithPragma, setSecureRandomAlgorithm, setSecureRandomClass, setSecureRandomProvider, setSendAuthInfoResponseHeaders, startInternal, stopInternal

    Methods inherited from class org.apache.catalina.valves.ValveBase

    backgroundProcess, getDomainInternal, getNext, getObjectNameKeyProperties, isAsyncSupported, setAsyncSupported, setNext, toString

    Methods inherited from class org.apache.catalina.util.LifecycleMBeanBase

    destroyInternal, getDomain, getObjectName, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregister, unregister

    Methods inherited from class org.apache.catalina.util.LifecycleBase

    addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stop

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • KeycloakAuthenticatorValve

      public KeycloakAuthenticatorValve()
  • Method Details

    • authenticate

      public boolean authenticate(org.apache.catalina.connector.Request request, jakarta.servlet.http.HttpServletResponse response) throws IOException
      Specified by:
      authenticate in interface org.apache.catalina.Authenticator
      Overrides:
      authenticate in class org.apache.catalina.authenticator.AuthenticatorBase
      Throws:
      IOException
    • doAuthenticate

      protected boolean doAuthenticate(org.apache.catalina.connector.Request request, jakarta.servlet.http.HttpServletResponse response) throws IOException
      Overrides:
      doAuthenticate in class org.apache.catalina.authenticator.FormAuthenticator
      Throws:
      IOException
    • forwardToErrorPageInternal

      protected boolean forwardToErrorPageInternal(org.apache.catalina.connector.Request request, jakarta.servlet.http.HttpServletResponse response, Object loginConfig) throws IOException
      Specified by:
      forwardToErrorPageInternal in class AbstractKeycloakAuthenticatorValve
      Throws:
      IOException
    • initInternal

      protected void initInternal()
      Overrides:
      initInternal in class org.apache.catalina.valves.ValveBase
    • logout

      public void logout(org.apache.catalina.connector.Request request)
      Specified by:
      logout in interface org.apache.catalina.Authenticator
      Overrides:
      logout in class org.apache.catalina.authenticator.AuthenticatorBase
    • createPrincipalFactory

      protected org.keycloak.adapters.tomcat.GenericPrincipalFactory createPrincipalFactory()
      Specified by:
      createPrincipalFactory in class AbstractKeycloakAuthenticatorValve
    • getTokenStore

      protected org.keycloak.adapters.AdapterTokenStore getTokenStore(org.apache.catalina.connector.Request request, org.keycloak.adapters.spi.HttpFacade facade, org.keycloak.adapters.KeycloakDeployment resolvedDeployment)
      Overrides:
      getTokenStore in class AbstractKeycloakAuthenticatorValve
    • createAuthenticatedActionsValve

      protected AbstractAuthenticatedActionsValve createAuthenticatedActionsValve(org.keycloak.adapters.AdapterDeploymentContext deploymentContext, org.apache.catalina.Valve next, org.apache.catalina.Container container)
      Specified by:
      createAuthenticatedActionsValve in class AbstractKeycloakAuthenticatorValve
    • createRequestAuthenticator

      protected CatalinaRequestAuthenticator createRequestAuthenticator(org.apache.catalina.connector.Request request, CatalinaHttpFacade facade, org.keycloak.adapters.KeycloakDeployment deployment, org.keycloak.adapters.AdapterTokenStore tokenStore)
      Overrides:
      createRequestAuthenticator in class AbstractKeycloakAuthenticatorValve