谁能建议如何使用 Camel SSH 组件指定 keyPairProvider 选项?
我正在尝试使用 Camel SSH 组件和 KeyPairProvider 选项连接到远程 SSH 服务器。文档不清楚如何使用此选项、我们需要提供的语法或值等。我尝试提供类名、完整的类路径、密钥文件名等。没有任何效果。我总是收到以下错误。
Caused by: java.lang.IllegalArgumentException: Could not find a suitable setter for property: keyPairProvider as there isn't a setter method with same type: java.lang.String nor type conversion possible: No type converter available to convert from type: java.lang.String to the required type: org.apache.sshd.common.KeyPairProvider with value file:com.example.tree.custom.CustomFileKeyPairProvider
at org.apache.camel.util.IntrospectionSupport.setProperty(IntrospectionSupport.java:555)
at org.apache.camel.util.IntrospectionSupport.setProperty(IntrospectionSupport.java:565)
at org.apache.camel.util.IntrospectionSupport.setProperties(IntrospectionSupport.java:453)
at org.apache.camel.util.EndpointHelper.setProperties(EndpointHelper.java:249)
at org.apache.camel.impl.DefaultComponent.setProperties(DefaultComponent.java:264)
at org.apache.camel.component.ssh.SshComponent.createEndpoint(SshComponent.java:47)
at org.apache.camel.impl.DefaultComponent.createEndpoint(DefaultComponent.java:120)
at org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:508)
... 18 more
这是我的路线
from("direct:sshroute")
.to("ssh://sshuser1@10.115.136.176?keyPairProvider=com.example.tree.custom.CustomFileKeyPairProvider")
如果我不给 keyPairProvider 并更改使用密码的路线,它工作正常。
我还想提一下,如果我创建自己的 SSHComponent,设置 CustomFileKeyPairProvider 并将其添加到 CamelContext(在测试包中给出),它也可以正常工作。但是只想知道如果我们使用默认的骆驼组件,我们如何使用这个选项。
谢谢 - 拉维