Маршрут праз SOCKS для FTPSClient з Commons Net
Выкарыстоўвайце інтэрфейс socket-проксі Commons Net для FTPS, захоўваючы імя хоста сервера, пасіўныя злучэнні даных і праверку TLS.
Калі даступны пасярэднік SOCKS, FTPSClient з Commons Net можа выкарыстоўваць унаследаваны інтэрфейс socket-проксі. Пакіньце сервер 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. Праграма па-ранейшаму адказвае за ўваход, узгадненне абароны даных, кіраванне перадачай і адключэнне. Пустое значэнне trust-manager выбірае стандартныя trust manager-ы JVM, а не праверку сертыфіката толькі па даце ў Commons Net. Выкарыстоўвайце прызначанае сховішча даверу і імя хоста сертыфіката сервера.
Для пасіўных перадач бягучая рэалізацыя FTPSClient стварае сокет даных таксама праз наладжаны проксі, затым дадае ўзровень TLS. Пасля ўваходу выкарыстоўвайце пасіўны рэжым і ўзгадніце патрабаваны абаронены канал даных праз звычайны API FTPS. Паспяховае кантрольнае злучэнне не завяршае гэтую працу; пасіўнае злучэнне даных застаецца асобным шляхам.
Код мяркуе службу SOCKS без дадатковага ўліковага запісу. Падтрымка аўтэнтыфікацыі патрабуе асобнага разгляду для абранага асяроддзя Java і разгортвання.
Гэта не інтэрфейс HTTP CONNECT з FTPHTTPClient. Той пабрацім апрацоўвае звычайны FTP праз HTTP-тунель; змена яго порта не дадае FTPS. Калі сетка дазваляе толькі HTTP-проксі, выберыце рэалізацыю FTPS або адаптацыю, якая падтрымліваецца, з падтрымкай CONNECT як на кантрольным, так і на канале даных.
Захоўвайце налады проксі на працягу ўсяго жыццёвага цыкла кліента і пераглядайце іх перад паўторным падключэннем экзэмпляра: адключэнне FTPS скідвае фабрыкі сокетаў. Не замяняйце праверкі сертыфікатаў менеджэрам поўнага даверу, каб маршрут здаваўся паспяховым.