Package org.apache.shiro.crypto.hash
Class SimpleHashRequest
- java.lang.Object
-
- org.apache.shiro.crypto.hash.SimpleHashRequest
-
- All Implemented Interfaces:
HashRequest
public class SimpleHashRequest extends Object implements HashRequest
Simple implementation ofHashRequest
that can be used when interacting with aHashService
.- Since:
- 1.2
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.shiro.crypto.hash.HashRequest
HashRequest.Builder
-
-
Constructor Summary
Constructors Constructor Description SimpleHashRequest(String algorithmName, org.apache.shiro.util.ByteSource source, org.apache.shiro.util.ByteSource salt, int iterations)
Creates a new SimpleHashRequest instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
getAlgorithmName()
Returns the name of the hash algorithm theHashService
should use when computing theHash
, ornull
if the default algorithm configuration of theHashService
should be used.int
getIterations()
Returns the number of requested hash iterations to be performed when computing the finalHash
result.org.apache.shiro.util.ByteSource
getSalt()
Returns a salt to be used by theHashService
during hash computation, ornull
if no salt is provided as part of the request.org.apache.shiro.util.ByteSource
getSource()
Returns the source data that will be hashed by aHashService
.
-
-
-
Constructor Detail
-
SimpleHashRequest
public SimpleHashRequest(String algorithmName, org.apache.shiro.util.ByteSource source, org.apache.shiro.util.ByteSource salt, int iterations)
Creates a new SimpleHashRequest instance.- Parameters:
algorithmName
- the name of the hash algorithm to use. This is often null as theHashService
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 hashedsalt
- any public salt which should be used when computing the hashiterations
- 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 theHashService
- Throws:
NullPointerException
- ifsource
is null or empty.
-
-
Method Detail
-
getSource
public org.apache.shiro.util.ByteSource getSource()
Description copied from interface:HashRequest
Returns the source data that will be hashed by aHashService
. For example, this might be aByteSource
representation of a password, or file, etc.- Specified by:
getSource
in interfaceHashRequest
- Returns:
- the source data that will be hashed by a
HashService
.
-
getSalt
public org.apache.shiro.util.ByteSource getSalt()
Description copied from interface:HashRequest
Returns a salt to be used by theHashService
during hash computation, ornull
if no salt is provided as part of the request. Note that anull
value does not necessarily mean a salt won't be used at all - it just means that the request didn't include one. The servicingHashService
is free to provide a salting strategy for a request, even if the request did not specify one.- Specified by:
getSalt
in interfaceHashRequest
- Returns:
- a salt to be used by the
HashService
during hash computation, ornull
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 finalHash
result. A non-positive (0 or less) indicates that theHashService
's default iteration configuration should be used. A positive value overrides theHashService
's configuration for a single request. Note that aHashService
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 interfaceHashRequest
- 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 theHashService
should use when computing theHash
, ornull
if the default algorithm configuration of theHashService
should be used. A non-null value overrides theHashService
's configuration for a single request. Note that aHashService
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 interfaceHashRequest
- Returns:
- the name of the hash algorithm the
HashService
should use when computing theHash
, ornull
if the default algorithm configuration of theHashService
should be used.
-
-