Updated Branches: refs/heads/master 6b3746366 -> e476306f1
[WAGON-403] SSH agent support for wagon-ssh Submitted by Charles Duffy Project: http://git-wip-us.apache.org/repos/asf/maven-wagon/repo Commit: http://git-wip-us.apache.org/repos/asf/maven-wagon/commit/0544394e Tree: http://git-wip-us.apache.org/repos/asf/maven-wagon/tree/0544394e Diff: http://git-wip-us.apache.org/repos/asf/maven-wagon/diff/0544394e Branch: refs/heads/master Commit: 0544394e44e94b6649e2975f6a5fb8d31afd655d Parents: 6b37463 Author: Olivier Lamy <[email protected]> Authored: Fri Oct 25 14:34:15 2013 +1100 Committer: Olivier Lamy <[email protected]> Committed: Fri Oct 25 14:34:15 2013 +1100 ---------------------------------------------------------------------- wagon-providers/wagon-ssh/pom.xml | 12 +++++++++++- .../wagon/providers/ssh/jsch/AbstractJschWagon.java | 15 +++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/0544394e/wagon-providers/wagon-ssh/pom.xml ---------------------------------------------------------------------- diff --git a/wagon-providers/wagon-ssh/pom.xml b/wagon-providers/wagon-ssh/pom.xml index 525fea5..172b16e 100644 --- a/wagon-providers/wagon-ssh/pom.xml +++ b/wagon-providers/wagon-ssh/pom.xml @@ -38,7 +38,17 @@ under the License. <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> - <version>0.1.44-1</version> + <version>0.1.50</version> + </dependency> + <dependency> + <groupId>com.jcraft</groupId> + <artifactId>jsch.agentproxy.connector-factory</artifactId> + <version>0.0.6</version> + </dependency> + <dependency> + <groupId>com.jcraft</groupId> + <artifactId>jsch.agentproxy.jsch</artifactId> + <version>0.0.6</version> </dependency> <dependency> <groupId>org.codehaus.plexus</groupId> http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/0544394e/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 3dfd604..01d8dd3 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 @@ -55,9 +55,14 @@ 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; +import com.jcraft.jsch.IdentityRepository; import com.jcraft.jsch.JSch; import com.jcraft.jsch.JSchException; import com.jcraft.jsch.Proxy; @@ -125,6 +130,16 @@ public abstract class AbstractJschWagon throw new AuthenticationException( e.getMessage() ); } + try { + Connector connector = ConnectorFactory.getDefault().createConnector(); + if ( connector != null ) { + IdentityRepository repo = new RemoteIdentityRepository( connector ); + sch.setIdentityRepository( repo ); + } + } catch ( AgentProxyException e ) { + fireSessionDebug( "Unable to connect to agent: " + e.toString() ); + } + if ( privateKey != null && privateKey.exists() ) { fireSessionDebug( "Using private key: " + privateKey );
