This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-kamelets.git
commit d55f1c5b8fa33ea442f119c7ebe0b594c285552d Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Tue Nov 22 13:11:12 2022 +0100 SFTP connectors missing authentication options to use a private key Signed-off-by: Andrea Cosentino <anco...@gmail.com> --- .../main/resources/kamelets/sftp-sink.kamelet.yaml | 37 ++++++++++++++++--- .../resources/kamelets/sftp-source.kamelet.yaml | 41 ++++++++++++++++++---- 2 files changed, 68 insertions(+), 10 deletions(-) diff --git a/library/camel-kamelets/src/main/resources/kamelets/sftp-sink.kamelet.yaml b/library/camel-kamelets/src/main/resources/kamelets/sftp-sink.kamelet.yaml index cfa4dbd3..fb178fd8 100644 --- a/library/camel-kamelets/src/main/resources/kamelets/sftp-sink.kamelet.yaml +++ b/library/camel-kamelets/src/main/resources/kamelets/sftp-sink.kamelet.yaml @@ -38,8 +38,6 @@ spec: required: - connectionHost - connectionPort - - username - - password - directoryName type: object properties: @@ -89,6 +87,31 @@ spec: default: false x-descriptors: - 'urn:alm:descriptor:com.tectonic.ui:checkbox' + privateKeyFile: + title: Private Key File + description: Set the private key file so that the SFTP endpoint can do private key verification. + type: string + privateKeyPassphrase: + title: Private Key Passphrase + description: Set the private key file passphrase so that the SFTP endpoint can do private key verification. + type: string + privateKeyUri: + title: Private Key URI + description: Set the private key file (loaded from classpath by default) so that the SFTP endpoint can do private key verification. + type: string + pattern: "^(http|https|file|classpath)://.*" + strictHostKeyChecking: + title: Strict Host Checking + description: Sets whether to use strict host key checking. + type: string + default: no + useUserKnownHostsFile: + title: Use User Known Hosts File + description: If knownHostFile has not been explicit configured then use the host file from System.getProperty(user.home)/.ssh/known_hosts. + type: boolean + default: true + x-descriptors: + - 'urn:alm:descriptor:com.tectonic.ui:checkbox' dependencies: - "camel:ftp" - "camel:core" @@ -110,9 +133,15 @@ spec: name: CamelFileName simple: "${header[ce-file]}" - to: - uri: "sftp:{{username}}@{{connectionHost}}:{{connectionPort}}/{{directoryName}}" + uri: "sftp:{{connectionHost}}:{{connectionPort}}/{{directoryName}}" parameters: - password: "{{password}}" + username: "{{?username}}" + password: "{{?password}}" + privateKeyFile: "{{?privateKeyFile}}" + privateKeyPassphrase: "{{?privateKeyPassphrase}}" + privateKeyUri: "{{?privateKeyUri}}" + strictHostKeyChecking: "{{?strictHostKeyChecking}}" + useUserKnownHostsFile: "{{?useUserKnownHostsFile}}" passiveMode: "{{passiveMode}}" fileExist: "{{fileExist}}" binary: "{{binary}}" diff --git a/library/camel-kamelets/src/main/resources/kamelets/sftp-source.kamelet.yaml b/library/camel-kamelets/src/main/resources/kamelets/sftp-source.kamelet.yaml index 8ef6d183..d65d18fe 100644 --- a/library/camel-kamelets/src/main/resources/kamelets/sftp-source.kamelet.yaml +++ b/library/camel-kamelets/src/main/resources/kamelets/sftp-source.kamelet.yaml @@ -34,8 +34,6 @@ spec: required: - connectionHost - connectionPort - - username - - password - directoryName type: object properties: @@ -101,27 +99,58 @@ spec: default: false x-descriptors: - 'urn:alm:descriptor:com.tectonic.ui:checkbox' + privateKeyFile: + title: Private Key File + description: Set the private key file so that the SFTP endpoint can do private key verification. + type: string + privateKeyPassphrase: + title: Private Key Passphrase + description: Set the private key file passphrase so that the SFTP endpoint can do private key verification. + type: string + privateKeyUri: + title: Private Key URI + description: Set the private key file (loaded from classpath by default) so that the SFTP endpoint can do private key verification. + type: string + pattern: "^(http|https|file|classpath)://.*" + strictHostKeyChecking: + title: Strict Host Checking + description: Sets whether to use strict host key checking. + type: string + default: no + useUserKnownHostsFile: + title: Use User Known Hosts File + description: If knownHostFile has not been explicit configured then use the host file from System.getProperty(user.home)/.ssh/known_hosts. + type: boolean + default: true + x-descriptors: + - 'urn:alm:descriptor:com.tectonic.ui:checkbox' dependencies: - "camel:ftp" - "camel:core" - "camel:kamelet" template: from: - uri: "sftp:{{username}}@{{connectionHost}}:{{connectionPort}}/{{directoryName}}" + uri: "sftp:{{connectionHost}}:{{connectionPort}}/{{directoryName}}" parameters: - password: "{{password}}" + username: "{{?username}}" + password: "{{?password}}" + privateKeyFile: "{{?privateKeyFile}}" + privateKeyPassphrase: "{{?privateKeyPassphrase}}" + privateKeyUri: "{{?privateKeyUri}}" + strictHostKeyChecking: "{{?strictHostKeyChecking}}" + useUserKnownHostsFile: "{{?useUserKnownHostsFile}}" passiveMode: "{{passiveMode}}" recursive: "{{recursive}}" idempotent: "{{idempotent}}" ignoreFileNotFoundOrPermissionError: "{{ignoreFileNotFoundOrPermissionError}}" binary: "{{binary}}" steps: + - set-body: + simple: "${body.getBody()}" - set-header: name: file simple: "${header[CamelFileName]}" - set-header: name: ce-file simple: "${header[CamelFileName]}" - - convert-body-to: - type: "java.io.InputStream" - to: "kamelet:sink"