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());
}