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")