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

        1. sshj.config
          4 kB
          Robert Ehrlich

        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: