جب 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 پراکسی کی اجازت دیتا ہے، تو ایسا FTPS عمل درآمد یا برقرار رکھا گیا موافقت منتخب کریں جو کنٹرول اور ڈیٹا دونوں راستوں پر CONNECT کی تائید کرے۔

کلائنٹ کے پورے دور حیات میں پراکسی ترتیب رکھیں، اور دوبارہ استعمال شدہ مثال کو دوبارہ جوڑنے سے پہلے اس کا جائزہ لیں: FTPS کنکشن منقطع ہونے سے ساکٹ فیکٹریاں ری سیٹ ہو جاتی ہیں۔ راستہ کامیاب دکھانے کے لیے سرٹیفکیٹ جانچ کو trust-all manager سے نہ بدلیں۔

متعلقہ مضامین