Sanitize flattened VCAP_SERVICES properties

Update `Sanitizer` to also include flattened `vcap.services.*`
properties.

Fixes gh-28085
2.4.x
Phillip Webb 3 years ago
parent 540468b2f0
commit b68b3737d7

@ -45,8 +45,8 @@ public class Sanitizer {
private static final String[] REGEX_PARTS = { "*", "$", "^", "+" }; private static final String[] REGEX_PARTS = { "*", "$", "^", "+" };
private static final Set<String> DEFAULT_KEYS_TO_SANITIZE = new LinkedHashSet<>( private static final Set<String> DEFAULT_KEYS_TO_SANITIZE = new LinkedHashSet<>(
Arrays.asList("password", "secret", "key", "token", ".*credentials.*", "vcap_services", "sun.java.command", Arrays.asList("password", "secret", "key", "token", ".*credentials.*", "vcap_services",
"^spring[\\._]application[\\\\._]json$")); "^vcap\\.services.*$", "sun.java.command", "^spring[\\._]application[\\\\._]json$"));
private static final Set<String> URI_USERINFO_KEYS = new LinkedHashSet<>( private static final Set<String> URI_USERINFO_KEYS = new LinkedHashSet<>(
Arrays.asList("uri", "uris", "address", "addresses")); Arrays.asList("uri", "uris", "address", "addresses"));

@ -48,6 +48,8 @@ class SanitizerTests {
assertThat(sanitizer.sanitize("sun.java.command", "--spring.redis.password=pa55w0rd")).isEqualTo("******"); assertThat(sanitizer.sanitize("sun.java.command", "--spring.redis.password=pa55w0rd")).isEqualTo("******");
assertThat(sanitizer.sanitize("SPRING_APPLICATION_JSON", "{password:123}")).isEqualTo("******"); assertThat(sanitizer.sanitize("SPRING_APPLICATION_JSON", "{password:123}")).isEqualTo("******");
assertThat(sanitizer.sanitize("spring.application.json", "{password:123}")).isEqualTo("******"); assertThat(sanitizer.sanitize("spring.application.json", "{password:123}")).isEqualTo("******");
assertThat(sanitizer.sanitize("VCAP_SERVICES", "{json}")).isEqualTo("******");
assertThat(sanitizer.sanitize("vcap.services.db.codeword", "secret")).isEqualTo("******");
} }
@ParameterizedTest(name = "key = {0}") @ParameterizedTest(name = "key = {0}")

Loading…
Cancel
Save