From bbb4ac1542f39890690ecacc8349d122bdfea6ac Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Tue, 21 Sep 2021 15:18:50 -0700 Subject: [PATCH] Sanitize SPRING_APPLICATION_JSON by default Update `Sanitizer` default keys to include `SPRING_APPLICATION_JSON`. Fixes gh-28045 --- .../org/springframework/boot/actuate/endpoint/Sanitizer.java | 5 +++-- .../boot/actuate/endpoint/SanitizerTests.java | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/Sanitizer.java b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/Sanitizer.java index 3dd5451cf294..a031592ef9cd 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/Sanitizer.java +++ b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/Sanitizer.java @@ -44,8 +44,9 @@ public class Sanitizer { private static final String[] REGEX_PARTS = { "*", "$", "^", "+" }; - private static final Set DEFAULT_KEYS_TO_SANITIZE = new LinkedHashSet<>(Arrays.asList("password", "secret", - "key", "token", ".*credentials.*", "vcap_services", "sun.java.command")); + private static final Set DEFAULT_KEYS_TO_SANITIZE = new LinkedHashSet<>( + Arrays.asList("password", "secret", "key", "token", ".*credentials.*", "vcap_services", "sun.java.command", + "^spring[\\._]application[\\\\._]json$")); private static final Set URI_USERINFO_KEYS = new LinkedHashSet<>( Arrays.asList("uri", "uris", "address", "addresses")); diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/SanitizerTests.java b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/SanitizerTests.java index 10bc768747f0..0d567da6c622 100644 --- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/SanitizerTests.java +++ b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/SanitizerTests.java @@ -46,6 +46,8 @@ void defaultNonUriKeys() { assertThat(sanitizer.sanitize("sometoken", "secret")).isEqualTo("******"); assertThat(sanitizer.sanitize("find", "secret")).isEqualTo("secret"); 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("******"); } @ParameterizedTest(name = "key = {0}")