From 756672258d86ca77fc7b7d4aa83a3714e3e6cb28 Mon Sep 17 00:00:00 2001 From: Jan-Peter Klein Date: Tue, 14 Jan 2025 15:29:49 +0100 Subject: [PATCH] add Hub Vault check for MASTERKEY_MISSING state --- .../cryptomator/common/vaults/VaultListManager.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/cryptomator/common/vaults/VaultListManager.java b/src/main/java/org/cryptomator/common/vaults/VaultListManager.java index c3b54a836..7a588f1a8 100644 --- a/src/main/java/org/cryptomator/common/vaults/VaultListManager.java +++ b/src/main/java/org/cryptomator/common/vaults/VaultListManager.java @@ -15,6 +15,7 @@ import org.cryptomator.cryptofs.CryptoFileSystemProvider; import org.cryptomator.cryptofs.DirStructure; import org.cryptomator.cryptofs.migration.Migrators; import org.cryptomator.integrations.mount.MountService; +import org.cryptomator.ui.keyloading.hub.HubKeyLoadingStrategy; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -105,6 +106,10 @@ public class VaultListManager { private void addAll(Collection vaultSettings) { Collection vaults = vaultSettings.stream().map(this::create).toList(); + vaults.forEach(vault -> { + VaultState.Value newState = redetermineVaultState(vault); + LOG.info("New state for vault at {}: {}", vault.getPath(), newState); + }); vaultList.addAll(vaults); } @@ -137,6 +142,12 @@ public class VaultListManager { case LOCKED, NEEDS_MIGRATION, MISSING, VAULT_CONFIG_MISSING, MASTERKEY_MISSING -> { try { var determinedState = determineVaultState(vault.getPath()); + if(determinedState == MASTERKEY_MISSING){ + var vaultScheme = vault.getVaultConfigCache().getUnchecked().getKeyId().getScheme(); + if((vaultScheme.equals(HubKeyLoadingStrategy.SCHEME_HUB_HTTP) || vaultScheme.equals(HubKeyLoadingStrategy.SCHEME_HUB_HTTPS))){ + determinedState = LOCKED; + } + } if (determinedState == LOCKED) { vault.getVaultConfigCache().reloadConfig(); } @@ -180,7 +191,6 @@ public class VaultListManager { } else if (!Files.exists(pathToMasterkey)) { - //return VaultState.Value.MASTERKEY_MISSING; try (Stream files = Files.list(pathToMasterkey.getParent())) { Path backupFile = files.filter(file -> { String fileName = file.getFileName().toString();