You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wagon-commits@maven.apache.org by br...@apache.org on 2005/06/10 11:26:43 UTC

svn commit: r189930 - /maven/wagon/trunk/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/sshext/ScpExternalWagon.java

Author: brett
Date: Fri Jun 10 02:26:42 2005
New Revision: 189930

URL: http://svn.apache.org/viewcvs?rev=189930&view=rev
Log:
PR: MNG-465
o correctly pass private key and port to external app
o don't require a private key

Modified:
    maven/wagon/trunk/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/sshext/ScpExternalWagon.java

Modified: maven/wagon/trunk/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/sshext/ScpExternalWagon.java
URL: http://svn.apache.org/viewcvs/maven/wagon/trunk/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/sshext/ScpExternalWagon.java?rev=189930&r1=189929&r2=189930&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/sshext/ScpExternalWagon.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/sshext/ScpExternalWagon.java Fri Jun 10 02:26:42 2005
@@ -22,7 +22,6 @@
 import org.apache.maven.wagon.TransferFailedException;
 import org.apache.maven.wagon.WagonConstants;
 import org.apache.maven.wagon.authentication.AuthenticationException;
-import org.apache.maven.wagon.authentication.AuthenticationInfo;
 import org.apache.maven.wagon.authorization.AuthorizationException;
 import org.apache.maven.wagon.events.TransferEvent;
 import org.apache.maven.wagon.repository.RepositoryPermissions;
@@ -33,9 +32,6 @@
 import org.codehaus.plexus.util.cli.Commandline;
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
 
 /**
  * SCP deployer using "external" scp program.  To allow for
@@ -49,8 +45,6 @@
     extends AbstractWagon
     implements SshCommandExecutor
 {
-    public static int DEFAULT_SSH_PORT = 22;
-
     /**
      * The external SCP command to use - default is <code>scp</code>.
      *
@@ -80,6 +74,10 @@
      */
     private String sshArgs = null;
 
+    private int port;
+
+    private File privateKey;
+
     // ----------------------------------------------------------------------
     //
     // ----------------------------------------------------------------------
@@ -92,12 +90,7 @@
             throw new IllegalArgumentException( "Authentication Credentials cannot be null for SSH protocol" );
         }
 
-        int port = getRepository().getPort();
-
-        if ( port == WagonConstants.UNKNOWN_PORT )
-        {
-            port = DEFAULT_SSH_PORT;
-        }
+        port = getRepository().getPort();
 
         // If user don't define a password, he want to use a private key
         if ( authenticationInfo.getPassword() == null )
@@ -122,14 +115,7 @@
 
                 fireSessionDebug( "Using private key: " + privateKey );
 
-                // TODO: do something with it
-            }
-            else
-            {
-                String msg = "Private key was not found. You must define a private key or a password for repo: " +
-                    getRepository().getName();
-
-                throw new AuthenticationException( msg );
+                this.privateKey = privateKey;
             }
         }
         // nothing to connect to
@@ -174,6 +160,24 @@
 
         cl.setExecutable( sshExecutable );
 
+        if ( privateKey != null )
+        {
+            cl.createArgument().setValue( "-i" );
+            cl.createArgument().setFile( privateKey );
+        }
+
+        if ( port != WagonConstants.UNKNOWN_PORT )
+        {
+            if ( sshExecutable.indexOf( "plink" ) >= 0 )
+            {
+                cl.createArgument().setLine( "-P " + port );
+            }
+            else
+            {
+                cl.createArgument().setLine( "-p " + port );
+            }
+        }
+
         if ( sshArgs != null )
         {
             cl.createArgument().setLine( sshArgs );
@@ -203,6 +207,17 @@
         cl.setWorkingDirectory( localFile.getParentFile().getAbsolutePath() );
 
         cl.setExecutable( scpExecutable );
+
+        if ( privateKey != null )
+        {
+            cl.createArgument().setValue( "-i" );
+            cl.createArgument().setFile( privateKey );
+        }
+
+        if ( port != WagonConstants.UNKNOWN_PORT )
+        {            
+            cl.createArgument().setLine( "-P " + port );
+        }
 
         if ( scpArgs != null )
         {



---------------------------------------------------------------------
To unsubscribe, e-mail: wagon-cvs-unsubscribe@maven.apache.org
For additional commands, e-mail: wagon-cvs-help@maven.apache.org