From fe05bb58a4e574273d60322e9400a7a9630381e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=9E=E5=BA=90?= <109708109+CiiLu@users.noreply.github.com> Date: Tue, 21 Jul 2026 21:30:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=97=B6=20=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E8=BE=93=E5=87=BA=E6=96=B0=E8=BF=9B=E7=A8=8B=E5=91=BD?= =?UTF-8?q?=E4=BB=A4=E8=A1=8C=E6=97=B6=20=E6=89=93=E7=A0=81=E6=95=8F?= =?UTF-8?q?=E6=84=9F=E4=BF=A1=E6=81=AF=20(#6456)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jackhuang/hmcl/upgrade/UpdateHandler.java | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/UpdateHandler.java b/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/UpdateHandler.java index cbb68f6c2a..4688264a03 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/UpdateHandler.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/UpdateHandler.java @@ -47,6 +47,7 @@ import java.util.concurrent.CancellationException; import java.util.concurrent.CountDownLatch; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.stream.Collectors; import static org.jackhuang.hmcl.ui.FXUtils.checkFxUserThread; import static org.jackhuang.hmcl.util.Lang.thread; @@ -220,13 +221,35 @@ public final class UpdateHandler { commandline.add("-jar"); commandline.add(jar.toAbsolutePath().toString()); commandline.addAll(Arrays.asList(appArgs)); - LOG.info("Starting process: " + commandline); + LOG.info("Starting process: " + maskCommandline(commandline)); new ProcessBuilder(commandline) .directory(Paths.get("").toAbsolutePath().toFile()) .inheritIO() .start(); } + private static String maskCommandline(List commandline) { + return commandline.stream().map(str -> { + if (str.startsWith("-D")) { + int eqIdx = str.indexOf('='); + if (eqIdx != -1) { + String key = str.substring(2, eqIdx); + String value = str.substring(eqIdx + 1); + if (key.contains("http.proxy") || + key.startsWith("https.proxy") || + key.startsWith("socksProxy") || + key.equals("hmcl.microsoft.auth.id") || + key.equals("hmcl.curseforge.apikey") + ) { + return "-D" + key + "=" + (value.isEmpty() ? "" : value.charAt(0) + "*".repeat(value.length() - 1)); + } + } + } + + return str; + }).collect(Collectors.joining(" ")); + } + private static Optional tryRename(Path path, String newVersion) { String filename = path.getFileName().toString(); Matcher matcher = Pattern.compile("^(?[hH][mM][cC][lL][.-])(?\\d+(?:\\.\\d+)*)(?\\.[^.]+)$").matcher(filename);