add Hub Vault check for MASTERKEY_MISSING state

This commit is contained in:
Jan-Peter Klein
2025-01-14 15:29:49 +01:00
parent fb6f7072d4
commit 756672258d

View File

@@ -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();