如何改进或删除 sftp 硬编码密码骆驼代码

How to improve or remove sftp hard code password camel code

我有以下代码:-

    public class FtpRouteBuilder extends RouteBuilder {
        @Override
        public void configure() throws Exception {
            try{
                from("file:c:/temp/input/")
                        .streamCaching()
                        .to("sftp://sftpuser@192.168.10.54:/sftpuser/?password=dev&passiveMode=true");
            }catch (Exception ex){
                System.out.printf("ex: "+ex.getMessage());
            }
        }
    }

我在代码中有 sftp 密码 "dev"。那太丑了。我怎样才能删除它并以更好的方式设置它?

  1. 查看您的ftp 服务器文档,了解如何使用 SSH 密钥设置访问。如果您还没有密钥对(例如使用 ssh-keygen),则需要生成一对密钥,然后将 public 密钥放在 sftp 服务器上。不要使用密码短语。如果这样做,则必须将其添加到骆驼路线中,所以它看起来会很丑。

  2. 检查您是否可以使用私钥与 ftp 客户端进行传输。即在尝试将它们与骆驼一起使用之前测试键。

  3. 更改路由以使用私钥

    from("file:c:/temp/input/")
        .streamCaching()
        .to("sftp://sftpuser@192.168.10.54:/sftpuser/?privateKeyFile=path-to-private-key-file&passiveMode=true");