Sebb commented on NET-642:

execPROT("P") calls setSocketFactory which clears the proxy variable.
I don't know enough about this to determine whether execProt should always call 
setSocketFactory and/or whether setSocketFactory should clear the proxy.

But an obvious work-round is to use:

Proxy p =client.getProxy(); // save ...
client.setProxy(p); // ... restore the proxy

Does that fix the issue?

> using execPROT on FTPSClients with Proxy Settings removes Proxy Settings
> ------------------------------------------------------------------------
>                 Key: NET-642
>                 URL: https://issues.apache.org/jira/browse/NET-642
>             Project: Commons Net
>          Issue Type: Bug
>          Components: FTP
>    Affects Versions: 3.6
>         Environment: Java 1.8.0_112
> Linux 64bit
>            Reporter: Johannes Frank
>            Priority: Critical
> In Reference to https://issues.apache.org/jira/browse/NET-578
> I'm trying to establish an FTPS Connection via a HTTP Proxy. The Control 
> Connection is properly established, however the Moment I do execPROT the 
> Proxy settings are resetted by call to setSocketFactory(new 
> FTPSSocketFactory(context)); in FTPSClient.java:534.
> This causes FTPSClients with a call to execPROT to actually ignore the proxy 
> settings and attempt to contact the FTPS Server directly for data connections.
> Since we are required to use PROT P this is currently blocking our feature 
> for FTPS Connections via HTTP proxy.

This message was sent by Atlassian JIRA

Reply via email to