From 03cd25106c233f330d9a1229e224fb17c29b82ed Mon Sep 17 00:00:00 2001 From: crschnick Date: Mon, 27 May 2024 21:33:58 +0000 Subject: [PATCH] Vault secret rewrite fixes --- .../java/io/xpipe/app/storage/DataStoreSecret.java | 12 +++++++----- .../java/io/xpipe/app/util/AppJacksonModule.java | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/io/xpipe/app/storage/DataStoreSecret.java b/app/src/main/java/io/xpipe/app/storage/DataStoreSecret.java index 98cabe2a..efd4ded3 100644 --- a/app/src/main/java/io/xpipe/app/storage/DataStoreSecret.java +++ b/app/src/main/java/io/xpipe/app/storage/DataStoreSecret.java @@ -1,13 +1,11 @@ package io.xpipe.app.storage; +import com.fasterxml.jackson.core.TreeNode; import io.xpipe.app.prefs.AppPrefs; import io.xpipe.app.util.PasswordLockSecretValue; import io.xpipe.app.util.VaultKeySecretValue; import io.xpipe.core.util.InPlaceSecretValue; import io.xpipe.core.util.SecretValue; - -import com.fasterxml.jackson.core.TreeNode; -import lombok.Setter; import lombok.Value; import lombok.experimental.NonFinal; @@ -18,9 +16,8 @@ import java.util.Objects; public class DataStoreSecret { InPlaceSecretValue internalSecret; + @NonFinal String usedPasswordLockCrypt; - - @Setter @NonFinal TreeNode originalNode; @@ -53,6 +50,11 @@ public class DataStoreSecret { return !Objects.equals(AppPrefs.get().getLockCrypt().get(), usedPasswordLockCrypt); } + public void rewrite(TreeNode updatedNode) { + originalNode = updatedNode; + usedPasswordLockCrypt = AppPrefs.get().getLockCrypt().get(); + } + public char[] getSecret() { return internalSecret != null ? internalSecret.getSecret() : new char[0]; } diff --git a/app/src/main/java/io/xpipe/app/util/AppJacksonModule.java b/app/src/main/java/io/xpipe/app/util/AppJacksonModule.java index 54a01faa..a47fd4d3 100644 --- a/app/src/main/java/io/xpipe/app/util/AppJacksonModule.java +++ b/app/src/main/java/io/xpipe/app/util/AppJacksonModule.java @@ -94,7 +94,7 @@ public class AppJacksonModule extends SimpleModule { var tree = JsonNodeFactory.instance.objectNode(); tree.set("secret", valTree); jgen.writeTree(tree); - value.setOriginalNode(valTree); + value.rewrite(valTree); } }