Github user ijokarumawak commented on the issue:

    https://github.com/apache/nifi/pull/2704
  
    @jugi92 FTPTransfer supports SOCKS proxy. Specifically at these lines:
    ```
             if (proxyType == Proxy.Type.HTTP) {
    -            client = new FTPHTTPClient(proxyHost, proxyPort, 
ctx.getProperty(HTTP_PROXY_USERNAME).getValue(), 
ctx.getProperty(HTTP_PROXY_PASSWORD).getValue());
    +            client = new FTPHTTPClient(proxyHost, proxyPort, 
proxyConfig.getProxyUserName(), proxyConfig.getProxyUserPassword());
             } else {
                 client = new FTPClient();
                 if (proxyType == Proxy.Type.SOCKS) {
                     client.setSocketFactory(new SocksProxySocketFactory(new 
Proxy(proxyType, new InetSocketAddress(proxyHost, proxyPort))));
                 }
             }
    ```
    
https://github.com/apache/nifi/pull/2704/files#diff-6e7e715d42f332cbe404edd9afbcaafaL533
    
    For processors those don't support SOCKS proxy, following validation code 
should be added into their customValidate method, to confirm that 
ProxyConfigurationService is configured with the supported proxy type(s):
    ```
    ProxyConfiguration.validateProxyType(validationContext, results, 
Proxy.Type.HTTP);
    ```
    
    ProxyConfigurationService just holds the centralized proxy settings, each 
processor is responsible to use the settings with its own relying SDK/API way.
    
    I checked #2018 but the PR doesn't look active. I will take a closer look 
on SFTP processor and #2018 to see if I can include SFTP ones into this PR, too.


---

Reply via email to