Apache Camel set privateKey SFTP

问题描述 投票:0回答:1

我正在尝试连接到sftp服务器以存储一些文件。我想通过SSH连接。我的问题几乎与:Camel SFTP component - SSH private key URI works with privateKeyFile, doesn't work with privateKey以及以下答案:Apache Camel - How to set a private key in a dinamic sftp endpoint但是我仍然没有设法连接。

我的工作路线:

 from(mytopic)
  .to(sftp://[email protected]:22/folder/?privateKeyFile=path/to/privateRsa)

我的非工作路线:

  from(mytopic)
  .to(sftp://[email protected]:22/folder/?privateKey=byteArrayRsa)

我调试了com.jcraft.jsch.KeyPair类->以下方法:

public static KeyPair load(JSch jsch, byte[] prvkey, byte[] pubkey) throws JSchException 

而且似乎没有正确的byte [] prvkey,而是得到了它的地址。如何发送正确的字节数组?我尝试按照其中一个链接中的建议创建一个bean,但是没有成功。 (我正在使用骆驼3.1)

spring-boot apache-camel jsch camel-ftp
1个回答
0
投票

这不起作用,您不能仅在路由定义中使用ByteArray引用。当您使用诸如org.apache.camel.impl.SimpleRegistry的注册表来存储键参考时,它可以工作。

simpleRegistry.put("MySshKey", byteArrayRsa)
camelCtx.setRegistry(simpleRegistry)

然后您可以在路线中使用参考:

privateKey=#MySshKey

也许您也可以使用Spring Injection。

© www.soinside.com 2019 - 2024. All rights reserved.