From ae957c2588dcb80b083bf0164a3fbf6a177e9089 Mon Sep 17 00:00:00 2001 From: Ralph Plawetzki Date: Mon, 14 Sep 2020 19:53:21 +0200 Subject: [PATCH 1/5] Print error message instead of stacktrace Fixes #1345 --- .../keychain/LinuxKDEWalletKeychainAccessImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main/keychain/src/main/java/org/cryptomator/keychain/LinuxKDEWalletKeychainAccessImpl.java b/main/keychain/src/main/java/org/cryptomator/keychain/LinuxKDEWalletKeychainAccessImpl.java index 120bef435..13f224c99 100644 --- a/main/keychain/src/main/java/org/cryptomator/keychain/LinuxKDEWalletKeychainAccessImpl.java +++ b/main/keychain/src/main/java/org/cryptomator/keychain/LinuxKDEWalletKeychainAccessImpl.java @@ -22,7 +22,7 @@ public class LinuxKDEWalletKeychainAccessImpl implements KeychainAccessStrategy try { connection = DBusConnection.getConnection(DBusConnection.DBusBusType.SESSION); } catch (DBusException e) { - e.printStackTrace(); + log.error(e.toString(), e.getCause()); } } @@ -32,7 +32,7 @@ public class LinuxKDEWalletKeychainAccessImpl implements KeychainAccessStrategy wallet = new KDEWallet(connection); return wallet.isEnabled(); } catch (Exception e) { - e.printStackTrace(); + log.error(e.toString(), e.getCause()); return false; } } From c5a3b295549f55c7f703b3840699707f573548aa Mon Sep 17 00:00:00 2001 From: Ralph Plawetzki Date: Wed, 16 Sep 2020 18:56:54 +0200 Subject: [PATCH 2/5] Make logger static --- .../LinuxKDEWalletKeychainAccessImpl.java | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/main/keychain/src/main/java/org/cryptomator/keychain/LinuxKDEWalletKeychainAccessImpl.java b/main/keychain/src/main/java/org/cryptomator/keychain/LinuxKDEWalletKeychainAccessImpl.java index 13f224c99..26d85b6d4 100644 --- a/main/keychain/src/main/java/org/cryptomator/keychain/LinuxKDEWalletKeychainAccessImpl.java +++ b/main/keychain/src/main/java/org/cryptomator/keychain/LinuxKDEWalletKeychainAccessImpl.java @@ -10,7 +10,7 @@ import org.slf4j.LoggerFactory; public class LinuxKDEWalletKeychainAccessImpl implements KeychainAccessStrategy { - private final Logger log = LoggerFactory.getLogger(LinuxKDEWalletKeychainAccessImpl.class); + private static final Logger LOG = LoggerFactory.getLogger(LinuxKDEWalletKeychainAccessImpl.class); private final String FOLDER_NAME = "Cryptomator"; private final String APP_NAME = "Cryptomator"; @@ -22,7 +22,7 @@ public class LinuxKDEWalletKeychainAccessImpl implements KeychainAccessStrategy try { connection = DBusConnection.getConnection(DBusConnection.DBusBusType.SESSION); } catch (DBusException e) { - log.error(e.toString(), e.getCause()); + LOG.error(e.toString(), e.getCause()); } } @@ -32,7 +32,7 @@ public class LinuxKDEWalletKeychainAccessImpl implements KeychainAccessStrategy wallet = new KDEWallet(connection); return wallet.isEnabled(); } catch (Exception e) { - log.error(e.toString(), e.getCause()); + LOG.error(e.toString(), e.getCause()); return false; } } @@ -44,12 +44,12 @@ public class LinuxKDEWalletKeychainAccessImpl implements KeychainAccessStrategy !(wallet.hasEntry(handle, FOLDER_NAME, key, APP_NAME) && wallet.entryType(handle, FOLDER_NAME, key, APP_NAME) == 1) && wallet.writePassword(handle, FOLDER_NAME, key, passphrase.toString(), APP_NAME) == 0) { - log.debug("Passphrase successfully stored."); + LOG.debug("Passphrase successfully stored."); } else { - log.debug("Passphrase was not stored."); + LOG.debug("Passphrase was not stored."); } } catch (Exception e) { - log.error(e.toString(), e.getCause()); + LOG.error(e.toString(), e.getCause()); throw new KeychainAccessException(e); } } @@ -60,9 +60,9 @@ public class LinuxKDEWalletKeychainAccessImpl implements KeychainAccessStrategy try { if (walletIsOpen()) { password = wallet.readPassword(handle, FOLDER_NAME, key, APP_NAME); - log.debug("loadPassphrase: wallet is open."); + LOG.debug("loadPassphrase: wallet is open."); } else { - log.debug("loadPassphrase: wallet is closed."); + LOG.debug("loadPassphrase: wallet is closed."); } return (password.equals("")) ? null : password.toCharArray(); } catch (Exception e) { @@ -77,9 +77,9 @@ public class LinuxKDEWalletKeychainAccessImpl implements KeychainAccessStrategy && wallet.hasEntry(handle, FOLDER_NAME, key, APP_NAME) && wallet.entryType(handle, FOLDER_NAME, key, APP_NAME) == 1 && wallet.removeEntry(handle, FOLDER_NAME, key, APP_NAME) == 0) { - log.debug("Passphrase successfully deleted."); + LOG.debug("Passphrase successfully deleted."); } else { - log.debug("Passphrase was not deleted."); + LOG.debug("Passphrase was not deleted."); } } catch (Exception e) { throw new KeychainAccessException(e); @@ -93,9 +93,9 @@ public class LinuxKDEWalletKeychainAccessImpl implements KeychainAccessStrategy && wallet.hasEntry(handle, FOLDER_NAME, key, APP_NAME) && wallet.entryType(handle, FOLDER_NAME, key, APP_NAME) == 1 && wallet.writePassword(handle, FOLDER_NAME, key, passphrase.toString(), APP_NAME) == 0) { - log.debug("Passphrase successfully changed."); + LOG.debug("Passphrase successfully changed."); } else { - log.debug("Passphrase could not be changed."); + LOG.debug("Passphrase could not be changed."); } } catch (Exception e) { throw new KeychainAccessException(e); @@ -112,7 +112,7 @@ public class LinuxKDEWalletKeychainAccessImpl implements KeychainAccessStrategy wallet.openAsync(Static.DEFAULT_WALLET, 0, APP_NAME, false); wallet.getSignalHandler().await(KWallet.walletAsyncOpened.class, Static.ObjectPaths.KWALLETD5, () -> null); handle = wallet.getSignalHandler().getLastHandledSignal(KWallet.walletAsyncOpened.class, Static.ObjectPaths.KWALLETD5).handle; - log.debug("Wallet successfully initialized."); + LOG.debug("Wallet successfully initialized."); return handle != -1; } catch (Exception e) { throw new KeychainAccessException(e); From 667617b4807c9cd93eea8b7ec88d795011610bfb Mon Sep 17 00:00:00 2001 From: Ralph Plawetzki Date: Wed, 7 Oct 2020 18:32:16 +0200 Subject: [PATCH 3/5] Update kdewallet to latest 1.1.1 --- main/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/pom.xml b/main/pom.xml index 8702b89d9..aa43cba31 100644 --- a/main/pom.xml +++ b/main/pom.xml @@ -34,7 +34,7 @@ 14 3.11 1.1.0 - 1.0.1 + 1.1.1 3.10.3 2.1.0 29.0-jre From cae86cd71fa3b1a6ed2db7541ae9bd786bba1764 Mon Sep 17 00:00:00 2001 From: Ralph Plawetzki Date: Wed, 7 Oct 2020 18:55:18 +0200 Subject: [PATCH 4/5] Get more information logged in case something goes wrong --- .../keychain/KeychainAccessStrategy.java | 2 +- .../keychain/LinuxKDEWalletKeychainAccessImpl.java | 13 +++++++++---- main/ui/src/main/resources/license/THIRD-PARTY.txt | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/main/keychain/src/main/java/org/cryptomator/keychain/KeychainAccessStrategy.java b/main/keychain/src/main/java/org/cryptomator/keychain/KeychainAccessStrategy.java index abd50287e..553ce4eab 100644 --- a/main/keychain/src/main/java/org/cryptomator/keychain/KeychainAccessStrategy.java +++ b/main/keychain/src/main/java/org/cryptomator/keychain/KeychainAccessStrategy.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.cryptomator.keychain; -interface KeychainAccessStrategy { +public interface KeychainAccessStrategy { /** * Associates a passphrase with a given key. diff --git a/main/keychain/src/main/java/org/cryptomator/keychain/LinuxKDEWalletKeychainAccessImpl.java b/main/keychain/src/main/java/org/cryptomator/keychain/LinuxKDEWalletKeychainAccessImpl.java index 26d85b6d4..8e97dc6d4 100644 --- a/main/keychain/src/main/java/org/cryptomator/keychain/LinuxKDEWalletKeychainAccessImpl.java +++ b/main/keychain/src/main/java/org/cryptomator/keychain/LinuxKDEWalletKeychainAccessImpl.java @@ -18,11 +18,12 @@ public class LinuxKDEWalletKeychainAccessImpl implements KeychainAccessStrategy private KDEWallet wallet; private int handle = -1; - public LinuxKDEWalletKeychainAccessImpl() { + public LinuxKDEWalletKeychainAccessImpl() throws KeychainAccessException { try { connection = DBusConnection.getConnection(DBusConnection.DBusBusType.SESSION); } catch (DBusException e) { - LOG.error(e.toString(), e.getCause()); + LOG.error("Connecting to D-Bus failed:", e); + throw new KeychainAccessException(e); } } @@ -32,7 +33,7 @@ public class LinuxKDEWalletKeychainAccessImpl implements KeychainAccessStrategy wallet = new KDEWallet(connection); return wallet.isEnabled(); } catch (Exception e) { - LOG.error(e.toString(), e.getCause()); + LOG.error("A KDEWallet could not be created:", e); return false; } } @@ -49,7 +50,7 @@ public class LinuxKDEWalletKeychainAccessImpl implements KeychainAccessStrategy LOG.debug("Passphrase was not stored."); } } catch (Exception e) { - LOG.error(e.toString(), e.getCause()); + LOG.error("Storing the passphrase failed:", e); throw new KeychainAccessException(e); } } @@ -66,6 +67,7 @@ public class LinuxKDEWalletKeychainAccessImpl implements KeychainAccessStrategy } return (password.equals("")) ? null : password.toCharArray(); } catch (Exception e) { + LOG.error("Loading the passphrase failed:", e); throw new KeychainAccessException(e); } } @@ -82,6 +84,7 @@ public class LinuxKDEWalletKeychainAccessImpl implements KeychainAccessStrategy LOG.debug("Passphrase was not deleted."); } } catch (Exception e) { + LOG.error("Deleting the passphrase failed:", e); throw new KeychainAccessException(e); } } @@ -98,6 +101,7 @@ public class LinuxKDEWalletKeychainAccessImpl implements KeychainAccessStrategy LOG.debug("Passphrase could not be changed."); } } catch (Exception e) { + LOG.error("Changing the passphrase failed:", e); throw new KeychainAccessException(e); } } @@ -115,6 +119,7 @@ public class LinuxKDEWalletKeychainAccessImpl implements KeychainAccessStrategy LOG.debug("Wallet successfully initialized."); return handle != -1; } catch (Exception e) { + LOG.error("Asynchronous opening the wallet failed:", e); throw new KeychainAccessException(e); } } diff --git a/main/ui/src/main/resources/license/THIRD-PARTY.txt b/main/ui/src/main/resources/license/THIRD-PARTY.txt index 6b1d42e05..3674e5e05 100644 --- a/main/ui/src/main/resources/license/THIRD-PARTY.txt +++ b/main/ui/src/main/resources/license/THIRD-PARTY.txt @@ -82,7 +82,7 @@ Cryptomator uses 53 third-party dependencies under the following licenses: - zxcvbn4j (com.nulab-inc:zxcvbn:1.3.0 - https://github.com/nulab/zxcvbn4j) - secret-service (de.swiesend:secret-service:1.1.0 - https://github.com/swiesend/secret-service) - Checker Qual (org.checkerframework:checker-qual:2.11.1 - https://checkerframework.org) - - kdewallet (org.purejava:kdewallet:1.0.1 - https://github.com/purejava/kdewallet) + - kdewallet (org.purejava:kdewallet:1.1.1 - https://github.com/purejava/kdewallet) - SLF4J API Module (org.slf4j:slf4j-api:1.7.30 - http://www.slf4j.org) The BSD 2-Clause License: - EasyBind (com.tobiasdiez:easybind:2.1.0 - https://github.com/tobiasdiez/EasyBind) From 92321a7569d3c04daeaec80b2d8d6ce9f64fce7d Mon Sep 17 00:00:00 2001 From: Ralph Plawetzki Date: Thu, 8 Oct 2020 12:57:50 +0200 Subject: [PATCH 5/5] Remove unneeded access modifier --- .../java/org/cryptomator/keychain/KeychainAccessStrategy.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/keychain/src/main/java/org/cryptomator/keychain/KeychainAccessStrategy.java b/main/keychain/src/main/java/org/cryptomator/keychain/KeychainAccessStrategy.java index 553ce4eab..abd50287e 100644 --- a/main/keychain/src/main/java/org/cryptomator/keychain/KeychainAccessStrategy.java +++ b/main/keychain/src/main/java/org/cryptomator/keychain/KeychainAccessStrategy.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.cryptomator.keychain; -public interface KeychainAccessStrategy { +interface KeychainAccessStrategy { /** * Associates a passphrase with a given key.