web-dev-qa-db-fra.com

Comment se connecter à FTP via un serveur TLS / SSL (FTPS) dans Java

Je suis bloqué dans la connexion au serveur FTP via TLS/SSL (FTPS). J'utilise la bibliothèque SimpleFTP grâce à la possibilité de connecter un serveur FTP sans SSL mais je n'ai pas pu connecter FTPS.

Cela me donne cette erreur à la ligne 2 (ftp.connect),

SimpleFTP a reçu une réponse inconnue lors de la connexion au serveur FTP:
220 ---------- Bienvenue dans Pure-FTPd [privsep] [TLS] ----------

et j'utilise ci-dessous le code

SimpleFTP ftp = new SimpleFTP();

// Connect to an FTP server on port 21.
ftp.connect("xxx.xxx.xxx.xxx", 21, "username", "pwd");
//getting error at (ftp.connect) above line

// Set binary mode.
ftp.bin();

// Change to a new working directory on the FTP server.
ftp.cwd("web");
ftp.disconnect();
8
Abdul Rafay

La classe/bibliothèque SimpleFTP ne prend pas du tout en charge TLS/SSL.


Utilisez plutôt la classe FTPSClient de la bibliothèque Apache Commons Net .

Voir exemple officiel de la classe FTPClient et remplacez simplement le FTPClient par le FTPSClient.

FTPSClient ftpClient = new FTPSClient();
ftpClient.connect(Host);
ftpClient.login(user, password);

La classe FTPSClient utilise par défaut un TLS/SSL explicite (recommandé). Dans de rares cas, vous avez besoin d'un TLS/SSL implicite, utilisez new FTPSClient(true) .

23
Martin Prikryl