Exemplo n.º 1
0
 private void doAuthenticate(
     final ISOSVFSHandler objVFS4Handler,
     final SOSConnection2OptionsAlternate objConnectOptions,
     final boolean pflgIsDataSource)
     throws Exception {
   try {
     objVFS4Handler.Authenticate(objConnectOptions);
   } catch (Exception e) { // SOSFTP-113: Problem to login, try alternate User
     // TODO respect alternate authentication, eg password and/or public key
     JobSchedulerException.LastErrorMessage = "";
     try {
       objVFS4Handler.Authenticate(objConnectOptions.Alternatives());
     } catch (RuntimeException e1) {
       throw e1;
     }
     objConnectOptions.setAlternateOptionsUsed("true");
   }
   ISOSVfsFileTransfer objDataClient = (ISOSVfsFileTransfer) objVFS4Handler;
   if (objOptions.passive_mode.value() || objConnectOptions.passive_mode.isTrue()) {
     objDataClient.passive();
   }
   // objConnectOptions.transfer_mode is not used?
   if (objConnectOptions.transfer_mode.isDirty() && objConnectOptions.transfer_mode.IsNotEmpty()) {
     objDataClient.TransferMode(objConnectOptions.transfer_mode);
   } else {
     objDataClient.TransferMode(objOptions.transfer_mode);
   }
   objDataClient.ControlEncoding(objOptions.ControlEncoding.Value());
   // TODO pre-commands for source and target separately
   if (objOptions.PreFtpCommands.IsNotEmpty() && pflgIsDataSource == false) {
     // TODO Command separator as option
     for (String strCmd : objOptions.PreFtpCommands.split()) {
       strCmd = objOptions.replaceVars(strCmd);
       objDataClient.getHandler().ExecuteCommand(strCmd);
     }
   }
   if (objConnectOptions.PreFtpCommands.IsNotEmpty()) {
     // TODO Command separator as option
     for (String strCmd : objConnectOptions.PreFtpCommands.split()) {
       strCmd = objConnectOptions.replaceVars(strCmd);
       objDataClient.getHandler().ExecuteCommand(strCmd);
     }
   }
 }