The quick fix is you probably want to reference spring4 rather than spring3.
<bean id="propertyConfigurer"
class="org.jasypt.spring4.properties.EncryptablePropertyPlaceholderConfigurer">
<constructor-arg ref="configurationEncryptor" />
<property name="locations" value="file:${PROPERTY_FILE_PATH}"/>
</bean>
I tested it and it works for me, with Ignite 2.10.
However… if you’re willing to put the encryption password in an environment
variable, why not just put the third-party DB password in the environment
variable? I’m not convinced that the extra level of indirection adds much in
the way of security. My preference is always to use a secrets manager like
Vault or AWS Secret Manager.
> On 30 Jun 2021, at 06:23, Kamlesh Joshi <[email protected]> wrote:
>
> Hi Igniters,
>
> We want to add support for DB password encryption/decryption. We have tried
> following approach but no luck (ignite is unable to decrypt the password).
> Can anyone guide on this and if it’s a correct approach? Added supported jars
> on Ignite classpath.
>
> Ignite configuration file:
>
> <bean id="environmentVariablesConfiguration"
> class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">
> <property name="algorithm" value="PBEWithMD5AndDES" />
> <property name="passwordEnvName" value="APP_ENCRYPTION_PASSWORD" />
> </bean>
>
> <bean id="configurationEncryptor"
> class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
> <property name="config"
> ref="environmentVariablesConfiguration" />
> </bean>
>
> <bean id="propertyConfigurer"
>
> class="org.jasypt.spring3.properties.EncryptablePropertyPlaceholderConfigurer">
> <constructor-arg ref="configurationEncryptor" />
> <property name="locations" value="file:${PROPERTY_FILE_PATH}"/>
> </bean>
>
> Property file entry:
> thirdPartyDS.jdbc.password=ENC(AQqqmNSRdDQDic+9nMnFRq5rrkQZn)
>
>
> Thanks and Regards,
> Kamlesh Joshi