Package org.apache.shiro.crypto.hash
Class SimpleHashRequest
java.lang.Object
org.apache.shiro.crypto.hash.SimpleHashRequest
- All Implemented Interfaces:
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
ConstructorsConstructorDescriptionSimpleHashRequest(String algorithmName, org.apache.shiro.lang.util.ByteSource source, org.apache.shiro.lang.util.ByteSource salt, Map<String, Object> parameters) Creates a new SimpleHashRequest instance. -
Method Summary
Modifier and TypeMethodDescriptionReturns the name of the hash algorithm theHashServiceshould use when computing theHash, ornullif the default algorithm configuration of theHashServiceshould be used.Returns various parameters for the requested hash.Optional<org.apache.shiro.lang.util.ByteSource>getSalt()Returns a salt to be used by theHashServiceduring hash computation, ornullif no salt is provided as part of the request.org.apache.shiro.lang.util.ByteSourceReturns the source data that will be hashed by aHashService.
-
Constructor Details
-
SimpleHashRequest
public SimpleHashRequest(String algorithmName, org.apache.shiro.lang.util.ByteSource source, org.apache.shiro.lang.util.ByteSource salt, Map<String, Object> parameters) Creates a new SimpleHashRequest instance.- Parameters:
algorithmName- the name of the hash algorithm to use. This is often null as theHashServiceimplementation 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 hashparameters- e.g. the number of hash iterations to execute or other parameters.- Throws:
NullPointerException- ifsourceis null or empty orparametersisnull.
-
-
Method Details
-
getSource
public org.apache.shiro.lang.util.ByteSource getSource()Description copied from interface:HashRequestReturns the source data that will be hashed by aHashService. For example, this might be aByteSourcerepresentation of a password, or file, etc.- Specified by:
getSourcein interfaceHashRequest- Returns:
- the source data that will be hashed by a
HashService.
-
getSalt
Description copied from interface:HashRequestReturns a salt to be used by theHashServiceduring hash computation, ornullif no salt is provided as part of the request. Note that anullvalue does not necessarily mean a salt won't be used at all - it just means that the request didn't include one. The servicingHashServiceis free to provide a salting strategy for a request, even if the request did not specify one.- Specified by:
getSaltin interfaceHashRequest- Returns:
- a salt to be used by the
HashServiceduring hash computation, ornullif no salt is provided as part of the request.
-
getAlgorithmName
Description copied from interface:HashRequestReturns the name of the hash algorithm theHashServiceshould use when computing theHash, ornullif the default algorithm configuration of theHashServiceshould be used. A non-null value overrides theHashService's configuration for a single request. Note that aHashServiceis free to ignore this value if it determines that the algorithm is not sufficient to meet a desired level of security.- Specified by:
getAlgorithmNamein interfaceHashRequest- Returns:
- the name of the hash algorithm the
HashServiceshould use when computing theHash, ornullif the default algorithm configuration of theHashServiceshould be used.
-
getParameters
Description copied from interface:HashRequestReturns various parameters for the requested hash.If the map is empty for a specific parameter, the implementation must select the default.
Implementations should provide a nested
.Parametersclass withpublic static final Strings for convenience.Example parameters the number of requested hash iterations (does not apply to bcrypt), memory and cpu constrains, etc. Please find their specific names in the implementation’s nested
.Parametersclass.- Specified by:
getParametersin interfaceHashRequest- Returns:
- the parameters for the requested hash to be used when computing the final
Hashresult.
-