Repository: camel
Updated Branches:
  refs/heads/master 23d39d469 -> 325d28b46


CAMEL-11611: polish


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

Branch: refs/heads/master
Commit: 325d28b46b83eac22ba5b1231e5c870a7ff3948e
Parents: 23d39d4
Author: Babak Vahdat <bvah...@apache.org>
Authored: Tue Aug 22 17:28:21 2017 +0200
Committer: Babak Vahdat <bvah...@apache.org>
Committed: Tue Aug 22 17:28:21 2017 +0200

----------------------------------------------------------------------
 .../ssh/ResourceBasedSSHKeyVerifier.java        | 38 ++++++--------------
 .../component/ssh/SshComponentConsumerTest.java |  2 +-
 .../ssh/SshComponentKnownHostTest.java          |  6 ++--
 3 files changed, 14 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/325d28b4/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/ResourceBasedSSHKeyVerifier.java
----------------------------------------------------------------------
diff --git 
a/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/ResourceBasedSSHKeyVerifier.java
 
b/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/ResourceBasedSSHKeyVerifier.java
index 508e16e..5924b4b 100644
--- 
a/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/ResourceBasedSSHKeyVerifier.java
+++ 
b/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/ResourceBasedSSHKeyVerifier.java
@@ -16,14 +16,11 @@
  */
 package org.apache.camel.component.ssh;
 
-import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.InputStreamReader;
 import java.math.BigInteger;
 import java.net.InetSocketAddress;
 import java.net.SocketAddress;
-import java.nio.charset.Charset;
 import java.security.NoSuchAlgorithmException;
 import java.security.PublicKey;
 import java.security.spec.InvalidKeySpecException;
@@ -32,6 +29,7 @@ import java.util.LinkedList;
 import java.util.List;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.util.IOHelper;
 import org.apache.camel.util.ResourceHelper;
 import org.apache.sshd.client.keyverifier.ServerKeyVerifier;
 import org.apache.sshd.client.session.ClientSession;
@@ -51,9 +49,7 @@ public class ResourceBasedSSHKeyVerifier implements 
ServerKeyVerifier {
     private String knownHostsResource;
 
     public ResourceBasedSSHKeyVerifier(CamelContext camelContext, String 
knownHostsResource) {
-        this.camelContext = camelContext;
-        this.knownHostsResource = knownHostsResource;
-        this.failOnUnknownHost = false;
+        this(camelContext, knownHostsResource, false);
     }
     
     public ResourceBasedSSHKeyVerifier(CamelContext camelContext, String 
knownHostsResource,
@@ -81,13 +77,7 @@ public class ResourceBasedSSHKeyVerifier implements 
ServerKeyVerifier {
         } catch (IOException ioException) {
             log.debug(String.format("Could not find known_hosts file %s", 
knownHostsResource), ioException);
         } finally {
-            if (knownHostsInputStream != null) {
-                try {
-                    knownHostsInputStream.close();
-                } catch (IOException e) {
-                    // Ignore
-                }
-            }
+            IOHelper.close(knownHostsInputStream);
         }
         if (failOnUnknownHost) {
             log.warn("Could not find matching key for client session, 
connection will fail due to configuration");
@@ -99,11 +89,14 @@ public class ResourceBasedSSHKeyVerifier implements 
ServerKeyVerifier {
         }
     }
 
-    private PublicKey findKeyForServerToken(InputStream knownHostsInputStream, 
List<String> possibleTokens)
-            throws IOException {
-        List<String> knowHostsLines = 
readInputStreamToStringList(knownHostsInputStream);
+    private PublicKey findKeyForServerToken(InputStream knownHostsInputStream, 
List<String> possibleTokens) {
+        String knowHostsLines = 
camelContext.getTypeConverter().convertTo(String.class, knownHostsInputStream);
+        if (knowHostsLines == null) {
+            log.warn("Could not read from the known_hosts file input stream");
+            return null;
+        }
 
-        for (String s : knowHostsLines) {
+        for (String s : knowHostsLines.split("\n")) {
             String[] parts = s.split(" ");
             if (parts.length != 3) {
                 log.warn("Found malformed entry in known_hosts file");
@@ -124,17 +117,6 @@ public class ResourceBasedSSHKeyVerifier implements 
ServerKeyVerifier {
         return null;
     }
 
-    private List<String> readInputStreamToStringList(InputStream 
knownHostsInputStream) throws IOException {
-        List<String> returnList = new LinkedList<>();
-        String line;
-        BufferedReader bufferedReader = new BufferedReader(
-                new InputStreamReader(knownHostsInputStream, 
Charset.forName("UTF-8")));
-        while ((line = bufferedReader.readLine()) != null) {
-            returnList.add(line);
-        }
-        return returnList;
-    }
-
     private List<String> getKnownHostsFileTokensForSocketAddress(SocketAddress 
remoteAddress) {
         List<String> returnList = new LinkedList<>();
         if (remoteAddress instanceof InetSocketAddress) {

http://git-wip-us.apache.org/repos/asf/camel/blob/325d28b4/components/camel-ssh/src/test/java/org/apache/camel/component/ssh/SshComponentConsumerTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-ssh/src/test/java/org/apache/camel/component/ssh/SshComponentConsumerTest.java
 
b/components/camel-ssh/src/test/java/org/apache/camel/component/ssh/SshComponentConsumerTest.java
index f1e01d4..2b843c9 100644
--- 
a/components/camel-ssh/src/test/java/org/apache/camel/component/ssh/SshComponentConsumerTest.java
+++ 
b/components/camel-ssh/src/test/java/org/apache/camel/component/ssh/SshComponentConsumerTest.java
@@ -37,7 +37,7 @@ public class SshComponentConsumerTest extends 
SshComponentTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() {
-                from("ssh://smx:smx@localhost:" + port + 
"?useFixedDelay=true&delay=40000&pollCommand=test%0D")
+                from("ssh://smx:smx@localhost:" + port + 
"?useFixedDelay=true&delay=40000&pollCommand=test%0A")
                         .to("mock:result");
             }
         };

http://git-wip-us.apache.org/repos/asf/camel/blob/325d28b4/components/camel-ssh/src/test/java/org/apache/camel/component/ssh/SshComponentKnownHostTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-ssh/src/test/java/org/apache/camel/component/ssh/SshComponentKnownHostTest.java
 
b/components/camel-ssh/src/test/java/org/apache/camel/component/ssh/SshComponentKnownHostTest.java
index 06a4242..0dd0e7c 100644
--- 
a/components/camel-ssh/src/test/java/org/apache/camel/component/ssh/SshComponentKnownHostTest.java
+++ 
b/components/camel-ssh/src/test/java/org/apache/camel/component/ssh/SshComponentKnownHostTest.java
@@ -98,13 +98,13 @@ public class SshComponentKnownHostTest extends 
SshComponentTestSupport {
             public void configure() {
                 onException(Exception.class).handled(true).to("mock:error");
 
-                from("ssh://smx:smx@localhost:" + port + 
"?useFixedDelay=true&delay=40000&pollCommand=test%0D&knownHostsResource=classpath:known_hosts_valid&failOnUnknownHost=true")
+                from("ssh://smx:smx@localhost:" + port + 
"?useFixedDelay=true&delay=40000&pollCommand=test%0A&knownHostsResource=classpath:known_hosts_valid&failOnUnknownHost=true")
                     .to("mock:result");
                 
-                from("ssh://smx:smx@localhost:" + port + 
"?useFixedDelay=true&delay=40000&pollCommand=test%0D&knownHostsResource=classpath:known_hosts_invalid&failOnUnknownHost=true")
+                from("ssh://smx:smx@localhost:" + port + 
"?useFixedDelay=true&delay=40000&pollCommand=test%0A&knownHostsResource=classpath:known_hosts_invalid&failOnUnknownHost=true")
                     .to("mock:resultInvalid");
 
-                from("ssh://smx:smx@localhost:" + port + 
"?useFixedDelay=true&delay=40000&pollCommand=test%0D&knownHostsResource=classpath:known_hosts_invalid")
+                from("ssh://smx:smx@localhost:" + port + 
"?useFixedDelay=true&delay=40000&pollCommand=test%0A&knownHostsResource=classpath:known_hosts_invalid")
                     .to("mock:resultInvalidWarnOnly");
 
                 from("direct:ssh")

Reply via email to