Package org.apache.catalina.realm
Class SecretKeyCredentialHandler
- java.lang.Object
-
- org.apache.catalina.realm.DigestCredentialHandlerBase
-
- org.apache.catalina.realm.SecretKeyCredentialHandler
-
- All Implemented Interfaces:
CredentialHandler
public class SecretKeyCredentialHandler extends DigestCredentialHandlerBase
A credential handler that uses aSecretKeyFactory(PBE) to hash credentials.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringDEFAULT_ALGORITHMThe default algorithm used for key derivation.static intDEFAULT_ITERATIONSThe default number of iterations for key derivation.static intDEFAULT_KEY_LENGTHThe default derived key length in bits.-
Fields inherited from class org.apache.catalina.realm.DigestCredentialHandlerBase
DEFAULT_SALT_LENGTH, sm
-
-
Constructor Summary
Constructors Constructor Description SecretKeyCredentialHandler()Create a handler with the default algorithm.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.StringgetAlgorithm()Get the algorithm used to convert input credentials to stored credentials.protected intgetDefaultIterations()Get the default number of iterations used by theCredentialHandler.intgetKeyLength()Returns the key length.protected LoggetLog()Get the logger for the CredentialHandler instance.booleanmatches(java.lang.String inputCredentials, java.lang.String storedCredentials)Checks to see if the input credentials match the stored credentialsprotected java.lang.Stringmutate(java.lang.String inputCredentials, byte[] salt, int iterations)Generates the equivalent stored credentials for the given input credentials, salt and iterations.protected java.lang.Stringmutate(java.lang.String inputCredentials, byte[] salt, int iterations, int keyLength)Generates the equivalent stored credentials for the given input credentials, salt, iterations and key length.voidsetAlgorithm(java.lang.String algorithm)Set the algorithm used to convert input credentials to stored credentials.voidsetKeyLength(int keyLength)Sets the key length.-
Methods inherited from class org.apache.catalina.realm.DigestCredentialHandlerBase
equals, equals, getDefaultSaltLength, getIterations, getLogInvalidStoredCredentials, getSaltLength, matchesSaltIterationsEncoded, mutate, setIterations, setLogInvalidStoredCredentials, setSaltLength
-
-
-
-
Field Detail
-
DEFAULT_ALGORITHM
public static final java.lang.String DEFAULT_ALGORITHM
The default algorithm used for key derivation.- See Also:
- Constant Field Values
-
DEFAULT_KEY_LENGTH
public static final int DEFAULT_KEY_LENGTH
The default derived key length in bits.- See Also:
- Constant Field Values
-
DEFAULT_ITERATIONS
public static final int DEFAULT_ITERATIONS
The default number of iterations for key derivation.- See Also:
- Constant Field Values
-
-
Method Detail
-
getAlgorithm
public java.lang.String getAlgorithm()
Description copied from class:DigestCredentialHandlerBaseGet the algorithm used to convert input credentials to stored credentials.- Specified by:
getAlgorithmin classDigestCredentialHandlerBase- Returns:
- the algorithm used to convert input credentials to stored credentials.
-
setAlgorithm
public void setAlgorithm(java.lang.String algorithm) throws java.security.NoSuchAlgorithmExceptionDescription copied from class:DigestCredentialHandlerBaseSet the algorithm used to convert input credentials to stored credentials.- Specified by:
setAlgorithmin classDigestCredentialHandlerBase- Parameters:
algorithm- the algorithm- Throws:
java.security.NoSuchAlgorithmException- if the specified algorithm is not supported
-
getKeyLength
public int getKeyLength()
Returns the key length.- Returns:
- the key length
-
setKeyLength
public void setKeyLength(int keyLength)
Sets the key length.- Parameters:
keyLength- the key length
-
matches
public boolean matches(java.lang.String inputCredentials, java.lang.String storedCredentials)Description copied from interface:CredentialHandlerChecks to see if the input credentials match the stored credentials- Parameters:
inputCredentials- User provided credentialsstoredCredentials- Credentials stored in theRealm- Returns:
trueif the inputCredentials match the storedCredentials, otherwisefalse
-
mutate
protected java.lang.String mutate(java.lang.String inputCredentials, byte[] salt, int iterations)Description copied from class:DigestCredentialHandlerBaseGenerates the equivalent stored credentials for the given input credentials, salt and iterations. If the algorithm requires a key length, the default will be used.- Specified by:
mutatein classDigestCredentialHandlerBase- Parameters:
inputCredentials- User provided credentialssalt- Salt, if anyiterations- Number of iterations of the algorithm associated with this CredentialHandler applied to the inputCredentials to generate the equivalent stored credentials- Returns:
- The equivalent stored credentials for the given input credentials or
nullif the generation fails
-
mutate
protected java.lang.String mutate(java.lang.String inputCredentials, byte[] salt, int iterations, int keyLength)Description copied from class:DigestCredentialHandlerBaseGenerates the equivalent stored credentials for the given input credentials, salt, iterations and key length. The default implementation calls ignores the key length and callsDigestCredentialHandlerBase.mutate(String, byte[], int). Subclasses that use the key length should override this method.- Overrides:
mutatein classDigestCredentialHandlerBase- Parameters:
inputCredentials- User provided credentialssalt- Salt, if anyiterations- Number of iterations of the algorithm associated with this CredentialHandler applied to the inputCredentials to generate the equivalent stored credentialskeyLength- Length of the produced digest in bits for implementations where it's applicable- Returns:
- The equivalent stored credentials for the given input credentials or
nullif the generation fails
-
getDefaultIterations
protected int getDefaultIterations()
Description copied from class:DigestCredentialHandlerBaseGet the default number of iterations used by theCredentialHandler.- Specified by:
getDefaultIterationsin classDigestCredentialHandlerBase- Returns:
- the default number of iterations used by the
CredentialHandler.
-
getLog
protected Log getLog()
Description copied from class:DigestCredentialHandlerBaseGet the logger for the CredentialHandler instance.- Specified by:
getLogin classDigestCredentialHandlerBase- Returns:
- the logger for the CredentialHandler instance.
-
-