Class EnvironmentDigesterConfig

  • All Implemented Interfaces:
    DigesterConfig
    Direct Known Subclasses:
    EnvironmentStringDigesterConfig

    public class EnvironmentDigesterConfig
    extends SimpleDigesterConfig

    Implementation for DigesterConfig which can retrieve configuration values from environment variables or system properties.

    The name of the environment variable or system property (JVM property) to query for each parameter can be set with its corresponding setXEnvName or setXSysProperty method.

    As this class extends SimpleDigesterConfig, parameter values can be also set with the usual setX methods.

    For any of the configuration parameters, if its value is not configured in any way, a null value will be returned by the corresponding getX method.

    Since:
    1.1
    Author:
    Daniel Fernández
    • Constructor Detail

      • EnvironmentDigesterConfig

        public EnvironmentDigesterConfig()

        Creates a new EnvironmentDigesterConfig instance.

    • Method Detail

      • getAlgorithmEnvName

        public String getAlgorithmEnvName()
        Retrieve the name of the environment variable which value has been loaded as the algorithm.
        Returns:
        the name of the variable
      • setAlgorithmEnvName

        public void setAlgorithmEnvName​(String algorithmEnvName)
        Set the config object to use the specified environment variable to load the value for the algorithm.
        Parameters:
        algorithmEnvName - the name of the environment variable
      • getAlgorithmSysPropertyName

        public String getAlgorithmSysPropertyName()
        Retrieve the name of the JVM system property which value has been loaded as the algorithm.
        Returns:
        the name of the property
      • setAlgorithmSysPropertyName

        public void setAlgorithmSysPropertyName​(String algorithmSysPropertyName)
        Set the config object to use the specified JVM system property to load the value for the algorithm.
        Parameters:
        algorithmSysPropertyName - the name of the property
      • getIterationsEnvName

        public String getIterationsEnvName()
        Retrieve the name of the environment variable which value has been loaded as the iteration count.
        Returns:
        the name of the variable
      • setIterationsEnvName

        public void setIterationsEnvName​(String iterationsEnvName)
        Set the config object to use the specified environment variable to load the value for the iteration count.
        Parameters:
        iterationsEnvName - the name of the environment variable
      • getIterationsSysPropertyName

        public String getIterationsSysPropertyName()
        Retrieve the name of the JVM system property which value has been loaded as the iteration count.
        Returns:
        the name of the property
      • setIterationsSysPropertyName

        public void setIterationsSysPropertyName​(String iterationsSysPropertyName)
        Set the config object to use the specified JVM system property to load the value for the iteration count.
        Parameters:
        iterationsSysPropertyName - the name of the property
      • getSaltSizeBytesEnvName

        public String getSaltSizeBytesEnvName()
        Retrieve the name of the environment variable which value has been loaded as the salt size in bytes.
        Returns:
        the name of the variable
      • setSaltSizeBytesEnvName

        public void setSaltSizeBytesEnvName​(String saltSizeBytesEnvName)
        Set the config object to use the specified environment variable to load the value for the salt size in bytes.
        Parameters:
        saltSizeBytesEnvName - the name of the environment variable
      • getSaltSizeBytesSysPropertyName

        public String getSaltSizeBytesSysPropertyName()
        Retrieve the name of the JVM system property which value has been loaded as the salt size in bytes.
        Returns:
        the name of the property
      • setSaltSizeBytesSysPropertyName

        public void setSaltSizeBytesSysPropertyName​(String saltSizeBytesSysPropertyName)
        Set the config object to use the specified JVM system property to load the value for the salt size in bytes.
        Parameters:
        saltSizeBytesSysPropertyName - the name of the property
      • getSaltGeneratorClassNameEnvName

        public String getSaltGeneratorClassNameEnvName()
        Retrieve the name of the environment variable which value has been loaded as the salt generator class name.
        Returns:
        the name of the variable
        Since:
        1.3
      • setSaltGeneratorClassNameEnvName

        public void setSaltGeneratorClassNameEnvName​(String saltGeneratorClassNameEnvName)

        Set the config object to use the specified environment variable to load the value for the salt generator class name.

        The salt generator class name which is set here must have a no-argument constructor, so that it can be instantiated and passed to the digester.

        Parameters:
        saltGeneratorClassNameEnvName - the name of the environment variable
        Since:
        1.3
      • getSaltGeneratorClassNameSysPropertyName

        public String getSaltGeneratorClassNameSysPropertyName()
        Retrieve the name of the JVM system property which value has been loaded as the salt generator class name.
        Returns:
        the name of the property
        Since:
        1.3
      • setSaltGeneratorClassNameSysPropertyName

        public void setSaltGeneratorClassNameSysPropertyName​(String saltGeneratorClassNameSysPropertyName)

        Set the config object to use the specified JVM system property to load the value for the salt generator class name.

        The salt generator class name which is set here must have a no-argument constructor, so that it can be instantiated and passed to the digester.

        Parameters:
        saltGeneratorClassNameSysPropertyName - the name of the property
        Since:
        1.3
      • getProviderNameEnvName

        public String getProviderNameEnvName()
        Retrieve the name of the environment variable which value has been loaded as the provider name.
        Returns:
        the name of the variable
        Since:
        1.3
      • setProviderNameEnvName

        public void setProviderNameEnvName​(String providerNameEnvName)

        Set the config object to use the specified environment variable to load the value for the provider name.

        Parameters:
        providerNameEnvName - the name of the environment variable
        Since:
        1.3
      • getProviderNameSysPropertyName

        public String getProviderNameSysPropertyName()
        Retrieve the name of the JVM system property which value has been loaded as the provider name.
        Returns:
        the name of the property
        Since:
        1.3
      • setProviderNameSysPropertyName

        public void setProviderNameSysPropertyName​(String providerNameSysPropertyName)
        Set the config object to use the specified JVM system property to load the value for the provider name.
        Parameters:
        providerNameSysPropertyName - the name of the property
        Since:
        1.3
      • getProviderClassNameEnvName

        public String getProviderClassNameEnvName()
        Retrieve the name of the environment variable which value has been loaded as the provider class name.
        Returns:
        the name of the variable
        Since:
        1.3
      • setProviderClassNameEnvName

        public void setProviderClassNameEnvName​(String providerClassNameEnvName)

        Set the config object to use the specified environment variable to load the value for the provider class name.

        The provider class name which is set here must have a no-argument constructor, so that it can be instantiated and passed to the digester.

        Parameters:
        providerClassNameEnvName - the name of the environment variable
        Since:
        1.3
      • getProviderClassNameSysPropertyName

        public String getProviderClassNameSysPropertyName()
        Retrieve the name of the JVM system property which value has been loaded as the provider class name.
        Returns:
        the name of the property
        Since:
        1.3
      • setProviderClassNameSysPropertyName

        public void setProviderClassNameSysPropertyName​(String providerClassNameSysPropertyName)

        Set the config object to use the specified JVM system property to load the value for the provider class name.

        The provider class name which is set here must have a no-argument constructor, so that it can be instantiated and passed to the digester.

        Parameters:
        providerClassNameSysPropertyName - the name of the property
        Since:
        1.3
      • getInvertPositionOfSaltInMessageBeforeDigestingEnvName

        public String getInvertPositionOfSaltInMessageBeforeDigestingEnvName()
        Retrieve the name of the environment variable which value has been loaded as the value for the invertPositionOfSaltInMessageBeforeDigesting property.
        Returns:
        the name of the variable
        Since:
        1.7
      • setInvertPositionOfSaltInMessageBeforeDigestingEnvName

        public void setInvertPositionOfSaltInMessageBeforeDigestingEnvName​(String invertPositionOfSaltInMessageBeforeDigestingEnvName)

        Set the config object to use the specified environment variable to load the value for the invertPositionOfSaltInMessageBeforeDigesting property.

        Parameters:
        invertPositionOfSaltInMessageBeforeDigestingEnvName - the name of the environment variable
        Since:
        1.7
      • getInvertPositionOfSaltInMessageBeforeDigestingSysPropertyName

        public String getInvertPositionOfSaltInMessageBeforeDigestingSysPropertyName()
        Retrieve the name of the JVM system property which value has been loaded as the value for the invertPositionOfSaltInMessageBeforeDigesting property.
        Returns:
        the name of the property
        Since:
        1.7
      • setInvertPositionOfSaltInMessageBeforeDigestingSysPropertyName

        public void setInvertPositionOfSaltInMessageBeforeDigestingSysPropertyName​(String invertPositionOfSaltInMessageBeforeDigestingSysPropertyName)

        Set the config object to use the specified JVM system property to load the value for the invertPositionOfSaltInMessageBeforeDigesting property.

        Parameters:
        invertPositionOfSaltInMessageBeforeDigestingSysPropertyName - the name of the property
        Since:
        1.7
      • getInvertPositionOfPlainSaltInEncryptionResultsEnvName

        public String getInvertPositionOfPlainSaltInEncryptionResultsEnvName()
        Retrieve the name of the environment variable which value has been loaded as the value for the invertPositionOfPlainSaltInEncryptionResults property.
        Returns:
        the name of the variable
        Since:
        1.7
      • setInvertPositionOfPlainSaltInEncryptionResultsEnvName

        public void setInvertPositionOfPlainSaltInEncryptionResultsEnvName​(String invertPositionOfPlainSaltInEncryptionResultsEnvName)

        Set the config object to use the specified environment variable to load the value for the invertPositionOfPlainSaltInEncryptionResults property.

        Parameters:
        invertPositionOfPlainSaltInEncryptionResultsEnvName - the name of the environment variable
        Since:
        1.7
      • getInvertPositionOfPlainSaltInEncryptionResultsSysPropertyName

        public String getInvertPositionOfPlainSaltInEncryptionResultsSysPropertyName()
        Retrieve the name of the JVM system property which value has been loaded as the value for the invertPositionOfPlainSaltInEncryptionResults property.
        Returns:
        the name of the property
        Since:
        1.7
      • setInvertPositionOfPlainSaltInEncryptionResultsSysPropertyName

        public void setInvertPositionOfPlainSaltInEncryptionResultsSysPropertyName​(String invertPositionOfPlainSaltInEncryptionResultsSysPropertyName)

        Set the config object to use the specified JVM system property to load the value for the invertPositionOfPlainSaltInEncryptionResults property.

        Parameters:
        invertPositionOfPlainSaltInEncryptionResultsSysPropertyName - the name of the property
        Since:
        1.7
      • getUseLenientSaltSizeCheckEnvName

        public String getUseLenientSaltSizeCheckEnvName()
        Retrieve the name of the environment variable which value has been loaded as the value for the useLenientSaltSizeCheck property.
        Returns:
        the name of the variable
        Since:
        1.7
      • setUseLenientSaltSizeCheckEnvName

        public void setUseLenientSaltSizeCheckEnvName​(String useLenientSaltSizeCheckEnvName)

        Set the config object to use the specified environment variable to load the value for the useLenientSaltSizeCheck property.

        Parameters:
        useLenientSaltSizeCheckEnvName - the name of the environment variable
        Since:
        1.7
      • getUseLenientSaltSizeCheckSysPropertyName

        public String getUseLenientSaltSizeCheckSysPropertyName()
        Retrieve the name of the JVM system property which value has been loaded as the value for the useLenientSaltSizeCheck property.
        Returns:
        the name of the property
        Since:
        1.7
      • setUseLenientSaltSizeCheckSysPropertyName

        public void setUseLenientSaltSizeCheckSysPropertyName​(String useLenientSaltSizeCheckSysPropertyName)

        Set the config object to use the specified JVM system property to load the value for the useLenientSaltSizeCheck property.

        Parameters:
        useLenientSaltSizeCheckSysPropertyName - the name of the property
        Since:
        1.7
      • getPoolSizeEnvName

        public String getPoolSizeEnvName()
        Retrieve the name of the environment variable which value has been loaded as the value for the poolSize property.
        Returns:
        the name of the variable
        Since:
        1.7
      • setPoolSizeEnvName

        public void setPoolSizeEnvName​(String poolSizeEnvName)

        Set the config object to use the specified environment variable to load the value for the poolSize property.

        Parameters:
        poolSizeEnvName - the name of the environment variable
        Since:
        1.7
      • getPoolSizeSysPropertyName

        public String getPoolSizeSysPropertyName()
        Retrieve the name of the JVM system property which value has been loaded as the value for the poolSize property.
        Returns:
        the name of the property
        Since:
        1.7
      • setPoolSizeSysPropertyName

        public void setPoolSizeSysPropertyName​(String poolSizeSysPropertyName)

        Set the config object to use the specified JVM system property to load the value for the useLenientSaltSizeCheck property.

        Parameters:
        poolSizeSysPropertyName - the name of the property
        Since:
        1.7
      • setProviderName

        public void setProviderName​(String providerName)
        Description copied from class: SimpleDigesterConfig

        Sets the name of the security provider to be asked for the digest algorithm. This provider should be already registered.

        If both the providerName and provider properties are set, only provider will be used, and providerName will have no meaning for the digester object.

        If not set, null will be returned.

        Determines the result of: SimpleDigesterConfig.getProviderName()

        Overrides:
        setProviderName in class SimpleDigesterConfig
        Parameters:
        providerName - the name of the security provider.
      • setInvertPositionOfPlainSaltInEncryptionResults

        public void setInvertPositionOfPlainSaltInEncryptionResults​(Boolean invertPositionOfPlainSaltInEncryptionResults)
        Description copied from class: SimpleDigesterConfig

        Whether the plain (not hashed) salt bytes are to be appended after the digest operation result bytes. The default behaviour is to insert them before the digest result, but setting this configuration item to true allows compatibility with some external systems and specifications (e.g. LDAP {SSHA}).

        If not set, null will be returned.

        Determines the result of: SimpleDigesterConfig.getInvertPositionOfPlainSaltInEncryptionResults()

        Overrides:
        setInvertPositionOfPlainSaltInEncryptionResults in class SimpleDigesterConfig
        Parameters:
        invertPositionOfPlainSaltInEncryptionResults - whether plain salt will be appended after the digest operation result instead of inserted before it (which is the default).
      • setInvertPositionOfSaltInMessageBeforeDigesting

        public void setInvertPositionOfSaltInMessageBeforeDigesting​(Boolean invertPositionOfSaltInMessageBeforeDigesting)
        Description copied from class: SimpleDigesterConfig

        Whether the salt bytes are to be appended after the message ones before performing the digest operation on the whole. The default behaviour is to insert those bytes before the message bytes, but setting this configuration item to true allows compatibility with some external systems and specifications (e.g. LDAP {SSHA}).

        If not set, null will be returned.

        Determines the result of: SimpleDigesterConfig.getInvertPositionOfSaltInMessageBeforeDigesting()

        Overrides:
        setInvertPositionOfSaltInMessageBeforeDigesting in class SimpleDigesterConfig
        Parameters:
        invertPositionOfSaltInMessageBeforeDigesting - whether salt will be appended after the message before applying the digest operation on the whole, instead of inserted before it (which is the default).
      • setUseLenientSaltSizeCheck

        public void setUseLenientSaltSizeCheck​(Boolean useLenientSaltSizeCheck)
        Description copied from class: SimpleDigesterConfig

        Whether digest matching operations will allow matching digests with a salt size different to the one configured in the "saltSizeBytes" property. This is possible because digest algorithms will produce a fixed-size result, so the remaining bytes from the hashed input will be considered salt.

        This will allow the digester to match digests produced in environments which do not establish a fixed salt size as standard (for example, SSHA password encryption in LDAP systems).

        The value of this property will not affect the creation of digests, which will always have a salt of the size established by the "saltSizeBytes" property. It will only affect digest matching.

        Setting this property to true is not compatible with SaltGenerator implementations which return false for their SaltGenerator.includePlainSaltInEncryptionResults() property.

        Also, be aware that some algorithms or algorithm providers might not support knowing the size of the digests beforehand, which is also incompatible with a lenient behaviour.

        If not set, null will be returned.

        Determines the result of: SimpleDigesterConfig.getUseLenientSaltSizeCheck()

        Overrides:
        setUseLenientSaltSizeCheck in class SimpleDigesterConfig
        Parameters:
        useLenientSaltSizeCheck - whether the digester will allow matching of digests with different salt sizes than established or not (default is false).
      • setPoolSize

        public void setPoolSize​(Integer poolSize)
        Description copied from class: SimpleDigesterConfig

        Sets the size of the pool of digesters to be created.

        This parameter will be ignored if used with a non-pooled digester.

        If not set, null will be returned.

        Determines the result of: SimpleDigesterConfig.getPoolSize()

        Overrides:
        setPoolSize in class SimpleDigesterConfig
        Parameters:
        poolSize - the size of the pool to be used if this configuration is used with a pooled digester
      • setPoolSize

        public void setPoolSize​(String poolSize)
        Description copied from class: SimpleDigesterConfig

        Sets the size of the pool of digesters to be created.

        This parameter will be ignored if used with a non-pooled digester.

        If not set, null will be returned.

        Determines the result of: SimpleDigesterConfig.getPoolSize()

        Overrides:
        setPoolSize in class SimpleDigesterConfig
        Parameters:
        poolSize - the size of the pool to be used if this configuration is used with a pooled digester