Class HashPipe

All Implemented Interfaces:
HasTransactionAttribute, IConfigurable, IConfigurationAware, IForwardTarget, INamedObject, IPipe, IScopeProvider, IWithParameters, EventThrowing, HasStatistics, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware
Direct Known Subclasses:
ChecksumPipe

This pipe can be used to generate a hash for the given message using an algorithm. With this, you can prove the integrity of the message. If you use one of the Mac-based algorithms (starting with 'Hmac'), you need a secret as well. A Mac algorithm uses a secret, combined with the algorithm to create a 'hash' of a message. Only sources which have this secret are able to generate the same hash for the given message. With this, you can prove integrity and authenticity of a message.

Author:
Niels Meijer
See Also:
  • Constructor Details

    • HashPipe

      public HashPipe()
  • Method Details

    • configure

      public void configure() throws ConfigurationException
      Description copied from class: FixedForwardPipe
      checks for correct configuration of forward
      Specified by:
      configure in interface IConfigurable
      Specified by:
      configure in interface IPipe
      Overrides:
      configure in class FixedForwardPipe
      Throws:
      ConfigurationException
    • doPipe

      public PipeRunResult doPipe(Message message, PipeLineSession session) throws PipeRunException
      Description copied from interface: IPipe
      This is where the action takes place. Pipes may only throw a PipeRunException, to be handled by the caller of this object. Implementations must either consume the message, or pass it on to the next Pipe in the PipeRunResult. If the result of the Pipe does not depend on the input, like for the FixedResultPipe, the Pipe can schedule the input to be closed at session exit, by calling Message.closeOnCloseOf(PipeLineSession, String) This allows the previous Pipe to release any resources (e.g. connections) that it might have kept open until the message was consumed. Doing so avoids connections leaking from pools, while it enables efficient streaming processing of data while it is being read from a stream.
      Throws:
      PipeRunException
    • setAlgorithm

      public void setAlgorithm(Algorithm algorithm)
      Hash Algorithm to use
      Default value
      HmacSHA256
    • setEncoding

      @Deprecated(forRemoval=true, since="7.6.0") @ConfigurationWarning("attribute encoding has been replaced with attribute charset, default has changed from ISO8859_1 to UTF-8") public void setEncoding(String encoding)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • setCharset

      public void setCharset(String charset)
      Character set to use for converting the secret from String to bytes
      Default value
      UTF-8
    • setHashEncoding

      public void setHashEncoding(HashPipe.HashEncoding hashEncoding)
      Method to use for converting the hash from bytes to String
      Default value
      Base64
    • setBinaryToTextEncoding

      @Deprecated(forRemoval=true, since="7.7.0") @ConfigurationWarning("use attribute hashEncoding instead") public void setBinaryToTextEncoding(HashPipe.HashEncoding hashEncoding)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • setSecret

      public void setSecret(String secret)
      The secret to hash with. Only used if no parameter secret is configured. The secret is only used when there is no authAlias specified, by attribute or parameter
    • setAuthAlias

      public void setAuthAlias(String authAlias)
      authAlias to retrieve the secret from (password field). Only used if no parameter authAlias is configured
    • getCharset

      public String getCharset()
    • getSecret

      public String getSecret()
    • getAuthAlias

      public String getAuthAlias()
    • getAlgorithm

      public Algorithm getAlgorithm()
    • getHashEncoding

      public HashPipe.HashEncoding getHashEncoding()