Commons Net ના FTPSClient માટે SOCKS માર્ગ
સર્વરનું હોસ્ટનામ, નિષ્ક્રિય ડેટા જોડાણો અને TLS ચકાસણી જાળવી રાખીને FTPS માટે Commons Net નું સોકેટ-પ્રોક્સી ઇન્ટરફેસ વાપરો.
SOCKS મધ્યસ્થી ઉપલબ્ધ હોય ત્યારે Commons Net નું FTPSClient વારસાગત સોકેટ-પ્રોક્સી ઇન્ટરફેસ વાપરી શકે છે. 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 અમલીકરણ પોતાનું ડેટા સોકેટ પણ ગોઠવેલા પ્રોક્સી દ્વારા બનાવે છે અને પછી TLS સ્તર ઉમેરે છે. લોગિન પછી નિષ્ક્રિય મોડ વાપરો અને સામાન્ય FTPS API દ્વારા જરૂરી સુરક્ષિત ડેટા ચેનલની વાટાઘાટ કરો. સફળ નિયંત્રણ જોડાણ એ કામ પૂર્ણ કરતું નથી; નિષ્ક્રિય ડેટા જોડાણ અલગ માર્ગ જ રહે છે.
કોડ વધારાનું ખાતું ન હોય તેવી SOCKS સેવા ધારે છે. પ્રમાણીકરણ સપોર્ટ માટે પસંદ કરેલા Java રનટાઇમ અને ડિપ્લોયમેન્ટની અલગ સમીક્ષા જરૂરી છે.
આ FTPHTTPClient નું HTTP CONNECT ઇન્ટરફેસ નથી. તે સહોદર HTTP ટનલ પર સામાન્ય FTP સંભાળે છે; તેનો પોર્ટ બદલવાથી FTPS ઉમેરાતું નથી. જો નેટવર્ક ફક્ત HTTP પ્રોક્સીની મંજૂરી આપે, તો કંટ્રોલ અને ડેટા બંને માર્ગો પર CONNECT સમર્થન ધરાવતું FTPS અમલીકરણ કે જાળવવામાં આવતું અનુકૂલન પસંદ કરો.
ક્લાયન્ટના જીવનચક્ર દરમિયાન પ્રોક્સી ગોઠવણી જાળવો અને ફરી વપરાયેલા ઇન્સ્ટન્સને ફરી જોડતાં પહેલાં તેની સમીક્ષા કરો: FTPS ડિસ્કનેક્શન સોકેટ ફેક્ટરીઓ રીસેટ કરે છે. માર્ગ સફળ દેખાય તે માટે પ્રમાણપત્ર ચકાસણીઓને trust-all manager થી બદલશો નહીં.