You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by jk...@apache.org on 2007/10/01 22:07:17 UTC

svn commit: r581055 - /ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/ssh/Scp.java

Author: jkf
Date: Mon Oct  1 13:07:17 2007
New Revision: 581055

URL: http://svn.apache.org/viewvc?rev=581055&view=rev
Log:
pr 43521, @ in filename not allowed anymore since @ allowed in password.

Modified:
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/ssh/Scp.java

Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/ssh/Scp.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/ssh/Scp.java?rev=581055&r1=581054&r2=581055&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/ssh/Scp.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/ssh/Scp.java Mon Oct  1 13:07:17 2007
@@ -310,10 +310,21 @@
     }
 
     private String parseUri(String uri) {
-        int indexOfAt = uri.lastIndexOf('@');
+
+        int indexOfAt = uri.indexOf('@');
         int indexOfColon = uri.indexOf(':');
+
         if (indexOfColon > -1 && indexOfColon < indexOfAt) {
             // user:password@host:/path notation
+            // everything upto the last @ before the last : is considered
+            // password. (so if the path contains an @ and a : it will not work)
+            int indexOfCurrentAt = indexOfAt;
+            int indexOfLastColon = uri.lastIndexOf(':');
+            while (indexOfCurrentAt > -1 && indexOfCurrentAt < indexOfLastColon)
+            {
+                indexOfAt = indexOfCurrentAt;
+                indexOfCurrentAt = uri.indexOf('@', indexOfCurrentAt + 1);
+            }
             setUsername(uri.substring(0, indexOfColon));
             setPassword(uri.substring(indexOfColon + 1, indexOfAt));
         } else {



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org


Re: svn commit: r581055 - /ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/ssh/Scp.java

Posted by Martijn Kruithof <jk...@apache.org>.
Please review, I was not able to test it today.

(the { in the while clause is on a separate line because it would break 
the 80 char limit)

Martijn

jkf@apache.org schreef:
> Author: jkf
> Date: Mon Oct  1 13:07:17 2007
> New Revision: 581055
>
> URL: http://svn.apache.org/viewvc?rev=581055&view=rev
> Log:
> pr 43521, @ in filename not allowed anymore since @ allowed in password.
>
> Modified:
>     ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/ssh/Scp.java
>
> Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/ssh/Scp.java
> URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/ssh/Scp.java?rev=581055&r1=581054&r2=581055&view=diff
> ==============================================================================
> --- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/ssh/Scp.java (original)
> +++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/ssh/Scp.java Mon Oct  1 13:07:17 2007
> @@ -310,10 +310,21 @@
>      }
>  
>      private String parseUri(String uri) {
> -        int indexOfAt = uri.lastIndexOf('@');
> +
> +        int indexOfAt = uri.indexOf('@');
>          int indexOfColon = uri.indexOf(':');
> +
>          if (indexOfColon > -1 && indexOfColon < indexOfAt) {
>              // user:password@host:/path notation
> +            // everything upto the last @ before the last : is considered
> +            // password. (so if the path contains an @ and a : it will not work)
> +            int indexOfCurrentAt = indexOfAt;
> +            int indexOfLastColon = uri.lastIndexOf(':');
> +            while (indexOfCurrentAt > -1 && indexOfCurrentAt < indexOfLastColon)
> +            {
> +                indexOfAt = indexOfCurrentAt;
> +                indexOfCurrentAt = uri.indexOf('@', indexOfCurrentAt + 1);
> +            }
>              setUsername(uri.substring(0, indexOfColon));
>              setPassword(uri.substring(indexOfColon + 1, indexOfAt));
>          } else {
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
> For additional commands, e-mail: dev-help@ant.apache.org
>
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org