如何全局禁用Camel-SFTP主机验证?附路由代码与日志信息
全局禁用Camel-SFTP主机验证的解决方案
我来帮你搞定这个全局禁用Camel SFTP主机验证的需求,毕竟在测试环境或者内部可信的SFTP服务场景下,这个配置确实能省不少麻烦。
根据你提供的路由代码和日志信息,你可以通过以下两种全局配置方式来实现,不用在每个SFTP端点里重复加参数:
方法一:通过Spring配置文件全局设置(推荐Spring Boot场景)
如果你用的是Spring Boot,直接在application.properties或者application.yml里添加全局SFTP组件配置即可:
Properties格式
# 全局禁用SFTP主机密钥验证 camel.component.sftp.disable-ssh-host-key-verification=true
YAML格式
camel: component: sftp: disable-ssh-host-key-verification: true
方法二:通过Java配置类自定义SFTP组件
如果你的项目更偏向Java代码配置,可以创建一个配置类来全局初始化SFTP组件:
import org.apache.camel.component.file.remote.SftpComponent; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class CamelGlobalSftpConfig { @Bean public SftpComponent sftpComponent() { SftpComponent sftpComponent = new SftpComponent(); // 开启全局禁用主机验证 sftpComponent.setDisableSshHostKeyVerification(true); return sftpComponent; } }
补充说明
如果你只是想临时在单个路由里禁用验证,也可以在SFTP端点URL里追加参数:
from(String.format("sftp://%s@%s:%d/%s?password=%s&delete=true&readLock=changed&delay=%s&disableHostKeyVerification=true" ...
但既然你要全局生效,前面两种方法更合适,能避免重复配置。
配置完成后,你之前看到的Known host file not configured日志提示就不会再出现,同时Camel会跳过SFTP主机密钥的验证步骤,直接建立连接。
内容的提问来源于stack exchange,提问作者gstackoverflow
相关产品推荐
相关产品推荐

