Interface HashRequest

All Known Implementing Classes:
SimpleHashRequest

public interface HashRequest
A HashRequest is composed of data that will be used by a HashService to compute a hash (aka 'digest'). While you can instantiate a concrete HashRequest class directly, most will find using the HashRequest.Builder more convenient.
Since:
1.2
See Also:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static class 
    A Builder class representing the Builder design pattern for constructing HashRequest instances.
  • Method Summary

    Modifier and Type
    Method
    Description
    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.
    Returns various parameters for the requested hash.
    Optional<org.apache.shiro.lang.util.ByteSource>
    Returns a salt to be used by the HashService during hash computation, or null if no salt is provided as part of the request.
    org.apache.shiro.lang.util.ByteSource
    Returns the source data that will be hashed by a HashService.
  • Method Details

    • getSource

      org.apache.shiro.lang.util.ByteSource getSource()
      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.
      Returns:
      the source data that will be hashed by a HashService.
    • getSalt

      Optional<org.apache.shiro.lang.util.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.

      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.

      Returns:
      a salt to be used by the HashService during hash computation, or null if no salt is provided as part of the request.
    • getAlgorithmName

      Optional<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. 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.

      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.
    • getParameters

      Map<String,Object> getParameters()
      Returns 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 .Parameters class with public 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 .Parameters class.

      Returns:
      the parameters for the requested hash to be used when computing the final Hash result.
      Throws:
      NullPointerException - if any of the values is null.