Class EnvironmentPBEConfig

  • All Implemented Interfaces:
    PBECleanablePasswordConfig, PBEConfig
    Direct Known Subclasses:
    EnvironmentStringPBEConfig

    public class EnvironmentPBEConfig
    extends SimplePBEConfig

    Implementation for PBEConfig 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 SimplePBEConfig, 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
    • Field Detail

      • algorithmEnvName

        private java.lang.String algorithmEnvName
      • keyObtentionIterationsEnvName

        private java.lang.String keyObtentionIterationsEnvName
      • passwordEnvName

        private java.lang.String passwordEnvName
      • saltGeneratorClassNameEnvName

        private java.lang.String saltGeneratorClassNameEnvName
      • ivGeneratorClassNameEnvName

        private java.lang.String ivGeneratorClassNameEnvName
      • providerNameEnvName

        private java.lang.String providerNameEnvName
      • providerClassNameEnvName

        private java.lang.String providerClassNameEnvName
      • poolSizeEnvName

        private java.lang.String poolSizeEnvName
      • algorithmSysPropertyName

        private java.lang.String algorithmSysPropertyName
      • keyObtentionIterationsSysPropertyName

        private java.lang.String keyObtentionIterationsSysPropertyName
      • passwordSysPropertyName

        private java.lang.String passwordSysPropertyName
      • saltGeneratorClassNameSysPropertyName

        private java.lang.String saltGeneratorClassNameSysPropertyName
      • ivGeneratorClassNameSysPropertyName

        private java.lang.String ivGeneratorClassNameSysPropertyName
      • providerNameSysPropertyName

        private java.lang.String providerNameSysPropertyName
      • providerClassNameSysPropertyName

        private java.lang.String providerClassNameSysPropertyName
      • poolSizeSysPropertyName

        private java.lang.String poolSizeSysPropertyName
    • Constructor Detail

      • EnvironmentPBEConfig

        public EnvironmentPBEConfig()

        Creates a new EnvironmentPBEConfig instance.

    • Method Detail

      • getAlgorithmEnvName

        public java.lang.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​(java.lang.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 java.lang.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​(java.lang.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
      • getKeyObtentionIterationsEnvName

        public java.lang.String getKeyObtentionIterationsEnvName()
        Retrieve the name of the environment variable which value has been loaded as the key obtention iteration count.
        Returns:
        the name of the variable
      • setKeyObtentionIterationsEnvName

        public void setKeyObtentionIterationsEnvName​(java.lang.String keyObtentionIterationsEnvName)
        Set the config object to use the specified environment variable to load the value for the key obtention iteration count.
        Parameters:
        keyObtentionIterationsEnvName - the name of the environment variable
      • getKeyObtentionIterationsSysPropertyName

        public java.lang.String getKeyObtentionIterationsSysPropertyName()
        Retrieve the name of the JVM system property which value has been loaded as the key obtention iteration count.
        Returns:
        the name of the property
      • setKeyObtentionIterationsSysPropertyName

        public void setKeyObtentionIterationsSysPropertyName​(java.lang.String keyObtentionIterationsSysPropertyName)
        Set the config object to use the specified JVM system property to load the value for the key obtention iteration count.
        Parameters:
        keyObtentionIterationsSysPropertyName - the name of the property
      • getPasswordEnvName

        public java.lang.String getPasswordEnvName()
        Retrieve the name of the environment variable which value has been loaded as the password.
        Returns:
        the name of the variable
      • setPasswordEnvName

        public void setPasswordEnvName​(java.lang.String passwordEnvName)
        Set the config object to use the specified environment variable to load the value for the password.
        Parameters:
        passwordEnvName - the name of the environment variable
      • getPasswordSysPropertyName

        public java.lang.String getPasswordSysPropertyName()
        Retrieve the name of the JVM system property which value has been loaded as the password.
        Returns:
        the name of the property
      • setPasswordSysPropertyName

        public void setPasswordSysPropertyName​(java.lang.String passwordSysPropertyName)
        Set the config object to use the specified JVM system property to load the value for the password.
        Parameters:
        passwordSysPropertyName - the name of the property
      • getSaltGeneratorClassNameEnvName

        public java.lang.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​(java.lang.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 encryptor.

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

        public java.lang.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​(java.lang.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 encryptor.

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

        public java.lang.String getIvGeneratorClassNameEnvName()
        Retrieve the name of the environment variable which value has been loaded as the IV generator class name.
        Returns:
        the name of the variable
        Since:
        1.9.3
      • setIvGeneratorClassNameEnvName

        public void setIvGeneratorClassNameEnvName​(java.lang.String ivGeneratorClassNameEnvName)

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

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

        Parameters:
        ivGeneratorClassNameEnvName - the name of the environment variable
        Since:
        1.9.3
      • getIvGeneratorClassNameSysPropertyName

        public java.lang.String getIvGeneratorClassNameSysPropertyName()
        Retrieve the name of the JVM system property which value has been loaded as the IV generator class name.
        Returns:
        the name of the property
        Since:
        1.9.3
      • setIvGeneratorClassNameSysPropertyName

        public void setIvGeneratorClassNameSysPropertyName​(java.lang.String ivGeneratorClassNameSysPropertyName)

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

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

        Parameters:
        ivGeneratorClassNameSysPropertyName - the name of the property
        Since:
        1.9.3
      • getProviderNameEnvName

        public java.lang.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​(java.lang.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 java.lang.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​(java.lang.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 java.lang.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​(java.lang.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 encryptor.

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

        public java.lang.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​(java.lang.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 encryptor.

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

        public java.lang.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​(java.lang.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 java.lang.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​(java.lang.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
      • setAlgorithm

        public void setAlgorithm​(java.lang.String algorithm)
        Description copied from class: SimplePBEConfig

        Sets a value for the encryption algorithm

        This algorithm has to be supported by your JCE provider and, if this provider supports it, you can also specify mode and padding for it, like ALGORITHM/MODE/PADDING.

        Determines the result of: SimplePBEConfig.getAlgorithm()

        Overrides:
        setAlgorithm in class SimplePBEConfig
        Parameters:
        algorithm - the name of the algorithm to be used
      • setPasswordCharArray

        public void setPasswordCharArray​(char[] password)
        Description copied from class: SimplePBEConfig
        Sets the password to be used for encryption, as a char[].

        This allows the password to be specified as a cleanable char[] instead of a String, in extreme security conscious environments in which no copy of the password as an immutable String should be kept in memory.

        Important: the array specified as a parameter WILL BE COPIED in order to be stored in the configuration object. The caller of this method will therefore be responsible for its cleaning (jasypt will only clean the internally stored copy).

        Determines the result of: SimplePBEConfig.getPassword() and SimplePBEConfig.getPasswordCharArray().

        Overrides:
        setPasswordCharArray in class SimplePBEConfig
        Parameters:
        password - the password to be used.
      • setProviderName

        public void setProviderName​(java.lang.String providerName)
        Description copied from class: SimplePBEConfig

        Sets the name of the security provider to be asked for the encryption 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 encryptor object.

        If not set, null will be returned.

        Determines the result of: SimplePBEConfig.getProviderName()

        Overrides:
        setProviderName in class SimplePBEConfig
        Parameters:
        providerName - the name of the security provider.
      • setPoolSize

        public void setPoolSize​(java.lang.Integer poolSize)
        Description copied from class: SimplePBEConfig

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

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

        If not set, null will be returned.

        Determines the result of: SimplePBEConfig.getPoolSize()

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

        public void setPoolSize​(java.lang.String poolSize)
        Description copied from class: SimplePBEConfig

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

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

        If not set, null will be returned.

        Determines the result of: SimplePBEConfig.getPoolSize()

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