【问题标题】:Apache Camel - How to set a private key in a dinamic sftp endpointApache Camel - 如何在动态 sftp 端点中设置私钥
【发布时间】:2019-08-08 04:36:57
【问题描述】:

使用 Java DSL,我有一个路由,我使用消息头中设置的文件名轮询 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 (${header.CamelFileName}) 中的动态字段与端点配置“混合”在 pollEnrich().simple()) 中。

对此有何建议?

【问题讨论】:

    标签: apache-camel


    【解决方案1】:

    您可以将privateKey 引用为注册表中的 bean。

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

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

    【讨论】:

    • 谢谢!没想到直接放到uri里面。这有帮助!
    猜你喜欢
    • 1970-01-01
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-17
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    相关资源
    最近更新 更多