Spring Boot应用修改Jasypt算法遇阻:默认配置为何不生效?
问题根源及解决思路
你的属性绑定错误本质是加密与解密的参数不匹配:
- 你配置里的
my.ldap.password密文,是用旧参数(PBEWithMD5AndDES算法 +NoIvGenerator)加密生成的。当你修改Jasypt配置为默认算法或仅保留密码时,Jasypt会用新的默认参数(PBEWITHHMACSHA512ANDAES_256+RandomIvGenerator)去解密旧密文,必然解密失败,得到的不是合法字符串,导致Spring无法完成属性绑定。 - 官方文档说仅需配置
jasypt.encryptor.password,是针对用默认算法加密新密文的场景,而非用新算法解密旧密文的情况。
解决办法
- 如果你想切换到默认算法:用新的默认参数重新加密你的LDAP原始密码,将生成的新密文替换配置里的
ENC(ObIbZYSJF60VnboZMRtlhj9a/+4B/kkP)。 - 如果要继续使用旧密文:必须保持Jasypt的加密参数和加密时完全一致,也就是保留原来的
algorithm和iv-generator-classname配置。
内容的提问来源于stack exchange,提问作者gstackoverflow
相关产品推荐
相关产品推荐

