Repository: karaf
Updated Branches:
  refs/heads/master 6b160e852 -> d00f282b6


Cache keypair


Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/45731559
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/45731559
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/45731559

Branch: refs/heads/master
Commit: 45731559f516a3ca759ab5f322c80274f8daf2eb
Parents: 6b160e8
Author: Christian Schneider <[email protected]>
Authored: Fri Aug 4 17:42:55 2017 +0200
Committer: Christian Schneider <[email protected]>
Committed: Fri Aug 4 17:42:55 2017 +0200

----------------------------------------------------------------------
 .../karaf/shell/ssh/keygenerator/OpenSSHKeyPairProvider.java    | 5 +++++
 1 file changed, 5 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/45731559/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/keygenerator/OpenSSHKeyPairProvider.java
----------------------------------------------------------------------
diff --git 
a/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/keygenerator/OpenSSHKeyPairProvider.java
 
b/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/keygenerator/OpenSSHKeyPairProvider.java
index 43728a3..df3e025 100644
--- 
a/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/keygenerator/OpenSSHKeyPairProvider.java
+++ 
b/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/keygenerator/OpenSSHKeyPairProvider.java
@@ -32,6 +32,7 @@ import 
org.apache.sshd.common.keyprovider.AbstractKeyPairProvider;
 public class OpenSSHKeyPairProvider extends AbstractKeyPairProvider {
     private File keyFile;
     private String password;
+    private KeyPair cachedKey;
 
     public OpenSSHKeyPairProvider(File keyFile) {
         this.keyFile = keyFile;
@@ -39,8 +40,12 @@ public class OpenSSHKeyPairProvider extends 
AbstractKeyPairProvider {
 
     @Override
     public Iterable<KeyPair> loadKeys() {
+        if (cachedKey != null) {
+            return singleton(cachedKey);
+        }
         try (FileInputStream is = new FileInputStream(keyFile)) {
             KeyPair kp = getKeyPair(is);
+            cachedKey = kp;
             return singleton(kp);
         } catch (Exception e) {
             throw new RuntimeException(e);

Reply via email to