Class SpnegoAuthenticator
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.SpnegoAuthenticator
- All Implemented Interfaces:
RegistrationListener, MBeanRegistration, Authenticator, Contained, JmxEnabled, Lifecycle, Valve
A SPNEGO authenticator that uses the SPNEGO/Kerberos support built in to Java 6. Successful Kerberos authentication
depends on the correct configuration of multiple components. If the configuration is invalid, the error messages are
often cryptic although a Google search will usually point you in the right direction.
-
Nested Class Summary
Nested classes/interfaces inherited from class AuthenticatorBase
AuthenticatorBase.AllowCorsPreflight, AuthenticatorBase.SsoReauthenticationModeNested classes/interfaces inherited from interface Lifecycle
Lifecycle.SingleUse -
Field Summary
Fields inherited from class AuthenticatorBase
alwaysUseSession, AUTH_HEADER_NAME, cache, changeSessionIdOnAuthentication, context, disableProxyCaching, jaspicCallbackHandlerClass, REALM_NAME, securePagesWithPragma, secureRandomAlgorithm, secureRandomClass, secureRandomProvider, sendAuthInfoResponseHeaders, sessionIdGenerator, sm, ssoFields inherited from class ValveBase
asyncSupported, container, containerLog, nextFields inherited from interface 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 -
Method Summary
Modifier and TypeMethodDescriptionprotected booleandoAuthenticate(Request request, HttpServletResponse response) Provided for subclasses to implement their specific authentication mechanism.booleanDeprecated.This method will be removed from Tomcat 12 onwards.protected StringReturn the authentication method, which is vendor-specific and not defined by HttpServletRequest.Returns the JAAS login configuration name.Returns the regex pattern for user agents that should not use keep-alive connections.protected voidSubclasses implement this method to perform any instance initialisation required.protected booleanisPreemptiveAuthPossible(Request request) Can the authenticator perform preemptive authentication for the given request?booleanReturns whether delegated credentials should be stored in the subject.voidsetApplyJava8u40Fix(boolean applyJava8u40Fix) Deprecated.This method will be removed from Tomcat 12 onwards.voidsetLoginConfigName(String loginConfigName) Sets the JAAS login configuration name.voidsetNoKeepAliveUserAgents(String noKeepAliveUserAgents) Sets the regex pattern for user agents that should not use keep-alive connections.voidsetStoreDelegatedCredential(boolean storeDelegatedCredential) Sets whether delegated credentials should be stored in the subject.Methods inherited from class AuthenticatorBase
allowCorsPreflightBypass, associate, authenticate, changeSessionID, checkForCachedAuthentication, doLogin, getAllowCorsPreflight, getAlwaysUseSession, getCache, getChangeSessionIdOnAuthentication, getContainer, getDisableProxyCaching, getJaspicCallbackHandlerClass, getRealmName, getSecurePagesWithPragma, getSecureRandomAlgorithm, getSecureRandomClass, getSecureRandomProvider, getSsoReauthenticationMode, invoke, isContinuationRequired, isSendAuthInfoResponseHeaders, login, logout, notify, reauthenticateFromSSO, register, register, setAllowCorsPreflight, setAlwaysUseSession, setCache, setChangeSessionIdOnAuthentication, setContainer, setDisableProxyCaching, setJaspicCallbackHandlerClass, setSecurePagesWithPragma, setSecureRandomAlgorithm, setSecureRandomClass, setSecureRandomProvider, setSendAuthInfoResponseHeaders, setSsoReauthenticationMode, startInternal, stopInternalMethods inherited from class ValveBase
backgroundProcess, getDomainInternal, getNext, getObjectNameKeyProperties, isAsyncSupported, setAsyncSupported, setNext, toStringMethods inherited from class LifecycleMBeanBase
destroyInternal, getDomain, getObjectName, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregister, unregisterMethods inherited from class LifecycleBase
addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stop
-
Constructor Details
-
SpnegoAuthenticator
public SpnegoAuthenticator()Default constructor.
-
-
Method Details
-
getLoginConfigName
Returns the JAAS login configuration name.- Returns:
- the login configuration name
-
setLoginConfigName
Sets the JAAS login configuration name.- Parameters:
loginConfigName- the login configuration name
-
isStoreDelegatedCredential
public boolean isStoreDelegatedCredential()Returns whether delegated credentials should be stored in the subject.- Returns:
trueif delegated credentials are stored
-
setStoreDelegatedCredential
public void setStoreDelegatedCredential(boolean storeDelegatedCredential) Sets whether delegated credentials should be stored in the subject.- Parameters:
storeDelegatedCredential-trueto store delegated credentials
-
getNoKeepAliveUserAgents
Returns the regex pattern for user agents that should not use keep-alive connections.- Returns:
- the regex pattern, or
nullif not configured
-
setNoKeepAliveUserAgents
Sets the regex pattern for user agents that should not use keep-alive connections.- Parameters:
noKeepAliveUserAgents- the regex pattern, ornullto disable
-
getApplyJava8u40Fix
Deprecated.This method will be removed from Tomcat 12 onwards.This attribute is now hard-coded tofalseas the work-around this attribute enabled is no longer required.- Returns:
- Always
false
-
setApplyJava8u40Fix
Deprecated.This method will be removed from Tomcat 12 onwards.This method is now a NO-OP as the work-around this attribute enabled is no longer required.- Parameters:
applyJava8u40Fix- Ignored
-
getAuthMethod
Description copied from class:AuthenticatorBaseReturn the authentication method, which is vendor-specific and not defined by HttpServletRequest.- Specified by:
getAuthMethodin classAuthenticatorBase- Returns:
- the authentication method, which is vendor-specific and not defined by HttpServletRequest.
-
initInternal
Description copied from class:LifecycleBaseSubclasses implement this method to perform any instance initialisation required.- Overrides:
initInternalin classValveBase- Throws:
LifecycleException- If the initialisation fails
-
doAuthenticate
Description copied from class:AuthenticatorBaseProvided for subclasses to implement their specific authentication mechanism.- Specified by:
doAuthenticatein classAuthenticatorBase- Parameters:
request- The request that triggered the authenticationresponse- The response associated with the request- Returns:
trueif the user was authenticated, otherwisefalse, in which case an authentication challenge will have been written to the response- Throws:
IOException- If an I/O problem occurred during the authentication process
-
isPreemptiveAuthPossible
Description copied from class:AuthenticatorBaseCan the authenticator perform preemptive authentication for the given request?- Overrides:
isPreemptiveAuthPossiblein classAuthenticatorBase- Parameters:
request- The request to check for credentials- Returns:
trueif preemptive authentication is possible, otherwisefalse
-