Use overloaded method storePassword instead of a new one

This commit is contained in:
Ralph Plawetzki
2024-08-14 10:52:39 +02:00
parent 175ed500a2
commit aa34ad52e6
4 changed files with 4 additions and 22 deletions

View File

@@ -49,9 +49,8 @@ public class KeychainManager implements KeychainAccessProvider {
setPassphraseStored(key, true);
}
@Override
public void storePassphraseForAuthenticatedUser(String key, String displayName, CharSequence passphrase) throws KeychainAccessException {
getKeychainOrFail().storePassphraseForAuthenticatedUser(key, displayName, passphrase);
public void storePassphrase(String key, String displayName, CharSequence passphrase, boolean requireOsAuthentication) throws KeychainAccessException {
getKeychainOrFail().storePassphrase(key, displayName, passphrase, requireOsAuthentication);
setPassphraseStored(key, true);
}

View File

@@ -114,11 +114,7 @@ public class MasterkeyFileLoadingStrategy implements KeyLoadingStrategy {
private void savePasswordToSystemkeychain(Passphrase passphrase) {
if (keychain.isSupported()) {
try {
if (vault.getVaultSettings().needAuthenticatedUser.get()) {
keychain.storePassphraseForAuthenticatedUser(vault.getId(), vault.getDisplayName(), passphrase);
} else {
keychain.storePassphrase(vault.getId(), vault.getDisplayName(), passphrase);
}
keychain.storePassphrase(vault.getId(), vault.getDisplayName(), passphrase, vault.getVaultSettings().needAuthenticatedUser.get());
} catch (KeychainAccessException e) {
LOG.error("Failed to store passphrase in system keychain.", e);
}

View File

@@ -54,10 +54,6 @@ public class MasterkeyOptionsController implements FxController {
public void initialize() {
needAuthenticatedUserCheckbox.selectedProperty().bindBidirectional(vault.getVaultSettings().needAuthenticatedUser);
needAuthenticatedUserCheckbox.selectedProperty().addListener(this::needAuthenticatedUserCheckboxToggled);
// ToDo Remove or adjust, as soon as there are implementations for integrations-api KeychainAccessProvider:storePassphraseForAuthenticatedUser for other OSes
if (!SystemUtils.IS_OS_MAC) {
needAuthenticatedUserCheckbox.setVisible(false);
}
}
/**
@@ -74,11 +70,7 @@ public class MasterkeyOptionsController implements FxController {
if (keychain.isPassphraseStored(vaultId)) {
var passphrase = keychain.loadPassphrase(vaultId);
keychain.deletePassphrase(vaultId);
if (isSet) {
keychain.storePassphraseForAuthenticatedUser(vaultId, vault.getId(), new Passphrase(passphrase));
} else {
keychain.storePassphrase(vaultId, vault.getId(), new Passphrase(passphrase));
}
keychain.storePassphrase(vaultId, vault.getId(), new Passphrase(passphrase), isSet);
}
} catch (KeychainAccessException e) {
LOG.error("Failed to migrate item in system keychain due to access control change.", e);

View File

@@ -29,11 +29,6 @@ class MapKeychainAccess implements KeychainAccessProvider {
map.put(key, pw);
}
@Override
public void storePassphraseForAuthenticatedUser(String key, String displayName,CharSequence passphrase) {
storePassphrase(key, displayName, passphrase);
}
@Override
public char[] loadPassphrase(String key) {
return map.get(key);