Package org.restlet.ext.crypto
Class DigestVerifier<T extends org.restlet.security.SecretVerifier>
- java.lang.Object
-
- org.restlet.security.SecretVerifier
-
- org.restlet.ext.crypto.DigestVerifier<T>
-
- All Implemented Interfaces:
org.restlet.security.Verifier
public class DigestVerifier<T extends org.restlet.security.SecretVerifier> extends org.restlet.security.SecretVerifier
Wrapper verifier that can verify digested secrets. If the provided secret is a digest, then the local secret must either be a digest of the same algorithm or the wrapped verifier must be aLocalVerifier
returning secrets in clear.
If the provided secret is a regular secret, then the local secret can be in any digest algorithm or a regular secret.- Author:
- Jerome Louvel
- See Also:
Digest
,DigestAuthenticator
-
-
Constructor Summary
Constructors Constructor Description DigestVerifier(java.lang.String algorithm, T wrappedVerifier, java.lang.String wrappedAlgorithm)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected char[]
digest(java.lang.String identifier, char[] secret, java.lang.String algorithm)
Computes the digest of a secret according to a specified algorithm.java.lang.String
getAlgorithm()
Returns the digest algorithm of provided secrets.java.lang.String
getWrappedAlgorithm()
Returns the digest algorithm of secrets returned by the wrapped verifier.char[]
getWrappedSecret(java.lang.String identifier)
Returns the wrapped secret associated to a given identifier.char[]
getWrappedSecretDigest(java.lang.String identifier)
Returns the digest of the wrapped secret associated to a given identifier.T
getWrappedVerifier()
Returns the wrapped secret verifier.void
setAlgorithm(java.lang.String algorithm)
Sets the digest algorithm of provided secrets.void
setWrappedAlgorithm(java.lang.String wrappedAlgorithm)
Sets the digest algorithm of secrets returned by the wrapped verifier.void
setWrappedVerifier(T wrappedVerifier)
Sets the wrapped secret verifier.int
verify(java.lang.String identifier, char[] secret)
-
-
-
Constructor Detail
-
DigestVerifier
public DigestVerifier(java.lang.String algorithm, T wrappedVerifier, java.lang.String wrappedAlgorithm)
Constructor.- Parameters:
algorithm
- The digest algorithm of provided secrets.wrappedVerifier
- The wrapped secret verifier.wrappedAlgorithm
- The digest algorithm of secrets provided by the wrapped verifier.- See Also:
Digest
-
-
Method Detail
-
digest
protected char[] digest(java.lang.String identifier, char[] secret, java.lang.String algorithm)
Computes the digest of a secret according to a specified algorithm. By default, MD5 hashes (represented as a sequence of 32 hexadecimal digits) and SHA-1 hashes are supported. For additional algorithm, override this method.- Parameters:
identifier
- The user identifier.secret
- The regular secret to digest.algorithm
- The digest algorithm to use.- Returns:
- The digested secret.
- See Also:
Digest
-
getAlgorithm
public java.lang.String getAlgorithm()
Returns the digest algorithm of provided secrets. Provided secrets are the ones sent by clients when attempting to authenticate.- Returns:
- The digest algorithm of input secrets.
-
getWrappedAlgorithm
public java.lang.String getWrappedAlgorithm()
Returns the digest algorithm of secrets returned by the wrapped verifier. The secrets from the wrapped verifier are the ones used by the verifier to compare those sent by clients when attempting to authenticate.- Returns:
- The digest algorithm of secrets returned by the wrapped verifier.
-
getWrappedSecret
public char[] getWrappedSecret(java.lang.String identifier)
Returns the wrapped secret associated to a given identifier. This method can only be called if the wrapped verifier is aLocalVerifier
.- Parameters:
identifier
- The identifier to lookup.- Returns:
- The secret associated to the identifier or null.
-
getWrappedSecretDigest
public char[] getWrappedSecretDigest(java.lang.String identifier)
Returns the digest of the wrapped secret associated to a given identifier. If the wrapped algorithm is null it returns the digest of the wrapped secret, otherwise the algorithms must be identical. This method can only be called if the wrapped verifier is aLocalVerifier
.- Parameters:
identifier
- The identifier to lookup.- Returns:
- The secret associated to the identifier or null.
-
getWrappedVerifier
public T getWrappedVerifier()
Returns the wrapped secret verifier.- Returns:
- The wrapped secret verifier.
-
setAlgorithm
public void setAlgorithm(java.lang.String algorithm)
Sets the digest algorithm of provided secrets. Provided secrets are the ones sent by clients when attempting to authenticate.- Parameters:
algorithm
- The digest algorithm of secrets provided by the user.- See Also:
Digest
-
setWrappedAlgorithm
public void setWrappedAlgorithm(java.lang.String wrappedAlgorithm)
Sets the digest algorithm of secrets returned by the wrapped verifier. The secrets from the wrapped verifier are the ones used by the verifier to compare those sent by clients when attempting to authenticate.- Parameters:
wrappedAlgorithm
- The digest algorithm of secrets returned by the wrapped verifier.- See Also:
Digest
-
setWrappedVerifier
public void setWrappedVerifier(T wrappedVerifier)
Sets the wrapped secret verifier.- Parameters:
wrappedVerifier
- The wrapped secret verifier.
-
verify
public int verify(java.lang.String identifier, char[] secret)
- Specified by:
verify
in classorg.restlet.security.SecretVerifier
-
-