Commons Net-ийн FTPSClient-д зориулсан SOCKS зам
Серверийн хост нэр, идэвхгүй өгөгдлийн холболт, TLS шалгалтыг хадгалан FTPS-д Commons Net-ийн socket-proxy интерфейсийг ашиглана.
SOCKS зуучлагч байгаа үед Commons Net-ийн FTPSClient өвлөгдсөн 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 тохиргоо нь Commons Net-ийн зөвхөн огноонд суурилсан гэрчилгээний шалгалтын оронд JVM-ийн анхдагч trust manager-уудыг сонгоно. Зориулсан trust store болон серверийн гэрчилгээний хост нэрийг ашиглана.
Идэвхгүй дамжуулалтын хувьд одоогийн FTPSClient хэрэгжүүлэлт өгөгдлийн socket-оо мөн тохируулсан проксигоор үүсгэж, дараа нь TLS давхаргыг нэмнэ. Нэвтэрсний дараа идэвхгүй горим ашиглаж, шаардлагатай хамгаалагдсан өгөгдлийн сувгийг энгийн FTPS API-аар хэлэлцэнэ. Амжилттай удирдлагын холболт тэр ажлыг гүйцэтгэхгүй; идэвхгүй өгөгдлийн холболт тусдаа зам хэвээр үлдэнэ.
Код нь нэмэлт бүртгэлгүй SOCKS үйлчилгээ гэж үздэг. Баталгаажуулалтын дэмжлэгийг сонгосон Java ажиллагааны орчин, байрлуулалтад тусгайлан хянах шаардлагатай.
Энэ нь FTPHTTPClient-ийн HTTP CONNECT интерфейс биш. Тэр ах нь энгийн FTP-г HTTP туннелээр зохицуулдаг; портыг нь өөрчлөх нь FTPS нэмэхгүй. Хэрэв сүлжээ зөвхөн HTTP прокси зөвшөөрвөл удирдлага болон өгөгдлийн хоёр замд CONNECT дэмждэг FTPS хэрэгжүүлэлт эсвэл арчлагдсан тохируулгыг сонгоно.
Прокси тохиргоог клиентийн бүх амьдралын мөчлөгт хадгалж, дахин ашигласан хувилбарыг дахин холбохын өмнө хянана: FTPS салгалт socket үйлдвэрүүдийг дахин тохируулна. Замыг амжилттай харагдуулахын тулд гэрчилгээний шалгалтыг trust-all manager-аар солихгүй.