小编典典

代理身份验证失败错误

java

我正在尝试通过FTP
SITE代理访问FTP服务器以绕过防火墙,it.sauronsoftware.ftp4j.FTPClient因为我知道我的用户名/密码正确,因为可以使用FileZilla进行连接。我尝试使用Authenticator,但没有用。码:

import java.net.Authenticator;
import it.sauronsoftware.ftp4j.FTPClient;
import it.sauronsoftware.ftp4j.connectors.FTPProxyConnector;
...
    FTPClient client = new FTPClient();
        FTPProxyConnector connector = new FTPProxyConnector(String "proxyHost", int proxyPort);
        client.setConnector(connector);

        Authenticator.setDefault(new Authenticator() {
        @Override
             public PasswordAuthentication getPasswordAuthentication() {
                       return new PasswordAuthentication("proxyUser", "proxyPass".toCharArray());
         }});

        System.setProperty("ftp.proxyHost", "proxyHost");
        System.setProperty("ftp.proxyPort", "proxyPort");
        System.setProperty("ftp.proxyUser", "proxyUser");
        System.setProperty("ftp.proxyPass", "proxyPass");

        System.out.println("Proxy Accessed");

        client.connect("ftpHost");
        client.login("ftpUser", "ftpPass");

给我这个错误: java.io.IOException: Proxy authentication failed

我尝试过的事情:

  • 使用备用构造函数(String, int, String, String)
  • 拆下 Authenticator
  • 使用just Authenticator,不使用FTPProxyConnector
  • 设置连接器之前进行身份验证,反之亦然。

但是,当我仅使用Authenticator时,会收到不同的错误提示Connection timed out

两种错误都在线发生 client.connect("ftpHost");

任何 帮助,将不胜感激。

注意:FTP代理连接器

编辑:我发现代理用于绕过Firewall-1检查点-如果有帮助。


阅读 304

收藏
2020-11-30

共1个答案

小编典典

我找到了解决方案…

我发现FTP客户端使用不同的响应代码进行响应:

200-User <username> authenticated by FireWall-1 authentication

在的源代码中FTPProxyConnector,响应代码不是常规代码

230-Connected to server. Logging in...

会抛出一个错误。

我必须反编译类文件FTPProxyConnector,然后修改源代码,然后重新编译并将其保存回jar。像魅力一样工作。

2020-11-30