Երբ հասանելի է 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 կարգավորումը ընտրում է JVM-ի լռելյայն trust manager-ները՝ Commons Net-ի միայն ամսաթվով պայմանավորված վկայագրի ստուգման փոխարեն։ Օգտագործեք նախատեսված trust store-ը և սերվերի վկայագրի հոսթային անունը։

Պասիվ փոխանցումների դեպքում FTPSClient-ի ընթացիկ իրականացումը իր տվյալների socket-ը նույնպես ստեղծում է կարգավորված proxy-ի միջոցով, ապա ավելացնում TLS շերտը։ Մուտքից հետո օգտագործեք պասիվ ռեժիմ և սովորական FTPS API-ի միջոցով բանակցեք պահանջվող պաշտպանված տվյալների ալիքը։ Հաջող կառավարման միացումը չի ավարտում այդ աշխատանքը. պասիվ տվյալների միացումը մնում է առանձին ուղի։

Կոդը ենթադրում է SOCKS ծառայություն առանց լրացուցիչ հաշվի։ Նույնականացման աջակցությունը առանձին վերանայում է պահանջում ընտրված Java runtime-ի և տեղակայման համար։

Սա FTPHTTPClient-ի HTTP CONNECT ինտերֆեյսը չէ։ Այդ եղբայրը սովորական FTP-ն կառավարում է HTTP թունելով. նրա պորտը փոխելը FTPS չի ավելացնում։ Եթե ցանցը թույլ է տալիս միայն HTTP proxy, ընտրեք FTPS իրականացում կամ պահպանվող հարմարեցում, որն աջակցում է CONNECT-ին և՛ կառավարման, և՛ տվյալների ուղիներում։

Պահեք proxy կարգավորումը հաճախորդի ողջ կյանքի ընթացքում և վերանայեք այն կրկին օգտագործվող օրինակը վերամիացնելուց առաջ. FTPS-ի անջատումը վերակայում է socket գործարանները։ Մի փոխարինեք վկայագրի ստուգումները trust-all manager-ով, որպեսզի երթուղին հաջող թվա։

Առնչվող հոդվածներ