Author: ggregory
Date: Fri Jan 25 23:52:11 2019
New Revision: 1852191

URL: http://svn.apache.org/viewvc?rev=1852191&view=rev
Log:
[VFS-637] Zip files with legacy encoding and special characters let VFS crash. 
Backout changes from a different PR I included by mistake, which cause tests to 
fail.
      

Modified:
    
commons/proper/vfs/trunk/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/sftp/SftpClientFactory.java
    
commons/proper/vfs/trunk/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/test/SftpProviderTestCase.java

Modified: 
commons/proper/vfs/trunk/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/sftp/SftpClientFactory.java
URL: 
http://svn.apache.org/viewvc/commons/proper/vfs/trunk/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/sftp/SftpClientFactory.java?rev=1852191&r1=1852190&r2=1852191&view=diff
==============================================================================
--- 
commons/proper/vfs/trunk/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/sftp/SftpClientFactory.java
 (original)
+++ 
commons/proper/vfs/trunk/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/sftp/SftpClientFactory.java
 Fri Jan 25 23:52:11 2019
@@ -129,17 +129,14 @@ public final class SftpClientFactory {
             final String proxyHost = builder.getProxyHost(fileSystemOptions);
             if (proxyHost != null) {
                 final int proxyPort = builder.getProxyPort(fileSystemOptions);
-                final String proxyUser = 
builder.getProxyUser(fileSystemOptions);
-                final String proxyPassword = 
builder.getProxyPassword(fileSystemOptions);
                 final SftpFileSystemConfigBuilder.ProxyType proxyType = 
builder.getProxyType(fileSystemOptions);
                 Proxy proxy = null;
                 if (SftpFileSystemConfigBuilder.PROXY_HTTP.equals(proxyType)) {
-                    proxy = createProxyHTTP(proxyHost, proxyPort, proxyUser, 
proxyPassword);
+                    proxy = createProxyHTTP(proxyHost, proxyPort);
                 } else if 
(SftpFileSystemConfigBuilder.PROXY_SOCKS5.equals(proxyType)) {
-                    proxy = createProxySOCKS5(proxyHost, proxyPort, proxyUser, 
proxyPassword);
+                    proxy = createProxySOCKS5(proxyHost, proxyPort);
                 } else if 
(SftpFileSystemConfigBuilder.PROXY_STREAM.equals(proxyType)) {
-                    proxy = createStreamProxy(proxyHost, proxyPort, proxyUser,
-                            proxyPassword, fileSystemOptions, builder);
+                    proxy = createStreamProxy(proxyHost, proxyPort, 
fileSystemOptions, builder);
                 }
 
                 if (proxy != null) {
@@ -218,16 +215,16 @@ public final class SftpClientFactory {
     }
 
     private static Proxy createStreamProxy(final String proxyHost, final int 
proxyPort,
-                                           final String proxyUser, final 
String proxyPassword,
-                                           final FileSystemOptions 
fileSystemOptions,
-                                           final SftpFileSystemConfigBuilder 
builder) {
+            final FileSystemOptions fileSystemOptions, final 
SftpFileSystemConfigBuilder builder) {
         Proxy proxy;
         // Use a stream proxy, i.e. it will use a remote host as a proxy
         // and run a command (e.g. netcat) that forwards input/output
         // to the target host.
 
         // Here we get the settings for connecting to the proxy:
-        // options and a command
+        // user, password, options and a command
+        final String proxyUser = builder.getProxyUser(fileSystemOptions);
+        final String proxyPassword = 
builder.getProxyPassword(fileSystemOptions);
         final FileSystemOptions proxyOptions = 
builder.getProxyOptions(fileSystemOptions);
 
         final String proxyCommand = builder.getProxyCommand(fileSystemOptions);
@@ -237,22 +234,12 @@ public final class SftpClientFactory {
         return proxy;
     }
 
-    private static ProxySOCKS5 createProxySOCKS5(final String proxyHost, final 
int proxyPort,
-                                                 final String proxyUser, final 
String proxyPassword) {
-        ProxySOCKS5 proxySOCKS5 = proxyPort == 0 ? new ProxySOCKS5(proxyHost) 
: new ProxySOCKS5(proxyHost, proxyPort);
-        if(proxyUser != null && proxyPassword != null) {
-            proxySOCKS5.setUserPasswd(proxyUser, proxyPassword);
-        }
-        return proxySOCKS5;
+    private static ProxySOCKS5 createProxySOCKS5(final String proxyHost, final 
int proxyPort) {
+        return proxyPort == 0 ? new ProxySOCKS5(proxyHost) : new 
ProxySOCKS5(proxyHost, proxyPort);
     }
 
-    private static ProxyHTTP createProxyHTTP(final String proxyHost, final int 
proxyPort,
-                                             final String proxyUser, final 
String proxyPassword) {
-        ProxyHTTP proxyHTTP = proxyPort == 0 ? new ProxyHTTP(proxyHost) : new 
ProxyHTTP(proxyHost, proxyPort);
-        if(proxyUser != null && proxyPassword != null) {
-            proxyHTTP.setUserPasswd(proxyUser, proxyPassword);
-        }
-        return proxyHTTP;
+    private static ProxyHTTP createProxyHTTP(final String proxyHost, final int 
proxyPort) {
+        return proxyPort == 0 ? new ProxyHTTP(proxyHost) : new 
ProxyHTTP(proxyHost, proxyPort);
     }
 
     /**

Modified: 
commons/proper/vfs/trunk/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/test/SftpProviderTestCase.java
URL: 
http://svn.apache.org/viewvc/commons/proper/vfs/trunk/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/test/SftpProviderTestCase.java?rev=1852191&r1=1852190&r2=1852191&view=diff
==============================================================================
--- 
commons/proper/vfs/trunk/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/test/SftpProviderTestCase.java
 (original)
+++ 
commons/proper/vfs/trunk/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/test/SftpProviderTestCase.java
 Fri Jan 25 23:52:11 2019
@@ -80,11 +80,6 @@ import org.apache.sshd.server.sftp.SftpS
 import com.jcraft.jsch.SftpATTRS;
 import com.jcraft.jsch.TestIdentityRepositoryFactory;
 
-import static 
org.apache.commons.vfs2.provider.sftp.SftpFileSystemConfigBuilder.ProxyType;
-import static 
org.apache.commons.vfs2.provider.sftp.SftpFileSystemConfigBuilder.PROXY_HTTP;
-import static 
org.apache.commons.vfs2.provider.sftp.SftpFileSystemConfigBuilder.PROXY_SOCKS5;
-import static 
org.apache.commons.vfs2.provider.sftp.SftpFileSystemConfigBuilder.PROXY_STREAM;
-
 /**
  * Tests cases for the SFTP provider.
  * <p>
@@ -178,8 +173,8 @@ public class SftpProviderTestCase extend
 
     private static final String TEST_URI = "test.sftp.uri";
 
-    /** Denotes which type of proxy (if any) we are using */
-    private final ProxyType proxyType;
+    /** True if we are testing the SFTP stream proxy */
+    private final boolean streamProxyMode;
 
     private static String getSystemTestUriOverride() {
         return System.getProperty(TEST_URI);
@@ -304,7 +299,7 @@ public class SftpProviderTestCase extend
         final TestSuite suite = new TestSuite();
 
         // --- Standard VFS test suite
-        final SftpProviderTestCase standardTestCase = new 
SftpProviderTestCase(null);
+        final SftpProviderTestCase standardTestCase = new 
SftpProviderTestCase(false);
         final ProviderTestSuite sftpSuite = new 
BaseProviderTestSuite(standardTestCase);
 
         // VFS-405: set/get permissions
@@ -316,9 +311,7 @@ public class SftpProviderTestCase extend
         // We override the addBaseTests method so that only
         // one test is run (we just test that the input/output are correctly 
forwarded, and
         // hence if the reading test succeeds/fails the other will also 
succeed/fail)
-        // --- VFS-663: HTTP / SOCKS5 proxy test suite
-        // Following the example set by VFS-440
-        final SftpProviderTestCase streamProxyTestCase = new 
SftpProviderTestCase(PROXY_STREAM);
+        final SftpProviderTestCase streamProxyTestCase = new 
SftpProviderTestCase(true);
         final ProviderTestSuite sftpStreamSuite = new 
BaseProviderTestSuite(streamProxyTestCase) {
             @Override
             protected void addBaseTests() throws Exception {
@@ -328,28 +321,6 @@ public class SftpProviderTestCase extend
         };
         suite.addTest(sftpStreamSuite);
 
-        // --- VFS-663: HTTP / SOCKS5 proxy test suite
-        // Following the example set by VFS-440
-        final SftpProviderTestCase httpProxyTestCase = new 
SftpProviderTestCase(PROXY_HTTP);
-        final ProviderTestSuite sftpHttpSuite = new 
BaseProviderTestSuite(httpProxyTestCase) {
-            @Override
-            protected void addBaseTests() throws Exception {
-                // Just tries to read
-                addTests(ProviderReadTests.class);
-            }
-        };
-        suite.addTest(sftpHttpSuite);
-
-        final SftpProviderTestCase socks5ProxyTestCase = new 
SftpProviderTestCase(PROXY_SOCKS5);
-        final ProviderTestSuite sftpSocks5Suite = new 
BaseProviderTestSuite(socks5ProxyTestCase) {
-            @Override
-            protected void addBaseTests() throws Exception {
-                // Just tries to read
-                addTests(ProviderReadTests.class);
-            }
-        };
-        suite.addTest(sftpSocks5Suite);
-
         // Decorate the test suite to set up the Sftp server
         final TestSetup setup = new TestSetup(suite) {
             @Override
@@ -382,8 +353,8 @@ public class SftpProviderTestCase extend
         }
     }
 
-    public SftpProviderTestCase(final SftpFileSystemConfigBuilder.ProxyType 
proxyType) {
-        this.proxyType = proxyType;
+    public SftpProviderTestCase(final boolean streamProxyMode) {
+        this.streamProxyMode = streamProxyMode;
     }
 
     /**
@@ -402,7 +373,7 @@ public class SftpProviderTestCase extend
         builder.setUserInfo(fileSystemOptions, new TrustEveryoneUserInfo());
         builder.setIdentityRepositoryFactory(fileSystemOptions, new 
TestIdentityRepositoryFactory());
 
-        if (proxyType == PROXY_STREAM) {
+        if (streamProxyMode) {
             final FileSystemOptions proxyOptions = (FileSystemOptions) 
fileSystemOptions.clone();
 
             final URI parsedURI = new URI(uri);
@@ -421,42 +392,6 @@ public class SftpProviderTestCase extend
             builder.setProxyPassword(fileSystemOptions, 
parsedURI.getAuthority());
 
             // Set up the new URI
-            uri = String.format("sftp://%s@localhost:%d";, userInfo, 
parsedURI.getPort());
-        }
-
-        if (proxyType == PROXY_HTTP) {
-            final URI parsedURI = new URI(uri);
-            final String userInfo = parsedURI.getUserInfo();
-            final String[] userFields = userInfo.split(":", 2);
-
-            builder.setProxyType(fileSystemOptions, PROXY_HTTP);
-            builder.setProxyUser(fileSystemOptions, userFields[0]);
-            if (userFields.length > 1) {
-                builder.setProxyPassword(fileSystemOptions, userFields[1]);
-            }
-            builder.setProxyHost(fileSystemOptions, parsedURI.getHost());
-            builder.setProxyPort(fileSystemOptions, parsedURI.getPort());
-            builder.setProxyPassword(fileSystemOptions, 
parsedURI.getAuthority());
-
-            // Set up the new URI
-            uri = String.format("sftp://%s@localhost:%d";, userInfo, 
parsedURI.getPort());
-        }
-
-        if (proxyType == PROXY_SOCKS5) {
-            final URI parsedURI = new URI(uri);
-            final String userInfo = parsedURI.getUserInfo();
-            final String[] userFields = userInfo.split(":", 2);
-
-            builder.setProxyType(fileSystemOptions, PROXY_SOCKS5);
-            builder.setProxyUser(fileSystemOptions, userFields[0]);
-            if (userFields.length > 1) {
-                builder.setProxyPassword(fileSystemOptions, userFields[1]);
-            }
-            builder.setProxyHost(fileSystemOptions, parsedURI.getHost());
-            builder.setProxyPort(fileSystemOptions, parsedURI.getPort());
-            builder.setProxyPassword(fileSystemOptions, 
parsedURI.getAuthority());
-
-            // Set up the new URI
             uri = String.format("sftp://%s@localhost:%d";, userInfo, 
parsedURI.getPort());
         }
 


Reply via email to