diff --git a/osx/src/main/java/ch/cyberduck/ui/cocoa/controller/BookmarkController.java b/osx/src/main/java/ch/cyberduck/ui/cocoa/controller/BookmarkController.java index 634111669cb..114dc2b774f 100644 --- a/osx/src/main/java/ch/cyberduck/ui/cocoa/controller/BookmarkController.java +++ b/osx/src/main/java/ch/cyberduck/ui/cocoa/controller/BookmarkController.java @@ -41,7 +41,6 @@ import ch.cyberduck.core.diagnostics.ReachabilityDiagnosticsFactory; import ch.cyberduck.core.diagnostics.ReachabilityFactory; import ch.cyberduck.core.exception.HostParserException; -import ch.cyberduck.core.exception.LocalAccessDeniedException; import ch.cyberduck.core.local.BrowserLauncherFactory; import ch.cyberduck.core.preferences.Preferences; import ch.cyberduck.core.preferences.PreferencesFactory; @@ -454,18 +453,10 @@ public void change(final Host bookmark) { if(StringUtils.isBlank(bookmark.getCredentials().getUsername())) { return; } - try { - final String password = keychain.getPassword(bookmark.getProtocol().getScheme(), - bookmark.getPort(), - bookmark.getHostname(), - bookmark.getCredentials().getUsername()); - if(StringUtils.isNotBlank(password)) { - // Make sure password fetched from keychain and set in field is set in model - bookmark.getCredentials().setPassword(password); - } - } - catch(LocalAccessDeniedException e) { - // Ignore + final String password = keychain.findLoginPassword(bookmark); + if(StringUtils.isNotBlank(password)) { + // Make sure password fetched from keychain and set in field is set in model + bookmark.getCredentials().setPassword(password); } } updateField(passwordField, bookmark.getCredentials().getPassword()); diff --git a/windows/src/main/csharp/ch/cyberduck/ui/controller/BookmarkController.cs b/windows/src/main/csharp/ch/cyberduck/ui/controller/BookmarkController.cs index 3d30f093e34..c2eee9695d9 100644 --- a/windows/src/main/csharp/ch/cyberduck/ui/controller/BookmarkController.cs +++ b/windows/src/main/csharp/ch/cyberduck/ui/controller/BookmarkController.cs @@ -107,6 +107,7 @@ protected BookmarkController(Host host, LoginInputValidator validator, LoginOpti InitTimezones(); InitTransferModes(); Update(); + ReadPasswordFromKeychain(); View.ChangedProtocolEvent += View_ChangedProtocolEvent; View.ChangedProtocolEvent += ReadPasswordFromKeychain; @@ -160,10 +161,7 @@ public void ReadPasswordFromKeychain() { return; } - string password = _keychain.getPassword(_host.getProtocol().getScheme(), - _host.getPort(), - _host.getHostname(), - _host.getCredentials().getUsername()); + string password = _keychain.findLoginPassword(_host); if (!string.IsNullOrWhiteSpace(password)) { View.Password = password;