Skip to content

Commit 6704bfe

Browse files
committed
masking
1 parent 9239b77 commit 6704bfe

File tree

1 file changed

+24
-13
lines changed
  • agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init

1 file changed

+24
-13
lines changed

agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
import java.lang.management.RuntimeMXBean;
3434
import java.nio.charset.StandardCharsets;
3535
import java.nio.file.Path;
36+
import java.util.AbstractMap.SimpleEntry;
37+
import java.util.Locale;
3638
import java.util.Map;
3739
import java.util.Properties;
3840
import java.util.stream.Collectors;
@@ -143,15 +145,26 @@ public void init(EarlyInitAgentConfig earlyConfig) {
143145
private static Map<String, String> findEnvVariables() {
144146
Map<String, String> env = System.getenv();
145147
return env.entrySet().stream()
146-
.filter(entry -> !isSensitiveProperty(entry.getKey()))
148+
.map(
149+
entry -> {
150+
String key = entry.getKey();
151+
String value = entry.getValue().toString();
152+
String valueToDisplay = maskValueOfSensitiveKey(key, value);
153+
return new SimpleEntry<>(key, valueToDisplay);
154+
})
147155
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
148156
}
149157

150-
private static boolean isSensitiveProperty(String key) {
151-
return key.contains("user")
152-
|| key.contains("password")
153-
|| key.contains("pwd")
154-
|| key.contains("secret");
158+
private static String maskValueOfSensitiveKey(String key, String value) {
159+
return isSensitive(key) ? "***" : value;
160+
}
161+
162+
private static boolean isSensitive(String key) {
163+
String keyInLowerCase = key.toLowerCase(Locale.ROOT);
164+
return keyInLowerCase.contains("user")
165+
|| keyInLowerCase.contains("password")
166+
|| keyInLowerCase.contains("pwd")
167+
|| keyInLowerCase.contains("secret");
155168
}
156169

157170
private static void checkTlsConnectionsToVirtualServersEnabled() {
@@ -168,14 +181,12 @@ private static String findSystemProperties() {
168181
StringBuilder propsBuilder = new StringBuilder();
169182
properties.forEach(
170183
(key, value) -> {
171-
String keyAsString = key.toString();
172-
if (!isSensitiveProperty(keyAsString)) {
173-
boolean firstProperty = propsBuilder.length() == 0;
174-
if (!firstProperty) {
175-
propsBuilder.append(", ");
176-
}
177-
propsBuilder.append("(" + key + "=" + value + ")");
184+
boolean firstProperty = propsBuilder.length() == 0;
185+
if (!firstProperty) {
186+
propsBuilder.append(", ");
178187
}
188+
String valueToDisplay = maskValueOfSensitiveKey(key.toString(), value.toString());
189+
propsBuilder.append("(" + key + "=" + valueToDisplay + ")");
179190
});
180191
return propsBuilder.toString();
181192
}

0 commit comments

Comments
 (0)