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 इन्टरफेस होइन। त्यो सहोदरले सामान्य FTP लाई HTTP सुरुङमार्फत व्यवस्थापन गर्छ; त्यसको पोर्ट बदल्दा FTPS थपिँदैन। यदि सञ्जालले HTTP प्रोक्सी मात्र अनुमति दिन्छ भने, नियन्त्रण र डेटा दुवै मार्गमा CONNECT समर्थन गर्ने FTPS कार्यान्वयन वा मर्मत गरिएको अनुकूलन छान्नुहोस्।
क्लाइन्टको सम्पूर्ण जीवनचक्रमा प्रोक्सी कन्फिगरेसन राख्नुहोस्, र पुनः प्रयोग गरिएको इन्स्ट्यान्स पुनः जोड्नुअघि यसको समीक्षा गर्नुहोस्: FTPS विच्छेदले सकेट कारखानाहरू रिसेट गर्छ। मार्ग सफल देखाउन प्रमाणपत्र जाँचलाई trust-all manager ले नबदल्नुहोस्।