Apache camel ApacheCamel-如何在dinamic sftp端点中设置私钥

Apache camel ApacheCamel-如何在dinamic sftp端点中设置私钥,apache-camel,Apache Camel,使用JavaDSL,我有一个路由,在该路由中,我使用消息头中设置的文件名轮询SFTP服务器中的文件 from("direct:download") .pollEnrich() .simple("sftp://my.host:22/folder/?username=foo&fileName=${header.CamelFileName}") .to("file://state/downloaded"); sftp端点需要设置私钥。通常这样就

使用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());
但是,我认为没有办法将
pollRich().simple()
)中的URI(
${header.CamelFileName}
)中的动态字段与端点配置“混合”


对此有什么建议吗?

您可以从注册表中引用
privateKey
作为bean

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

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

您可以从注册表中引用
privateKey
作为bean

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

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

谢谢!没有想过直接将其放入uri中。那有帮助!谢谢没有想过直接将其放入uri中。那有帮助!