在Spring Cloud Config中使用YAML文件中的占位符引用值时,如何保留引号?

时间:2019-06-27 07:19:50

标签: spring encryption spring-cloud-config

我有一个以冒号结尾的密码,例如abc:,我想将其加密存储在GIT中并使用Spring Cloud Config解密。 这是预期的YAML文件:

spring:
  datasource:
    password: "abc:"

这是加密的YAML文件:

spring:
  datasource:
    password: "{cipher}blablabla"

这是解密后我从Spring Cloud Config收到的信息:

spring:
  datasource:
    password: abc:

YAML解析器将其解释为键而不是值。

有没有办法告诉Spring Cloud Config我想将解密后的值括在引号或类似的内容中?

编辑

我的错误是,在解密字符串后,Spring Could Config服务器实际上在需要时会添加引号。所以结果是预期的:

spring:
  datasource:
    password: 'abc:'

问题在于,当我使用占位符引用此值时,引号在过程中消失:

a_key:
  another_key: ${spring.datasource.password}

在由Spring Could Config服务器处理时成为:

a_key:
  another_key: abc:

真正的问题是:在Spring Cloud Config中使用YAML文件中的占位符引用值时如何保留引号?

1 个答案:

答案 0 :(得分:0)

到目前为止,我发现的唯一方法是通过转义$字符将占位符分辨率留给运行时:

a_key:
  another_key: \${spring.datasource.password}

然后,由Spring Cloud Config服务器提供的结果YAML为:

a_key:
  another_key: ${spring.datasource.password}

链接到Spring Cloud Config文档here