diff --git a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/EnvironmentController.java b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/EnvironmentController.java index e70ca7484..2e5d55b21 100644 --- a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/EnvironmentController.java +++ b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/EnvironmentController.java @@ -228,6 +228,7 @@ public ResponseEntity labelledYaml(@PathVariable String name, @PathVaria if (resolvePlaceholders) { yaml = resolvePlaceholders(prepareEnvironment(environment), yaml); + yaml = yaml.replaceAll(": \\{(.+)", ": '{$1'"); } return getSuccess(yaml); diff --git a/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/EnvironmentControllerTests.java b/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/EnvironmentControllerTests.java index 3e2c25a8d..e35f34e2b 100644 --- a/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/EnvironmentControllerTests.java +++ b/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/EnvironmentControllerTests.java @@ -195,6 +195,20 @@ public void yamlWithBrackets() throws Exception { assertThat(yaml).isEqualTo("a:\n test: e\n b[hello]: c\n b[world]: d\n b[world]d: f\n"); } + @Test + public void yamlWithBraceInValue() throws Exception { + Map map = new LinkedHashMap(); + map.put("a.src", "{cipher}123456"); + map.put("b.src", "{string"); + map.put("a.dst", "${a.src}"); + map.put("b.dst", "${b.src}"); + this.environment.add(new PropertySource("one", map)); + when(this.repository.findOne("foo", "bar", null, false)).thenReturn(this.environment); + String yaml = this.controller.yaml("foo", "bar", true).getBody(); + assertThat(yaml).isEqualTo( + "a:\n src: '{cipher}123456'\n dst: '{cipher}123456'\nb:\n src: '{string'\n dst: '{string'\n"); + } + @Test public void arrayOverridenInEnvironment() throws Exception { // Add original values first source