Details
-
Fix
-
Status: Released (View Workflow)
-
Minor
-
Resolution: Fixed
-
1.8.2
Description
Current Situation
- YADE is intended to support FTPS as a source and a target for file transfer.
- For the YADE release 1.8.2 file transfer from localhost source to a target over FTPS protocol hangs.
- The error message received by the YADE Client:
main ERROR 14:12:35,279 (SOSVfsFtpS.java:92) ::connect (@mp.sos:990) connect returns an exception com.sos.JSHelper.Exceptions.JobSchedulerException: (@mp.sos:990) org.apache.commons.net.ftp.FTPConnectionClosedException - Connection closed without indication.
- Session Log
C:\Program Files\sos-berlin.com\jade\jade_client.1.8.2\bin>jade.cmd -settings=jade_settings_ftps.ini -profile=mp.sos_ftps + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + START : JADE.CMD + + ----------------- + + DATE : 15.04.2015 14:11:29,34 + HOSTNAME : MP + USER : MP + CALL : C:\Program Files\sos-berlin.com\jade\jade_client.1.8.2\bin\jade.cmd -settings=jade_settings_ftps.ini -profile=mp.sos_ftps + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + main INFO 14:11:34,458 (SOSDataExchangeEngineMain.java:72) ::Execute SOSDataExchange - Main routine started ... -- 1.8.2 (2015-03-30 15:00, revision 21481c72eb46e54aa35311c9dade3087cd7a7a0d) Copyri ght 2003-2015 SOS GmbH Berlin main INFO 14:11:34,474 (SOSOptionLogFileName.java:178) ::setLogger setLogger without instance of logger called. main INFO 14:11:34,505 (SOSDataExchangeEngine.java:288) ::Execute ************************************************************************* * * * JADE - JobScheduler Advanced Data Exchange * * ---www.sos-berlin.com--------------------- * * * ************************************************************************* version = 1.8.2 (2015-03-30 15:00, revision 21481c72eb46e54aa35311c9dade3087cd7a7a0d) Copyright 2003-2015 SOS GmbH Berlin date = 2015-04-15 14:11:34 operation = copy protocol = ftps port = 990 file regExp = TRX100.CSV2 file path = source host = ?source_host? source directory = C:\sandbox\source target host = mp.sos target directory = /outbound/FTPS ErrorWhenNoData = true ************************************************************************* main ERROR 14:12:35,279 (SOSVfsFtpS.java:92) ::connect (@mp.sos:990) connect returns an exception com.sos.JSHelper.Exceptions.JobSchedulerException: (@mp.sos:990) org.apache.commons.net.ftp.FTPConnectionClosedException - Connection closed without indication. at com.sos.VirtualFileSystem.FTP.SOSVfsFtpBaseClass.connect(SOSVfsFtpBaseClass.java:347) at com.sos.VirtualFileSystem.FTPS.SOSVfsFtpS.connect(SOSVfsFtpS.java:73) at com.sos.VirtualFileSystem.FTP.SOSVfsFtpBaseClass.Connect(SOSVfsFtpBaseClass.java:421) at com.sos.VirtualFileSystem.DataElements.SOSVfsConnectionFactory.doConnect(SOSVfsConnectionFactory.java:112) at com.sos.VirtualFileSystem.DataElements.SOSVfsConnectionFactory.getVfsHandler(SOSVfsConnectionFactory.java:97) at com.sos.VirtualFileSystem.DataElements.SOSVfsConnectionFactory.createConnectionPool(SOSVfsConnectionFactory.java:61) at com.sos.VirtualFileSystem.DataElements.SOSVfsConnectionFactory.<init>(SOSVfsConnectionFactory.java:32) at com.sos.DataExchange.SOSDataExchangeEngine.transfer(SOSDataExchangeEngine.java:842) at com.sos.DataExchange.SOSDataExchangeEngine.Execute(SOSDataExchangeEngine.java:292) at com.sos.DataExchange.SOSDataExchangeEngineMain.Execute(SOSDataExchangeEngineMain.java:75) at com.sos.DataExchange.SOSDataExchangeEngineMain.main(SOSDataExchangeEngineMain.java:30) main INFO 14:12:35,295 (SOSDataExchangeEngine.java:310) ::Execute Elapsed time = 60821, per File = 60821, total bytes = 0 main INFO 14:12:35,295 (SOSDataExchangeEngine.java:321) ::Execute ************************************************************************* execution status = failure. Errors reported. successful transfers = 0 skipped transfers = 0 failed transfers = 0 last error = Software caused connection abort: socket write error Software caused connection abort: socket write error ************************************************************************* main ERROR 14:12:35,295 (SOSDataExchangeEngineMain.java:83) ::Execute SOSDataExchangeEngineMain::Execute: Error occurred ...: Software caused connection abort: socket write error, exit-code 99 raise d com.sos.JSHelper.Exceptions.JobSchedulerException: Software caused connection abort: socket write error at com.sos.VirtualFileSystem.DataElements.SOSVfsConnectionFactory.getVfsHandler(SOSVfsConnectionFactory.java:105) at com.sos.VirtualFileSystem.DataElements.SOSVfsConnectionFactory.createConnectionPool(SOSVfsConnectionFactory.java:61) at com.sos.VirtualFileSystem.DataElements.SOSVfsConnectionFactory.<init>(SOSVfsConnectionFactory.java:32) at com.sos.DataExchange.SOSDataExchangeEngine.transfer(SOSDataExchangeEngine.java:842) at com.sos.DataExchange.SOSDataExchangeEngine.Execute(SOSDataExchangeEngine.java:292) at com.sos.DataExchange.SOSDataExchangeEngineMain.Execute(SOSDataExchangeEngineMain.java:75) at com.sos.DataExchange.SOSDataExchangeEngineMain.main(SOSDataExchangeEngineMain.java:30) main ERROR 14:12:35,310 (SOSDataExchangeEngineMain.java:90) ::Execute SOSDataExchangeEngineMain::Execute - terminated with exit-code 99 com.sos.JSHelper.Exceptions.JobSchedulerException: Software caused connection abort: socket write error at com.sos.VirtualFileSystem.DataElements.SOSVfsConnectionFactory.getVfsHandler(SOSVfsConnectionFactory.java:105) at com.sos.VirtualFileSystem.DataElements.SOSVfsConnectionFactory.createConnectionPool(SOSVfsConnectionFactory.java:61) at com.sos.VirtualFileSystem.DataElements.SOSVfsConnectionFactory.<init>(SOSVfsConnectionFactory.java:32) at com.sos.DataExchange.SOSDataExchangeEngine.transfer(SOSDataExchangeEngine.java:842) at com.sos.DataExchange.SOSDataExchangeEngine.Execute(SOSDataExchangeEngine.java:292) at com.sos.DataExchange.SOSDataExchangeEngineMain.Execute(SOSDataExchangeEngineMain.java:75) at com.sos.DataExchange.SOSDataExchangeEngineMain.main(SOSDataExchangeEngineMain.java:30) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + END : JADE.CMD + + ---------------- + + DATE : 15.04.2015 14:12:35,43 + HOSTNAME : MP + USER : MP + CALL : C:\Program Files\sos-berlin.com\jade\jade_client.1.8.2\bin\jade.cmd -settings=jade_settings_ftps.ini -profile=mp.sos_ftps + EXIT : 99 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + C:\Program Files\sos-berlin.com\jade\jade_client.1.8.2\bin>
Desired Behavior
- YADE should support both Explicit Client Security and Implicit Client Security, see Wikipedia.
- An additional parameter is required that allows to switch between Explicit and Implicit Client Security.
- The use of server side public keys is supported, i.e. the YADE Client can make use of locally available public keys.
- Currently YADE implements Excplicit Client Security, however, this feature is broken and FTPS support should be restored.
Implemented Behavior
- Version 1.8.*
- FTPS support is restored
- only Excplicit Client Security
- FTPS support is restored
- Version 1.9.*, 1.10
- FTPS support is restored
- New features
- Excplicit/Implicit Client Security
- Parameter (source_| target_)
- ftps_client_security = explicit (default) | implicit
- typo error in release 1.9 (ftps_client_secutity), fixed for release 1.9.1, 1.10, see
JADE-296
- typo error in release 1.9 (ftps_client_secutity), fixed for release 1.9.1, 1.10, see
- ftps_client_security = explicit (default) | implicit
- Parameter (source_| target_)
- Proxy via SOCKS
- Trust Manager
- Parameter (source_ | target_)
- keystore_type = JKS(default) | JCEKS | PKCS12 | PKCS11 | DKS
- keystore_file = <path to the keystore file>
- keystore_password = <keystore password>
- Samples keystore
- Generate a Java keystore and key pair
C:\Temp>keytool -genkey -alias mydomain -keyalg RSA -keystore keystore.jks -keysize 2048
- Import the file, contains the public key certificate
C:\Temp>keytool -import -keystore keystore.jks -storepass password -file proftpd.cert.pem
- Jade configuration
target_keystore_type = JKS target_keystore_file = C:\Temp\keystore.jks target_keystore_password = password
- Generate a Java keystore and key pair
- Parameter (source_ | target_)
- Excplicit/Implicit Client Security