عند توفر وسيط SOCKS، يستطيع FTPSClient في Commons Net استخدام واجهة وسيط المقبس الموروثة. أبقِ خادم 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 صريحًا. لا يزال التطبيق مسؤولًا عن تسجيل الدخول والتفاوض على حماية البيانات وإدارة النقل وقطع الاتصال. يختار إعداد مدير الثقة الفارغ مديري الثقة الافتراضيين في JVM بدلًا من فحص الشهادة بالتاريخ فقط في Commons Net. استخدم مخزن الثقة المقصود واسم مضيف شهادة الخادم.

في النقل السلبي، ينشئ تنفيذ FTPSClient الحالي مقبس البيانات عبر الوسيط المهيأ أيضًا، ثم يضيف طبقة TLS. بعد تسجيل الدخول، استخدم الوضع السلبي وتفاوض على قناة البيانات المحمية المطلوبة عبر واجهة FTPS العادية. لا يُنجز اتصال تحكم ناجح ذلك العمل؛ يبقى اتصال البيانات السلبي مسارًا منفصلًا.

يفترض الكود خدمة SOCKS دون حساب إضافي. يحتاج دعم المصادقة إلى مراجعة منفصلة لبيئة تشغيل Java والنشر المختارين.

هذه ليست واجهة HTTP CONNECT الخاصة بـFTPHTTPClient. يتعامل ذلك الشقيق مع FTP العادي عبر نفق HTTP؛ وتغيير منفذه لا يضيف FTPS. إذا لم تسمح الشبكة إلا بوسيط HTTP، فاختر تنفيذ FTPS أو تكييفًا مُصانًا يدعم CONNECT على مساري التحكم والبيانات معًا.

احتفظ بإعداد الوسيط طوال دورة حياة العميل، وراجعه قبل إعادة الاتصال بنسخة معادة الاستخدام: فقاطع اتصال FTPS يعيد ضبط مصانع المقابس. لا تستبدل فحوص الشهادة بمدير ثقة كامل لكي يبدو المسار ناجحًا.

مقالات ذات صلة