You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Michael Seganti (JIRA)" <ji...@apache.org> on 2017/06/01 18:06:04 UTC
[jira] [Created] (NET-637) FTPSClient not using the Socks Proxy
when opening passive data connection
Michael Seganti created NET-637:
-----------------------------------
Summary: FTPSClient not using the Socks Proxy when opening passive data connection
Key: NET-637
URL: https://issues.apache.org/jira/browse/NET-637
Project: Commons Net
Issue Type: Bug
Components: FTP
Affects Versions: 3.6, 3.5
Environment: Windows
Reporter: Michael Seganti
Priority: Minor
I'm routing FTPS traffic through a SOCKS proxy host. I setup the proxy using:
FTPSClient ftps = new FTPSClient("TLS", false);
InetSocketAddress sa = new InetSocketAddress(proxyHost,proxyPort);
Proxy proxy = new Proxy(Proxy.Type.SOCKS, sa);
System.out.println("Using Proxy Server: " + proxy);
ftps.setProxy(proxy);
...
ftps.enterLocalPassiveMode();
for (FTPFile f : ftps.listFiles()) {
System.out.println(f.getRawListing());
}
When establishing the connection, the above code does go through the proxy and I'm able to login. When I try to do anything, say listFiles, It does the SYST and then attempts to enter passive mode, but the connection times out:
227 Entering Passive Mode (123,45,678,9,11,243)
java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.security.ssl.SSLSocketImpl.connect(Unknown Source)
at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:920)
at org.apache.commons.net.ftp.FTPSClient._openDataConnection_(FTPSClient.java:627)
at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:785)
at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:3409)
at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:3339)
at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:3016)
at gov.nyc.ftputils.FTPConnection.listFiles(FTPConnection.java:1270)
at gov.nyc.ftputils.FTPClientUtil.main(FTPClientUtil.java:572)
I then comment out the proxy code and added:
System.getProperties().put( "socksProxyPort", proxyPort);
System.getProperties().put( "socksProxyHost" ,proxyHost);
And then I'm able to get the listing, get files, etc.
Adding -DsocksProxyHost=myproxy.host to the java command line also works.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)