org.apache.shiro.crypto.hash
Class SimpleHashRequest

java.lang.Object
  extended by org.apache.shiro.crypto.hash.SimpleHashRequest
All Implemented Interfaces:
HashRequest

public class SimpleHashRequest
extends Object
implements HashRequest

Simple implementation of HashRequest that can be used when interacting with a HashService.

Since:
1.2

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.apache.shiro.crypto.hash.HashRequest
HashRequest.Builder
 
Constructor Summary
SimpleHashRequest(String algorithmName, ByteSource source, ByteSource salt, int iterations)
          Creates a new SimpleHashRequest instance.
 
Method Summary
 String getAlgorithmName()
          Returns the name of the hash algorithm the HashService should use when computing the Hash, or null if the default algorithm configuration of the HashService should be used.
 int getIterations()
          Returns the number of requested hash iterations to be performed when computing the final Hash result.
 ByteSource getSalt()
          Returns a salt to be used by the HashService during hash computation, or null if no salt is provided as part of the request.
 ByteSource getSource()
          Returns the source data that will be hashed by a HashService.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SimpleHashRequest

public SimpleHashRequest(String algorithmName,
                         ByteSource source,
                         ByteSource salt,
                         int iterations)
Creates a new SimpleHashRequest instance.

Parameters:
algorithmName - the name of the hash algorithm to use. This is often null as the HashService implementation is usually configured with an appropriate algorithm name, but this can be non-null if the hash service's algorithm should be overridden with a specific one for the duration of the request.
source - the source to be hashed
salt - any public salt which should be used when computing the hash
iterations - the number of hash iterations to execute. Zero (0) indicates no iterations were specified for the request, at which point the number of iterations is decided by the HashService
Throws:
NullPointerException - if source is null or empty.
Method Detail

getSource

public ByteSource getSource()
Description copied from interface: HashRequest
Returns the source data that will be hashed by a HashService. For example, this might be a ByteSource representation of a password, or file, etc.

Specified by:
getSource in interface HashRequest
Returns:
the source data that will be hashed by a HashService.

getSalt

public ByteSource getSalt()
Description copied from interface: HashRequest
Returns a salt to be used by the HashService during hash computation, or null if no salt is provided as part of the request.

Note that a null value does not necessarily mean a salt won't be used at all - it just means that the request didn't include one. The servicing HashService is free to provide a salting strategy for a request, even if the request did not specify one.

Specified by:
getSalt in interface HashRequest
Returns:
a salt to be used by the HashService during hash computation, or null if no salt is provided as part of the request.

getIterations

public int getIterations()
Description copied from interface: HashRequest
Returns the number of requested hash iterations to be performed when computing the final Hash result. A non-positive (0 or less) indicates that the HashService's default iteration configuration should be used. A positive value overrides the HashService's configuration for a single request.

Note that a HashService is free to ignore this number if it determines the number is not sufficient to meet a desired level of security.

Specified by:
getIterations in interface HashRequest
Returns:
the number of requested hash iterations to be performed when computing the final Hash result.

getAlgorithmName

public String getAlgorithmName()
Description copied from interface: HashRequest
Returns the name of the hash algorithm the HashService should use when computing the Hash, or null if the default algorithm configuration of the HashService should be used. A non-null value overrides the HashService's configuration for a single request.

Note that a HashService is free to ignore this value if it determines that the algorithm is not sufficient to meet a desired level of security.

Specified by:
getAlgorithmName in interface HashRequest
Returns:
the name of the hash algorithm the HashService should use when computing the Hash, or null if the default algorithm configuration of the HashService should be used.


Copyright © 2004-2012 The Apache Software Foundation. All Rights Reserved.