Details
-
Type:
New Feature
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: 2.1.1
-
Fix Version/s: Product Backlog
-
Component/s: Transport: FTP / SFTP
-
Labels:None
-
User impact:Low
-
Similar Issues:None
Description
Actually Mule can't make FTPs, but we worked on this and finally made it !
If you're interesting in it, upgrade commons-net to 2.0 for having the FTPSClient (for now in Mule it's 1.4.1).
Then in org.mule.transport.ftp.FtpConnectionFactory put in comment client.setReaderThread() in activateObject() and passivateObject().
After that we need new parameters, like "ftps" (true or false), "proctol" (SSL or TLS), and "implicit" (true or false). Those parameters should be added to the ftp xsd. After that, in FtpConnectionFactory.makeObject(), just add something like this to create the client :
FTPClient client;
if(isFtps()) { client = new FTPSClient(ftpsProtocol, ftpsImplicit); } else { client = new FTPClient(); }
Everything works fine for us, so if you have any questions just ask ![]()
Activity
| Field | Original Value | New Value |
|---|---|---|
| Priority | To be reviewed [ 6 ] | Major [ 3 ] |
| Summary | making FTPs | FTPS transport |
| Fix Version/s | 2.x Product Backlog [ 10440 ] | |
| Issue Type | Improvement [ 4 ] | New Feature [ 2 ] |
| Link | This issue relates to EE-249 [ EE-249 ] |
| Link | This issue relates to EE-249 [ EE-249 ] |
- Repository mule on http://foo.bar/ failed: Error in remote call to 'FishEye 0 (http://foo.bar/)' (http://foo.bar) [AbstractRestCommand{path='/rest-service-fe/changeset-v1/listChangesets/', params={expand=changesets[-21:-1].revisions[0:29], comment=MULE-4048, p4JobFixed=MULE-4048, rep=mule}, methodType=GET}] : java.net.UnknownHostException: foo.bar
I found a server where I got the reply "550 PROT P required" during the FTPSClient.listFiles() command.
I seek and finnaly found that we need to call FTPSClient.execPROT("P") after the connection.
In the javadoc of commons-net there is :
execPROT :
Data Channel Protection Level :
C - Clear
S - Safe(SSL protocol only)
E - Confidential(SSL protocol only)
P - Private
So I add a parameter prot to my connector and check if the value is correct before calling the method.
The parameter "prot" should be added too in the ftp xsd, and the execPROT() called after the connection sucessed if "prot" is not null.