javax.management.MBeanRegistration
, javax.security.auth.message.config.RegistrationListener
, Authenticator
, Contained
, JmxEnabled
, Lifecycle
, Valve
public class DigestAuthenticator extends AuthenticatorBase
Modifier and Type | Class | Description |
---|---|---|
static class |
DigestAuthenticator.DigestInfo |
|
static class |
DigestAuthenticator.NonceInfo |
Lifecycle.SingleUse
Modifier and Type | Field | Description |
---|---|---|
protected java.lang.String |
key |
Private key.
|
protected long |
lastTimestamp |
The last timestamp used to generate a nonce.
|
protected java.lang.Object |
lastTimestampLock |
|
protected int |
nonceCacheSize |
Maximum number of server nonces to keep in the cache.
|
protected int |
nonceCountWindowSize |
The window size to use to track seen nonce count values for a given
nonce.
|
protected java.util.Map<java.lang.String,DigestAuthenticator.NonceInfo> |
nonces |
List of server nonce values currently being tracked
|
protected long |
nonceValidity |
How long server nonces are valid for in milliseconds.
|
protected java.lang.String |
opaque |
Opaque string.
|
protected static java.lang.String |
QOP |
Tomcat's DIGEST implementation only supports auth quality of protection.
|
protected boolean |
validateUri |
Should the URI be validated as required by RFC2617?
|
alwaysUseSession, AUTH_HEADER_NAME, cache, changeSessionIdOnAuthentication, context, disableProxyCaching, jaspicCallbackHandlerClass, REALM_NAME, securePagesWithPragma, secureRandomAlgorithm, secureRandomClass, secureRandomProvider, sessionIdGenerator, sm, sso
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
mserver
asyncSupported, container, containerLog, next
Constructor | Description |
---|---|
DigestAuthenticator() |
Modifier and Type | Method | Description |
---|---|---|
protected boolean |
doAuthenticate(Request request,
HttpServletResponse response) |
Authenticate the user making this request, based on the specified
login configuration.
|
protected java.lang.String |
generateNonce(Request request) |
Generate a unique token.
|
protected java.lang.String |
getAuthMethod() |
|
java.lang.String |
getKey() |
|
int |
getNonceCacheSize() |
|
int |
getNonceCountWindowSize() |
|
long |
getNonceValidity() |
|
java.lang.String |
getOpaque() |
|
boolean |
isValidateUri() |
|
protected static java.lang.String |
removeQuotes(java.lang.String quotedString) |
Removes the quotes on a string.
|
protected static java.lang.String |
removeQuotes(java.lang.String quotedString,
boolean quotesRequired) |
Removes the quotes on a string.
|
protected void |
setAuthenticateHeader(HttpServletRequest request,
HttpServletResponse response,
java.lang.String nonce,
boolean isNonceStale) |
Generates the WWW-Authenticate header.
|
void |
setKey(java.lang.String key) |
|
void |
setNonceCacheSize(int nonceCacheSize) |
|
void |
setNonceCountWindowSize(int nonceCountWindowSize) |
|
void |
setNonceValidity(long nonceValidity) |
|
void |
setOpaque(java.lang.String opaque) |
|
void |
setValidateUri(boolean validateUri) |
|
protected void |
startInternal() |
Start this component and implement the requirements of
LifecycleBase.startInternal() . |
associate, authenticate, checkForCachedAuthentication, doLogin, getAlwaysUseSession, getCache, getChangeSessionIdOnAuthentication, getContainer, getDisableProxyCaching, getJaspicCallbackHandlerClass, getRealmName, getRequestCertificates, getSecurePagesWithPragma, getSecureRandomAlgorithm, getSecureRandomClass, getSecureRandomProvider, invoke, isContinuationRequired, login, logout, notify, reauthenticateFromSSO, register, setAlwaysUseSession, setCache, setChangeSessionIdOnAuthentication, setContainer, setDisableProxyCaching, setJaspicCallbackHandlerClass, setSecurePagesWithPragma, setSecureRandomAlgorithm, setSecureRandomClass, setSecureRandomProvider, stopInternal
addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stop
destroyInternal, getDomain, getObjectName, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregister
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
backgroundProcess, getDomainInternal, getNext, getObjectNameKeyProperties, initInternal, isAsyncSupported, setAsyncSupported, setNext, toString
protected static final java.lang.String QOP
protected java.util.Map<java.lang.String,DigestAuthenticator.NonceInfo> nonces
protected long lastTimestamp
protected final java.lang.Object lastTimestampLock
protected int nonceCacheSize
protected int nonceCountWindowSize
protected java.lang.String key
protected long nonceValidity
protected java.lang.String opaque
protected boolean validateUri
public int getNonceCountWindowSize()
public void setNonceCountWindowSize(int nonceCountWindowSize)
public int getNonceCacheSize()
public void setNonceCacheSize(int nonceCacheSize)
public java.lang.String getKey()
public void setKey(java.lang.String key)
public long getNonceValidity()
public void setNonceValidity(long nonceValidity)
public java.lang.String getOpaque()
public void setOpaque(java.lang.String opaque)
public boolean isValidateUri()
public void setValidateUri(boolean validateUri)
protected boolean doAuthenticate(Request request, HttpServletResponse response) throws java.io.IOException
true
if any specified
constraint has been satisfied, or false
if we have
created a response challenge already.doAuthenticate
in class AuthenticatorBase
request
- Request we are processingresponse
- Response we are creatingtrue
if the the user was authenticated, otherwise
false
, in which case an authentication challenge will have been
written to the responsejava.io.IOException
- if an input/output error occursprotected java.lang.String getAuthMethod()
getAuthMethod
in class AuthenticatorBase
protected static java.lang.String removeQuotes(java.lang.String quotedString, boolean quotesRequired)
quotedString
- The quoted stringquotesRequired
- true
if quotes were requiredprotected static java.lang.String removeQuotes(java.lang.String quotedString)
quotedString
- The quoted stringprotected java.lang.String generateNonce(Request request)
request
- HTTP Servlet requestprotected void setAuthenticateHeader(HttpServletRequest request, HttpServletResponse response, java.lang.String nonce, boolean isNonceStale)
The header MUST follow this template :
WWW-Authenticate = "WWW-Authenticate" ":" "Digest" digest-challenge digest-challenge = 1#( realm | [ domain ] | nonce | [ digest-opaque ] |[ stale ] | [ algorithm ] ) realm = "realm" "=" realm-value realm-value = quoted-string domain = "domain" "=" <"> 1#URI <"> nonce = "nonce" "=" nonce-value nonce-value = quoted-string opaque = "opaque" "=" quoted-string stale = "stale" "=" ( "true" | "false" ) algorithm = "algorithm" "=" ( "MD5" | token )
request
- HTTP Servlet requestresponse
- HTTP Servlet responsenonce
- nonce tokenisNonceStale
- true
to add a stale parameterprotected void startInternal() throws LifecycleException
AuthenticatorBase
LifecycleBase.startInternal()
.startInternal
in class AuthenticatorBase
LifecycleException
- if this component detects a fatal error that prevents this
component from being usedCopyright © 2000-2019 Apache Software Foundation. All Rights Reserved.