apache-camel - Apache Camel - 如何在动态 sftp 端点中设置私钥
问题描述
使用 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()
与端点配置“混合”。
对此有何建议?
解决方案
您可以privateKey
从注册表中引用 bean。
.pollEnrich()
.simple("sftp://my.host:22/folder/?username=foo&privateKey=#myKeyInRegistry&fileName=${header.CamelFileName}")
将 bean 绑定到注册表取决于您使用的平台和 Camel 版本。
推荐阅读
- python - Django 模板继承在文件夹文件中不起作用。怎么做?
- php - 在使用 AJAX 调用的 PHP 中检索 JSON 数据
- wpf - 将 setter 属性的值绑定到属性颜色后面的代码
- python - 欧几里得距离 - 循环函数
- angular - Cannot order the date by desc on Lodash
- android - Android如何在AppWidget上添加一个圆形边框ImageView?
- date - 添加到 DATE 小时 - TSQL
- python - 基于数组更新数据框列中的值,其中行号指示范围的开始
- python - 烧瓶如何保存 SQLAlchemyobject 的实例
- sql - 已添加具有相同密钥的项目 - mscorlib