diff options
author | Luck <git@lucko.me> | 2024-07-20 09:27:28 +0100 |
---|---|---|
committer | Luck <git@lucko.me> | 2024-07-20 09:27:28 +0100 |
commit | c0ffb19c40b2397d099b960aa0545dafd4b2525d (patch) | |
tree | 4990f8aa27c0a499ead4988506028d17837b064b | |
parent | 487cd0c9c09baccaf73c06d1a6c12061b09342b0 (diff) | |
download | spark-c0ffb19c40b2397d099b960aa0545dafd4b2525d.tar.gz spark-c0ffb19c40b2397d099b960aa0545dafd4b2525d.tar.bz2 spark-c0ffb19c40b2397d099b960aa0545dafd4b2525d.zip |
Redact username from vm args (#423)
-rw-r--r-- | spark-common/src/main/java/me/lucko/spark/common/platform/PlatformStatisticsProvider.java | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/spark-common/src/main/java/me/lucko/spark/common/platform/PlatformStatisticsProvider.java b/spark-common/src/main/java/me/lucko/spark/common/platform/PlatformStatisticsProvider.java index db6d177..11111cd 100644 --- a/spark-common/src/main/java/me/lucko/spark/common/platform/PlatformStatisticsProvider.java +++ b/spark-common/src/main/java/me/lucko/spark/common/platform/PlatformStatisticsProvider.java @@ -43,6 +43,7 @@ import java.lang.management.ManagementFactory; import java.lang.management.MemoryUsage; import java.lang.management.RuntimeMXBean; import java.util.Map; +import java.util.regex.Pattern; public class PlatformStatisticsProvider { private final SparkPlatform platform; @@ -55,6 +56,8 @@ public class PlatformStatisticsProvider { RuntimeMXBean runtimeBean = ManagementFactory.getRuntimeMXBean(); OperatingSystemInfo osInfo = OperatingSystemInfo.poll(); + String vmArgs = String.join(" ", runtimeBean.getInputArguments()); + SystemStatistics.Builder builder = SystemStatistics.newBuilder() .setCpu(SystemStatistics.Cpu.newBuilder() .setThreads(Runtime.getRuntime().availableProcessors()) @@ -99,7 +102,7 @@ public class PlatformStatisticsProvider { .setVendor(System.getProperty("java.vendor", "unknown")) .setVersion(System.getProperty("java.version", "unknown")) .setVendorVersion(System.getProperty("java.vendor.version", "unknown")) - .setVmArgs(String.join(" ", runtimeBean.getInputArguments())) + .setVmArgs(VmArgRedactor.replace(vmArgs)) .build() ) .setJvm(SystemStatistics.Jvm.newBuilder() @@ -222,4 +225,17 @@ public class PlatformStatisticsProvider { .build(); } + static final class VmArgRedactor { + private static final Pattern WINDOWS_USERNAME = Pattern.compile("C:\\\\Users\\\\\\w+"); + private static final Pattern MACOS_USERNAME = Pattern.compile("/Users/\\w+"); + private static final Pattern LINUX_USERNAME = Pattern.compile("/home/\\w+"); + + static String replace(String input) { + input = WINDOWS_USERNAME.matcher(input).replaceAll("C:\\\\Users\\\\<redacted>"); + input = MACOS_USERNAME.matcher(input).replaceAll("/Users/<redacted>"); + input = LINUX_USERNAME.matcher(input).replaceAll("/home/<redacted>"); + return input; + } + } + } |