Details
-
Feature
-
Status: Released (View Workflow)
-
Minor
-
Resolution: Fixed
-
2.8.0
-
None
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
- SFTPFragment / JumpFragment
- Configuration files can be defined on the following transfer fragments:
- 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
- SFTPFragment / JumpFragment
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.
- The Fragments / ProtocolFragments / ... / ConfigurationFiles / ConfigurationFile and the Profile / ... / SystemPropertyFile elements should support both formats:
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:
- 2.5.x release branch, starting from version 2.5.9.
- Download: js7_agent.2.5.9-PATCH.YADE-652.jar [ sha256 ] [ sig ] [ tsr ]
- 2.7.x release branch, starting from version 2.7.2.
- Download: js7_agent.2.7.2-PATCH.YADE-652.jar [ sha256 ] [ sig ] [ tsr ]
- Note: The two patches are identical in content and differ only in their .jar file names.
- 2.5.x release branch, starting from version 2.5.9.
- 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.
- The patch must be deployed to:
- It applies to the:
- A cumulative patch is available for JS7 version 2.8.3.
- Use the cumulative patch provided with
YADE-659.
- Use the cumulative patch provided with
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 both supported formats:
- 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.
- Test both supported formats:
- Testing on the 2.5.x and 2.7.x versions listed above requires the corresponding patch to be applied first.