【问题标题】:How to make FTPS data channel encrypted如何使FTPS数据通道加密
【发布时间】:2014-07-08 05:50:01
【问题描述】:

我是 FTP 新手。我的 FTPSClient 程序有问题。只有控制通道被加密。我需要加密控制和数据通道。

public boolean login(String usrName,char[] passwd){

    try {
        ftpClient = new FTPSClient(protocol,false); // SSL FTP
        ftpClient.connect(strHost);

        int reply = ftpClient.getReplyCode(); // After connection attempt, you should check the reply code to verify success.

        if (!FTPReply.isPositiveCompletion(reply)) {
            ftpClient.disconnect();
            log.error("FTP server refused connection.");
            return false;
        }

        ftpClient.setBufferSize(1000);

        if (!ftpClient.login(strUsrName,new String(passwd))){
            ftpClient.logout();
            bLoginStatus = false;
            return false;
        }
        else
            bLoginStatus = true;

        if(iMode == LOCAL_ACTIVE_MODE)
            ftpClient.enterLocalActiveMode();
        else if(iMode == LOCAL_PASSIVE_MODE)
            ftpClient.enterLocalPassiveMode();

    }  catch (SocketException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch(Throwable t){
        t.printStackTrace();
    }finally {
        if (bLoginStatus == false && ftpClient.isConnected()){
            try{
                ftpClient.disconnect();
            }
            catch (IOException f){
                // do nothing
            }
        }
    }

    if(ftpClient.isConnected())
        return true;
    else
        return false;
}

【问题讨论】:

    标签: java ftps


    【解决方案1】:

    您需要告诉客户端也加密数据连接,您可以使用 PROT 命令执行此操作(如果我没记错的话):

    client.execPBSZ(0);
    client.execPROT("P");
    

    【讨论】:

      猜你喜欢
      • 2018-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 2012-07-29
      • 1970-01-01
      • 1970-01-01
      • 2014-03-03
      相关资源
      最近更新 更多