在Spring Boot应用程序配置中有没有办法使用Spring Cloud {cipher}?
我有一个使用Spring Cloud Config的Spring Boot应用程序,但我想在Spring Boot apps bootstrap.yml文件中加密Spring Cloud Config密码。有没有办法做到这一点?下面是一个例子。在Spring Boot应用程序配置中有没有办法使用Spring Cloud {cipher}?
弹簧引导应用bootstrap.yml
spring:
cloud:
config:
uri: http://locahost:8888
username: user
password: '{cipher}encryptedpassword'
没有为在配置客户端加密属性(如在user guide描述)的支持。很明显,如果你这样做,你必须提供一个密钥来解密运行时的属性,所以实际上我并不总是看到好处(我想配置文件有点像一个特殊格式的密钥库,所以你只有有一个秘密来保护而不是许多)。示例(application.yml):
integration:
stores:
test: '{cipher}316f8cdbb776c23e679bf209014788a6eab7522f48f97114328c2c9388e6b3c1'
和键(bootstrap.yml):
encrypt:
key: ${ENCRYPT_KEY:} # deadbeef
一对夫妇的事情,我已经发现了与此有关。
如果使用bootstrap.yml(或application.yml),为密文的格式必须封闭单引号内:
security.user.password: '{cipher}56e611ce4a99ffd99908d2c9aa1461d831722812e4370a5b6900b7ea680ae914'
如果使用bootstrap.properties(或application.properties)时,为密文格式不括:
security.user.password= {cipher}56e611ce4a99ffd99908d2c9aa1461d831722812e4370a5b6900b7ea680ae914
的[参考文档] [1]显示YML不带引号,这是我从来没有工作。 SnakeYaml总是报错:
"expected <block end>, but found Scalar"
.properties文件使用=,而不是“:” – 2017-06-20 19:21:24
您是正确的先生。修改为后人。 – 2017-06-22 12:21:18
你可以使用Spring CLI加密秘密spring encrypt password --key 'SECRET_KEY'
感谢戴夫。我不确定我昨天做错了什么,但我无法得到它的工作。我将ENCRYPT_KEY设置为一个OS环境变量。我今天再试一次,它正在工作。 – 2015-02-10 17:11:09