diff --git a/spring-platform-config-server/src/main/java/org/springframework/platform/config/server/EncryptionController.java b/spring-platform-config-server/src/main/java/org/springframework/platform/config/server/EncryptionController.java index 99f57644..4392c901 100644 --- a/spring-platform-config-server/src/main/java/org/springframework/platform/config/server/EncryptionController.java +++ b/spring-platform-config-server/src/main/java/org/springframework/platform/config/server/EncryptionController.java @@ -209,22 +209,21 @@ public class EncryptionController { source.getSource()); for (Object key : map.keySet()) { String name = key.toString(); - if (name.endsWith(".secret")) { - Object value = map.get(key); + String value = map.get(key).toString(); + if (value.startsWith("{cipher}")) { map.remove(key); - name = name.substring(0, name.length() - ".secret".length()); if (encryptor == null) { map.put(name, value); } else { try { value = value == null ? null : encryptor.decrypt(value - .toString()); + .substring("{cipher}".length())); } catch (Exception e) { value = ""; name = "invalid." + name; - logger.warn("Cannot decode key: " + key + " (" + e.getClass() + logger.warn("Cannot decrypt key: " + key + " (" + e.getClass() + ": " + e.getMessage() + ")"); } map.put(name, value); diff --git a/spring-platform-config-server/src/test/java/org/springframework/platform/config/server/EncryptionControllerTests.java b/spring-platform-config-server/src/test/java/org/springframework/platform/config/server/EncryptionControllerTests.java index 6d8e3495..d5084cde 100644 --- a/spring-platform-config-server/src/test/java/org/springframework/platform/config/server/EncryptionControllerTests.java +++ b/spring-platform-config-server/src/test/java/org/springframework/platform/config/server/EncryptionControllerTests.java @@ -82,7 +82,7 @@ public class EncryptionControllerTests { String cipher = controller.encrypt("foo"); Environment environment = new Environment("foo", "bar"); environment.add(new PropertySource("spam", Collections - . singletonMap("my.secret", cipher))); + . singletonMap("my", "{cipher}" + cipher))); Environment result = controller.decrypt(environment); assertEquals("foo", result.getPropertySources().get(0).getSource().get("my")); }