Uploaded image for project: 'YADE - Managed File Transfer'
  1. YADE - Managed File Transfer
  2. YADE-652

Extend configuration file support for SSHJ provider and allow inline configuration content

    XMLWordPrintable

Details

    Description

      Current Situation

      • YADE supports configuration files that are used to configure underlying provider libraries.
        • Provider-specific configuration is supplied in a simple INI-style configuration format.
        • The file name and extension are arbitrary and have no functional meaning.
      • YADE allows specifying configuration files individually per transfer fragment.
        • Currently, the configuration file value is interpreted as a file system path, which must be accessible on the machine where YADE is installed.
      • Behaviour in YADE 1.x
        • Configuration files can be defined on the following transfer fragments:
          • SFTPFragment / JumpFragment
            • Not supported for the underlying SSHJ provider
            • Supported for the underlying JSCH provider
          • SMBFragment
            • Supported for the underlying SMBJ provider
            • Supported for the underlying JCIFS provider
      • Behaviour in YADE 2.x
        • Note: YADE 2.x no longer supports JSCH and JCIFS providers.
        • Configuration files can be defined on the following transfer fragments:
          • SFTPFragment / JumpFragment
            • Not supported for the underlying SSHJ provider
          • SMBFragment
            • Supported for the underlying SMBJ provider

      Desired Behaviour

      • Enable configuration file support for SSHJ (SFTPFragment / JumpFragment)
        • SFTPFragment using the SSHJ provider should support configuration file functionality.
      • Extend configuration processing flexibility
        • The Fragments / ProtocolFragments / ... / ConfigurationFiles / ConfigurationFile and the Profile / ... / SystemPropertyFile elements should support both formats:
          • File path to a configuration file (existing behaviour)
          • Direct configuration content as a string (new behaviour)
            • To ensure that the provided value is interpreted as inline configuration content and not as a file path, the content must contain at least two non-empty lines.
            • A non-empty line is defined as any line that is not blank - for example, a line starting with a comment character such as # is considered non-empty.
        • YADE should be able to detect and handle both cases accordingly.

      Maintainer Note

      • SSHJ configuration can be used to restrict or prioritize SSH algorithms in order to avoid SSH negotiation failures caused by incompatible client/server algorithm sets.
      • The following algorithm groups can be configured (see sshj.config):
        • Key exchange (KEX)
        • Public key algorithms
        • Ciphers
        • MAC algorithms

      Patch

      • A patch is available for JS7 releases using YADE version 1.13.23.
        • It applies to the:
        • Applying the patch
          • The patch must be deployed to:
            • <agent install>/yade/lib/patches
            • Note: The agent instance does not require a restart to apply the patch.
      • A cumulative patch is available for JS7 version 2.8.3.
        • Use the cumulative patch provided with YADE-659.

      Test Instructions

      • Test SFTPFragment using the example configuration file sshj.config.
        • Test both supported formats:
          • configuration file path
          • inline configuration content
        • Set different configuration properties, for example sos.sshj.kex, to:
          • a supported algorithm(s)
          • an unsupported/non-existing algorithm(s)
        • Enable DEBUG logging to obtain detailed information about configuration processing and algorithm selection.
      • Test SystemPropertyFile using a simple INI-style configuration, for example: xxx=yyy
        • Test both supported formats:
          • configuration file path
          • inline configuration content
        • Enable DEBUG logging to obtain detailed information about configuration processing.
      • Testing on the 2.5.x and 2.7.x versions listed above requires the corresponding patch to be applied first.

      Attachments

        Activity

          People

            re Robert Ehrlich
            re Robert Ehrlich
            Rajrani Upadhyay Rajrani Upadhyay
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: