我正在尝试通过FTP SITE代理访问FTP服务器以绕过防火墙,it.sauronsoftware.ftp4j.FTPClient因为我知道我的用户名/密码正确,因为可以使用FileZilla进行连接。我尝试使用Authenticator,但没有用。码:
it.sauronsoftware.ftp4j.FTPClient
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
java.io.IOException: Proxy authentication failed
我尝试过的事情:
(String, int, String, String)
但是,当我仅使用Authenticator时,会收到不同的错误提示Connection timed out。
Connection timed out
两种错误都在线发生 client.connect("ftpHost");
client.connect("ftpHost");
任何 帮助,将不胜感激。
注意:FTP代理连接器
编辑:我发现代理用于绕过Firewall-1检查点-如果有帮助。
我找到了解决方案…
我发现FTP客户端使用不同的响应代码进行响应:
200-User <username> authenticated by FireWall-1 authentication
在的源代码中FTPProxyConnector,响应代码不是常规代码
FTPProxyConnector
230-Connected to server. Logging in...
会抛出一个错误。
我必须反编译类文件FTPProxyConnector,然后修改源代码,然后重新编译并将其保存回jar。像魅力一样工作。