1

it.sauronsoftware.ftp4j.FTPClientFileZillaを使用して接続できるため、ユーザー名/パスワードが正しいことがわかっているので、FTPSITEプロキシを介してFTPサーバーにアクセスしてファイアウォールをバイパスしようとしています。使ってみ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
  • AuthenticatorFTPProxyConnectorなしで、を使用する
  • コネクタを設定する前に認証する、またはその逆。

ただし、Authenticatorを使用しているだけの場合は、という別のエラーが発生しますConnection timed out

両方のエラーがオンラインで発生しますclient.connect("ftpHost");

どんな助けでもいただければ幸いです。

注:FTPプロキシコネクタ

編集:プロキシがファイアウォール1チェックポイントをバイパスするために使用されていることがわかりました-これが役立つ場合。

4

3 に答える 3

1

パスワードプロパティ名を確認してください。その名前は ftp.proxyPassword であり、ftp.proxyPass ではありません。

System.setProperty("ftp.proxyUser", "proxyUser");
System.setProperty("ftp.proxyPassword", "proxyPass");

試してみて、結果をお知らせください。

于 2013-03-25T18:03:35.393 に答える
1

パスワードプロパティ名を確認してください。その名前は ftp.proxyPassword であり、ftp.proxyPass ではありません。

System.setProperty("ftp.proxyUser", "proxyUser");
System.setProperty("ftp.proxyPassword", "proxyPass");

試してみて、結果をお知らせください。

于 2013-03-25T18:04:13.083 に答える
1

私は解決策を見つけました...

FTP クライアントが別の応答コードで応答していることを発見しました。

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

のソース コードではFTPProxyConnector、通常以外の応答コード

230-Connected to server. Logging in...

エラーがスローされます。

クラスファイルを逆コンパイルしFTPProxyConnectorてソースコードを変更し、再コンパイルしてjarに保存する必要がありました。魅力のように働きました。

于 2013-03-27T18:57:17.383 に答える