Όταν υπάρχει διαμεσολαβητής SOCKS, το FTPSClient του Commons Net μπορεί να χρησιμοποιήσει τη διεπαφή socket proxy που κληρονομεί. Κρατήστε τον διακομιστή FTPS ως προορισμό της σύνδεσης:

var client = new org.apache.commons.net.ftp.FTPSClient(false);
client.setProxy(new java.net.Proxy(
    java.net.Proxy.Type.SOCKS,
    new java.net.InetSocketAddress("proxy.example", 1080)));
client.setTrustManager(null);
client.setEndpointCheckingEnabled(true);
client.setConnectTimeout(10000);
client.connect("ftps.example", 21);

Αυτό ξεκινά μια ρητή σύνδεση FTPS. Η εφαρμογή εξακολουθεί να χειρίζεται τη σύνδεση, τη διαπραγμάτευση προστασίας δεδομένων, τη μεταφορά και την αποσύνδεση. Η ρύθμιση null trust manager επιλέγει τους προεπιλεγμένους trust managers της JVM αντί για τον έλεγχο πιστοποιητικού μόνο βάσει ημερομηνίας του Commons Net. Χρησιμοποιήστε το προβλεπόμενο trust store και το hostname του πιστοποιητικού του διακομιστή.

Στις παθητικές μεταφορές, η τρέχουσα υλοποίηση του FTPSClient δημιουργεί και το socket δεδομένων μέσω του ρυθμισμένου proxy και έπειτα προσθέτει το επίπεδο TLS. Μετά τη σύνδεση, χρησιμοποιήστε παθητική λειτουργία και διαπραγματευτείτε το απαιτούμενο προστατευμένο κανάλι δεδομένων μέσω του κανονικού API FTPS. Μια επιτυχημένη σύνδεση ελέγχου δεν ολοκληρώνει αυτή την εργασία· η παθητική σύνδεση δεδομένων παραμένει ξεχωριστή διαδρομή.

Ο κώδικας υποθέτει υπηρεσία SOCKS χωρίς πρόσθετο λογαριασμό. Η υποστήριξη ελέγχου ταυτότητας χρειάζεται ξεχωριστή εξέταση για το επιλεγμένο runtime Java και την ανάπτυξη.

Αυτή δεν είναι η διεπαφή HTTP CONNECT του FTPHTTPClient. Το αδελφό αυτό εργαλείο χειρίζεται συνηθισμένο FTP μέσω σήραγγας HTTP· η αλλαγή της θύρας του δεν προσθέτει FTPS. Αν το δίκτυο επιτρέπει μόνο HTTP proxy, επιλέξτε υλοποίηση FTPS ή συντηρούμενη προσαρμογή που υποστηρίζει CONNECT και στη διαδρομή ελέγχου και στη διαδρομή δεδομένων.

Διατηρήστε τη ρύθμιση proxy για όλο τον κύκλο ζωής του πελάτη και εξετάστε την πριν επανασυνδέσετε ένα επαναχρησιμοποιημένο στιγμιότυπο: η αποσύνδεση FTPS επαναφέρει τα εργοστάσια socket. Μην αντικαθιστάτε τους ελέγχους πιστοποιητικών με trust-all manager για να φαίνεται επιτυχημένη η διαδρομή.

Σχετικά άρθρα