aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuck <git@lucko.me>2024-07-20 09:27:28 +0100
committerLuck <git@lucko.me>2024-07-20 09:27:28 +0100
commitc0ffb19c40b2397d099b960aa0545dafd4b2525d (patch)
tree4990f8aa27c0a499ead4988506028d17837b064b
parent487cd0c9c09baccaf73c06d1a6c12061b09342b0 (diff)
downloadspark-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.java18
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;
+ }
+ }
+
}