Repository: maven-wagon Updated Branches: refs/heads/master fc34bf340 -> 8863ded43
Revert "[WAGON-426] Prevent fingerprints loss in known_hosts. Append in" This reverts commit fc34bf340e64f42ea969b29bb83aa73d0b10d910. Project: http://git-wip-us.apache.org/repos/asf/maven-wagon/repo Commit: http://git-wip-us.apache.org/repos/asf/maven-wagon/commit/8863ded4 Tree: http://git-wip-us.apache.org/repos/asf/maven-wagon/tree/8863ded4 Diff: http://git-wip-us.apache.org/repos/asf/maven-wagon/diff/8863ded4 Branch: refs/heads/master Commit: 8863ded43b40a030bef525f5a42b5adc3a0cb8de Parents: fc34bf3 Author: Dan Tran <dant...@apache.org> Authored: Sat Sep 19 20:19:43 2015 -0700 Committer: Dan Tran <dant...@apache.org> Committed: Sat Sep 19 20:19:43 2015 -0700 ---------------------------------------------------------------------- .../knownhost/AbstractKnownHostsProvider.java | 15 ++---- .../ssh/knownhost/FileKnownHostsProvider.java | 17 ++----- .../ssh/knownhost/KnownHostsProvider.java | 3 -- .../providers/ssh/jsch/AbstractJschWagon.java | 53 +++++++++++--------- .../ssh/jsch/EmbeddedScpWagonTest.java | 6 --- .../ssh/jsch/EmbeddedScpWagonWithKeyTest.java | 6 --- 6 files changed, 37 insertions(+), 63 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/8863ded4/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/AbstractKnownHostsProvider.java ---------------------------------------------------------------------- diff --git a/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/AbstractKnownHostsProvider.java b/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/AbstractKnownHostsProvider.java index 6b9117a..19c9f3f 100644 --- a/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/AbstractKnownHostsProvider.java +++ b/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/AbstractKnownHostsProvider.java @@ -34,7 +34,7 @@ public abstract class AbstractKnownHostsProvider { /** * Valid values are ask, yes, no. - * + * * @plexus.configuration default-value="ask" */ private String hostKeyChecking = "ask"; @@ -43,7 +43,7 @@ public abstract class AbstractKnownHostsProvider * the known hosts, in the openssh format */ protected String contents; - + protected Set<KnownHostEntry> knownHosts = new HashSet<KnownHostEntry>(); public void setHostKeyChecking( String hostKeyChecking ) @@ -60,16 +60,11 @@ public abstract class AbstractKnownHostsProvider { return contents; } - + public void storeKnownHosts( String contents ) throws IOException { } - - public void addKnownHost( KnownHostEntry knownHost ) - throws IOException - { - } - - + + } http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/8863ded4/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/FileKnownHostsProvider.java ---------------------------------------------------------------------- diff --git a/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/FileKnownHostsProvider.java b/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/FileKnownHostsProvider.java index 48ab250..399c1d2 100644 --- a/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/FileKnownHostsProvider.java +++ b/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/FileKnownHostsProvider.java @@ -33,7 +33,7 @@ import org.codehaus.plexus.util.FileUtils; * * @author Juan F. Codagnone * @since Sep 12, 2005 - * + * * @plexus.component role="org.apache.maven.wagon.providers.ssh.knownhost.KnownHostsProvider" * role-hint="file" * instantiation-strategy="per-lookup" @@ -72,7 +72,7 @@ public class FileKnownHostsProvider throws IOException { Set<KnownHostEntry> hosts = this.loadKnownHosts( contents ); - + if ( ! this.knownHosts.equals( hosts ) ) { file.getParentFile().mkdirs(); @@ -80,18 +80,7 @@ public class FileKnownHostsProvider this.knownHosts = hosts; } } - - public void addKnownHost( KnownHostEntry knownHostEntry ) - throws IOException - { - if ( !this.knownHosts.contains( knownHostEntry ) ) - { - String knownHost = knownHostEntry.getHostName() + " " + knownHostEntry.getKeyType() + " " - + knownHostEntry.getKeyValue() + "\n"; - FileUtils.fileAppend( file.getAbsolutePath(), knownHost ); - } - } - + public File getFile() { return file; http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/8863ded4/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/KnownHostsProvider.java ---------------------------------------------------------------------- diff --git a/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/KnownHostsProvider.java b/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/KnownHostsProvider.java index abaebef..85ce9aa 100644 --- a/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/KnownHostsProvider.java +++ b/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/KnownHostsProvider.java @@ -34,9 +34,6 @@ public interface KnownHostsProvider void storeKnownHosts( String contents ) throws IOException; - void addKnownHost( KnownHostEntry knownHost ) - throws IOException; - void setHostKeyChecking( String hostKeyChecking ); String getHostKeyChecking(); http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/8863ded4/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/AbstractJschWagon.java ---------------------------------------------------------------------- diff --git a/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/AbstractJschWagon.java b/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/AbstractJschWagon.java index 0b3ad5a..9ae7625 100644 --- a/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/AbstractJschWagon.java +++ b/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/AbstractJschWagon.java @@ -25,6 +25,8 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.io.StringWriter; import java.util.List; import java.util.Properties; @@ -46,7 +48,6 @@ import org.apache.maven.wagon.providers.ssh.interactive.InteractiveUserInfo; import org.apache.maven.wagon.providers.ssh.interactive.NullInteractiveUserInfo; import org.apache.maven.wagon.providers.ssh.jsch.interactive.UserInfoUIKeyboardInteractiveProxy; import org.apache.maven.wagon.providers.ssh.knownhost.KnownHostChangedException; -import org.apache.maven.wagon.providers.ssh.knownhost.KnownHostEntry; import org.apache.maven.wagon.providers.ssh.knownhost.KnownHostsProvider; import org.apache.maven.wagon.providers.ssh.knownhost.UnknownHostException; import org.apache.maven.wagon.proxy.ProxyInfo; @@ -54,6 +55,10 @@ import org.apache.maven.wagon.resource.Resource; import org.codehaus.plexus.util.IOUtil; import org.codehaus.plexus.util.StringInputStream; +import com.jcraft.jsch.agentproxy.AgentProxyException; +import com.jcraft.jsch.agentproxy.Connector; +import com.jcraft.jsch.agentproxy.ConnectorFactory; +import com.jcraft.jsch.agentproxy.RemoteIdentityRepository; import com.jcraft.jsch.ChannelExec; import com.jcraft.jsch.HostKey; import com.jcraft.jsch.HostKeyRepository; @@ -66,10 +71,6 @@ import com.jcraft.jsch.ProxySOCKS5; import com.jcraft.jsch.Session; import com.jcraft.jsch.UIKeyboardInteractive; import com.jcraft.jsch.UserInfo; -import com.jcraft.jsch.agentproxy.AgentProxyException; -import com.jcraft.jsch.agentproxy.Connector; -import com.jcraft.jsch.agentproxy.ConnectorFactory; -import com.jcraft.jsch.agentproxy.RemoteIdentityRepository; /** * AbstractJschWagon @@ -250,9 +251,24 @@ public abstract class AbstractJschWagon session.setUserInfo( ui ); + StringWriter stringWriter = new StringWriter(); try { session.connect(); + + if ( getKnownHostsProvider() != null ) + { + PrintWriter w = new PrintWriter( stringWriter ); + + HostKeyRepository hkr = sch.getHostKeyRepository(); + HostKey[] keys = hkr.getHostKey(); + + for ( int i = 0; keys != null && i < keys.length; i++ ) + { + HostKey key = keys[i]; + w.println( key.getHost() + " " + key.getType() + " " + key.getKey() ); + } + } } catch ( JSchException e ) { @@ -270,27 +286,16 @@ public abstract class AbstractJschWagon } } - if ( getKnownHostsProvider() != null ) + try { - HostKeyRepository hkr = sch.getHostKeyRepository(); - - HostKey[] hk = hkr.getHostKey( host, null ); - try - { - for ( HostKey hostKey : hk ) - { - KnownHostEntry knownHostEntry = new KnownHostEntry( hostKey.getHost(), hostKey.getType(), - hostKey.getKey() ); - getKnownHostsProvider().addKnownHost( knownHostEntry ); - } - } - catch ( IOException e ) - { - closeConnection(); + getKnownHostsProvider().storeKnownHosts( stringWriter.toString() ); + } + catch ( IOException e ) + { + closeConnection(); - throw new AuthenticationException( - "Connection aborted - failed to write to known_hosts. Reason: " + e.getMessage(), e ); - } + throw new AuthenticationException( + "Connection aborted - failed to write to known_hosts. Reason: " + e.getMessage(), e ); } } http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/8863ded4/wagon-providers/wagon-ssh/src/test/java/org/apache/maven/wagon/providers/ssh/jsch/EmbeddedScpWagonTest.java ---------------------------------------------------------------------- diff --git a/wagon-providers/wagon-ssh/src/test/java/org/apache/maven/wagon/providers/ssh/jsch/EmbeddedScpWagonTest.java b/wagon-providers/wagon-ssh/src/test/java/org/apache/maven/wagon/providers/ssh/jsch/EmbeddedScpWagonTest.java index 72dc1c0..7ff8fee 100644 --- a/wagon-providers/wagon-ssh/src/test/java/org/apache/maven/wagon/providers/ssh/jsch/EmbeddedScpWagonTest.java +++ b/wagon-providers/wagon-ssh/src/test/java/org/apache/maven/wagon/providers/ssh/jsch/EmbeddedScpWagonTest.java @@ -21,7 +21,6 @@ package org.apache.maven.wagon.providers.ssh.jsch; import org.apache.maven.wagon.Wagon; import org.apache.maven.wagon.providers.ssh.AbstractEmbeddedScpWagonTest; -import org.apache.maven.wagon.providers.ssh.knownhost.KnownHostEntry; import org.apache.maven.wagon.providers.ssh.knownhost.KnownHostsProvider; import java.io.IOException; @@ -48,11 +47,6 @@ public class EmbeddedScpWagonTest } - public void addKnownHost( KnownHostEntry knownHost ) - throws IOException - { - } - public void setHostKeyChecking( String hostKeyChecking ) { } http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/8863ded4/wagon-providers/wagon-ssh/src/test/java/org/apache/maven/wagon/providers/ssh/jsch/EmbeddedScpWagonWithKeyTest.java ---------------------------------------------------------------------- diff --git a/wagon-providers/wagon-ssh/src/test/java/org/apache/maven/wagon/providers/ssh/jsch/EmbeddedScpWagonWithKeyTest.java b/wagon-providers/wagon-ssh/src/test/java/org/apache/maven/wagon/providers/ssh/jsch/EmbeddedScpWagonWithKeyTest.java index 47d642d..c46609f 100644 --- a/wagon-providers/wagon-ssh/src/test/java/org/apache/maven/wagon/providers/ssh/jsch/EmbeddedScpWagonWithKeyTest.java +++ b/wagon-providers/wagon-ssh/src/test/java/org/apache/maven/wagon/providers/ssh/jsch/EmbeddedScpWagonWithKeyTest.java @@ -22,7 +22,6 @@ package org.apache.maven.wagon.providers.ssh.jsch; import org.apache.maven.wagon.Wagon; import org.apache.maven.wagon.authentication.AuthenticationInfo; import org.apache.maven.wagon.providers.ssh.AbstractEmbeddedScpWagonWithKeyTest; -import org.apache.maven.wagon.providers.ssh.knownhost.KnownHostEntry; import org.apache.maven.wagon.providers.ssh.knownhost.KnownHostsProvider; import java.io.File; @@ -51,11 +50,6 @@ public class EmbeddedScpWagonWithKeyTest } - public void addKnownHost( KnownHostEntry knownHost ) - throws IOException - { - } - public void setHostKeyChecking( String hostKeyChecking ) { }