Apache Camel -如何在动态sftp端点中设置私钥

5uzkadbs  于 2022-11-07  发布在  Apache
关注(0)|答案(1)|浏览(226)

使用JavaDSL,我有一个路由,在该路由中,我使用在消息头中设置的文件名轮询SFTP服务器中的文件

from("direct:download")
        .pollEnrich()
        .simple("sftp://my.host:22/folder/?username=foo&fileName=${header.CamelFileName}")
        .to("file://state/downloaded");

sftp端点需要设置一个私钥。通常这样就足够了:

endpoint("sftp://my.host:22/folder/?username=foo&fileName=my_file_explicitly_written_here", SftpEndpoint.class).getConfiguration().setPrivateKey(getSshPrivateKey());

但是,我无法将URI(pollEnrich().simple())中的动态字段(${header.CamelFileName})与端点配置“混合”。
对此有何建议?

v1l68za4

v1l68za41#

您可以从注册表中将privateKey引用为Bean。

.pollEnrich()
    .simple("sftp://my.host:22/folder/?username=foo&privateKey=#myKeyInRegistry&fileName=${header.CamelFileName}")

将Bean绑定到注册表取决于所使用的平台和Camel版本。

相关问题