Pārlūkot izejas kodu

add Hub Vault check for MASTERKEY_MISSING state

Jan-Peter Klein 7 mēneši atpakaļ
vecāks
revīzija
756672258d

+ 11 - 1
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> vaultSettings) {
 		Collection<Vault> 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<Path> files = Files.list(pathToMasterkey.getParent())) {
 				Path backupFile = files.filter(file -> {
 					String fileName = file.getFileName().toString();