From 7a1408910a75ee89032682ddd122b76e1bdaed10 Mon Sep 17 00:00:00 2001 From: crschnick Date: Wed, 29 Apr 2026 04:13:13 +0000 Subject: [PATCH] Rework --- .../io/xpipe/app/cred/InPlaceKeyStrategy.java | 15 ++++++++++++--- .../io/xpipe/app/util/RemoteDesktopWindow.java | 1 + 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/io/xpipe/app/cred/InPlaceKeyStrategy.java b/app/src/main/java/io/xpipe/app/cred/InPlaceKeyStrategy.java index c8c16ff07..9b4d16ad2 100644 --- a/app/src/main/java/io/xpipe/app/cred/InPlaceKeyStrategy.java +++ b/app/src/main/java/io/xpipe/app/cred/InPlaceKeyStrategy.java @@ -13,6 +13,7 @@ import io.xpipe.app.process.CommandBuilder; import io.xpipe.app.process.ShellControl; import io.xpipe.app.secret.SecretRetrievalStrategy; import io.xpipe.app.secret.SecretStrategyChoiceConfig; +import io.xpipe.app.storage.DataStorage; import io.xpipe.app.util.DocumentationLink; import io.xpipe.app.util.LocalFileTracker; import io.xpipe.app.util.ThreadHelper; @@ -32,8 +33,8 @@ import lombok.extern.jackson.Jacksonized; import org.kordamp.ikonli.javafx.FontIcon; import java.nio.charset.StandardCharsets; -import java.util.List; -import java.util.Objects; +import java.util.*; +import java.util.regex.Pattern; import java.util.stream.Collectors; @Value @@ -43,6 +44,12 @@ import java.util.stream.Collectors; @AllArgsConstructor public class InPlaceKeyStrategy implements SshIdentityStrategy { + private static final Set KEYS = new HashSet<>(); + + public static boolean isInPlaceKey(String keyName) { + return KEYS.contains(keyName); + } + @SuppressWarnings("unused") public static OptionsBuilder createOptions(Property p, SshIdentityStrategyChoiceConfig config) { var options = new OptionsBuilder(); @@ -182,9 +189,11 @@ public class InPlaceKeyStrategy implements SshIdentityStrategy { } private FilePath getTargetFilePath(ShellControl sc) { + var hash = Math.abs(Objects.hash(this, AppSystemInfo.ofCurrent().getUser())); var temp = sc.getSystemTemporaryDirectory() .join("xpipe-" - + Math.abs(Objects.hash(this, AppSystemInfo.ofCurrent().getUser())) + ".key"); + + hash + ".key"); + KEYS.add(temp.getFileName()); return temp; } diff --git a/app/src/main/java/io/xpipe/app/util/RemoteDesktopWindow.java b/app/src/main/java/io/xpipe/app/util/RemoteDesktopWindow.java index 27da5b118..5815a1305 100644 --- a/app/src/main/java/io/xpipe/app/util/RemoteDesktopWindow.java +++ b/app/src/main/java/io/xpipe/app/util/RemoteDesktopWindow.java @@ -113,6 +113,7 @@ public class RemoteDesktopWindow { } AppWindowStyle.addIcons(stage); AppWindowStyle.addStylesheets(stage.getScene()); + AppWindowStyle.addClickShield(stage); AppWindowStyle.addMaximizedPseudoClass(stage); AppWindowStyle.addFontSize(stage); AppTheme.initThemeHandlers(stage);