Quellcode durchsuchen

update pom and adjust classes to new keychain api. (#3877)

Armin Schrenk vor 6 Tagen
Ursprung
Commit
7d2c4992af

+ 4 - 4
pom.xml

@@ -34,10 +34,10 @@
 
 		<!-- cryptomator dependencies -->
 		<cryptomator.cryptofs.version>2.9.0</cryptomator.cryptofs.version>
-		<cryptomator.integrations.version>1.5.1</cryptomator.integrations.version>
-		<cryptomator.integrations.win.version>1.3.0</cryptomator.integrations.win.version>
-		<cryptomator.integrations.mac.version>1.3.2</cryptomator.integrations.mac.version>
-		<cryptomator.integrations.linux.version>1.5.3</cryptomator.integrations.linux.version>
+		<cryptomator.integrations.version>1.6.0</cryptomator.integrations.version>
+		<cryptomator.integrations.win.version>1.5.0</cryptomator.integrations.win.version>
+		<cryptomator.integrations.mac.version>1.4.0</cryptomator.integrations.mac.version>
+		<cryptomator.integrations.linux.version>1.6.0</cryptomator.integrations.linux.version>
 		<cryptomator.fuse.version>5.0.5</cryptomator.fuse.version>
 		<cryptomator.webdav.version>2.0.10</cryptomator.webdav.version>
 

+ 1 - 15
src/main/java/org/cryptomator/common/keychain/KeychainManager.java

@@ -42,25 +42,11 @@ public class KeychainManager implements KeychainAccessProvider {
 		return result;
 	}
 
-	@Override
-	public String displayName() {
-		return getClass().getName();
-	}
-
 	@Override
 	public void storePassphrase(String key, String displayName, CharSequence passphrase) throws KeychainAccessException {
-		storePassphrase(key, displayName, passphrase, true);
-	}
-
-	//TODO: remove ignored parameter once the API is fixed
-	@Override
-	public void storePassphrase(String key, String displayName, CharSequence passphrase, boolean ignored) throws KeychainAccessException {
 		try {
 			lock.writeLock().lock();
-			var kc = getKeychainOrFail();
-			//this is the only keychain actually using the parameter
-			var usesOSAuth = (kc.getClass().getName().equals("org.cryptomator.macos.keychain.TouchIdKeychainAccess"));
-			kc.storePassphrase(key, displayName, passphrase, usesOSAuth);
+			getKeychainOrFail().storePassphrase(key, displayName, passphrase);
 		} finally {
 			lock.writeLock().unlock();
 		}

+ 3 - 22
src/main/java/org/cryptomator/ui/preferences/GeneralPreferencesController.java

@@ -85,7 +85,7 @@ public class GeneralPreferencesController implements FxController {
 		var keychainSettingsConverter = new ServiceToSettingsConverter<>(keychainAccessProviders);
 		keychainBackendChoiceBox.getItems().addAll(keychainAccessProviders);
 		keychainBackendChoiceBox.setValue(keychainSettingsConverter.fromString(settings.keychainProvider.get()));
-		keychainBackendChoiceBox.setConverter(new KeychainProviderDisplayNameConverter());
+		keychainBackendChoiceBox.setConverter(new NamedServiceConverter<>());
 		Bindings.bindBidirectional(settings.keychainProvider, keychainBackendChoiceBox.valueProperty(), keychainSettingsConverter);
 		useKeychainCheckbox.selectedProperty().bindBidirectional(settings.useKeychain);
 		keychainBackendChoiceBox.disableProperty().bind(useKeychainCheckbox.selectedProperty().not());
@@ -106,13 +106,13 @@ public class GeneralPreferencesController implements FxController {
 			var idsAndNames = settings.directories.stream().collect(Collectors.toMap(vs -> vs.id, vs -> vs.displayName.getValue()));
 			if (!idsAndNames.isEmpty()) {
 				if (LOG.isDebugEnabled()) {
-					LOG.debug("Migrating keychain entries {} from {} to {}", idsAndNames.keySet(), oldProvider.displayName(), newProvider.displayName());
+					LOG.debug("Migrating keychain entries {} from {} to {}", idsAndNames.keySet(), oldProvider.getName(), newProvider.getName());
 				}
 				keychainMigrations = keychainMigrations.thenRunAsync(() -> {
 					try {
 						KeychainManager.migrate(oldProvider, newProvider, idsAndNames);
 					} catch (KeychainAccessException e) {
-						LOG.warn("Failed to migrate all entries from {} to {}", oldProvider.displayName(), newProvider.displayName(), e);
+						LOG.warn("Failed to migrate all entries from {} to {}", oldProvider.getName(), newProvider.getName(), e);
 					}
 				}, backgroundExecutor);
 			}
@@ -151,25 +151,6 @@ public class GeneralPreferencesController implements FxController {
 	}
 
 	/* Helper classes */
-
-	private static class KeychainProviderDisplayNameConverter extends StringConverter<KeychainAccessProvider> {
-
-		@Override
-		public String toString(KeychainAccessProvider provider) {
-			if (provider == null) {
-				return null;
-			} else {
-				return provider.displayName();
-			}
-		}
-
-		@Override
-		public KeychainAccessProvider fromString(String string) {
-			throw new UnsupportedOperationException();
-		}
-
-	}
-
 	private static class NamedServiceConverter<T extends NamedServiceProvider> extends StringConverter<T> {
 
 		@Override

+ 1 - 6
src/test/java/org/cryptomator/common/keychain/MapKeychainAccess.java

@@ -16,12 +16,7 @@ class MapKeychainAccess implements KeychainAccessProvider {
 	private final Map<String, char[]> map = new HashMap<>();
 
 	@Override
-	public String displayName() {
-		return getClass().getName();
-	}
-
-	@Override
-	public void storePassphrase(String key, String displayName,CharSequence passphrase, boolean ignored) {
+	public void storePassphrase(String key, String displayName,CharSequence passphrase) {
 		char[] pw = new char[passphrase.length()];
 		for (int i = 0; i < passphrase.length(); i++) {
 			pw[i] = passphrase.charAt(i);