ulisesbocchio / jasypt-spring-boot

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

JASYPT_ENCRYPTOR_PASSWORD环境变量设置的优先级 #259

Closed anime8992 closed 3 years ago

anime8992 commented 3 years ago

Dear, 最近在集成jasypt-spring-boot,发现一个问题:如果在环境变量中设置一个key为JASYPT_ENCRYPTOR_PASSWORD,value为 test123的环境变量,然后再spring boot 中配置文件中按照以下几个场景设置:

  1. jasypt.encryptor.password=${JASYPT_ENCRYPTOR_PASSWORD},程序读取到的密码为:test123
  2. jasypt.encryptor.password=${TEST_PROJECT_PASWORD},程序读取到的密码为:test123,不符合预期
  3. jasypt.encryptor.password=test456,程序读取到的密码为:test123,不符合预期

去掉JASYPT_ENCRYPTOR_PASSWORD这个环境变量之后,第2、3中情况就符合预期了

目前的一个猜测是:jasypt-spring-boot会读取环境变量中的JASYPT_ENCRYPTOR_PASSWORD,该变量值为最高的优先级,如果能读取该值,则不会使用其他方式设置的encryptor password

解决方式:建议在文档说明或修改相关代码逻辑

xtuer commented 3 years ago

这个是 Spring Boot 读取配置的优先级策略,可参考 Spring Boot 配置特性解析