ulisesbocchio / jasypt-spring-boot

Jasypt integration for Spring boot
MIT License
2.88k stars 514 forks source link

JDK upgrade caused exception:jasypt-spring-boot Versoin:3.0.4. #295

Closed lujuliang closed 1 year ago

lujuliang commented 2 years ago

Hi, I just upgrade the jdk version from 1.8.0_261 to 1.8.0_291 in windows environment, it is not able to decrypt with new version jdk. Does it depend on jdk? Caused by: com.ulisesbocchio.jasyptspringboot.exception.DecryptionException: Unable to decrypt property: ENC(XXX) resolved to: ENC(XXX). Decryption of Properties failed, make sure encryption/decryption passwords match at com.ulisesbocchio.jasyptspringboot.resolver.DefaultPropertyResolver.lambda$resolvePropertyValue$0(DefaultPropertyResolver.java:46) at java.util.Optional.map(Optional.java:215) at com.ulisesbocchio.jasyptspringboot.resolver.DefaultPropertyResolver.resolvePropertyValue(DefaultPropertyResolver.java:40) at com.ulisesbocchio.jasyptspringboot.resolver.DefaultLazyPropertyResolver.resolvePropertyValue(DefaultLazyPropertyResolver.java:50) at com.ulisesbocchio.jasyptspringboot.EncryptablePropertySource.getProperty(EncryptablePropertySource.java:28) at com.ulisesbocchio.jasyptspringboot.caching.CachingDelegateEncryptablePropertySource.getProperty(CachingDelegateEncryptablePropertySource.java:44) at com.ulisesbocchio.jasyptspringboot.wrapper.EncryptableMapPropertySourceWrapper.getProperty(EncryptableMapPropertySourceWrapper.java:29) at org.springframework.boot.context.properties.source.SpringIterableConfigurationPropertySource.getConfigurationProperty(SpringIterableConfigurationPropertySource.java:105) at org.springframework.boot.context.properties.bind.Binder.findProperty(Binder.java:422) at org.springframework.boot.context.properties.bind.Binder.bindObject(Binder.java:369) at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:319) ... 86 common frames omitted Caused by: org.jasypt.exceptions.EncryptionOperationNotPossibleException: null at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.decrypt(StandardPBEByteEncryptor.java:1169) at org.jasypt.encryption.pbe.StandardPBEStringEncryptor.decrypt(StandardPBEStringEncryptor.java:738) at org.jasypt.encryption.pbe.PooledPBEStringEncryptor.decrypt(PooledPBEStringEncryptor.java:511) at com.ulisesbocchio.jasyptspringboot.encryptor.DefaultLazyEncryptor.decrypt(DefaultLazyEncryptor.java:57) at com.ulisesbocchio.jasyptspringboot.resolver.DefaultPropertyResolver.lambda$resolvePropertyValue$0(DefaultPropertyResolver.java:44) ... 96 common frames omitted

ulisesbocchio commented 2 years ago

Do you have the jce installed in the new jdk?

lujuliang commented 2 years ago

Hi @ulisesbocchio Yes, jce .jar in the jre/lib directory

lujuliang commented 2 years ago

Hi @ulisesbocchio I used the following method to encrypt the password. Our project is build by gradle. import org.jasypt.encryption.StringEncryptor; @Autowired private StringEncryptor encryptor; @RequestMapping(value = "/encryppassword", method = RequestMethod.GET) public String version1() { return encryptor.encrypt("password"); }