Cara Mengekalkan Sesi TLS untuk Sambungan Data dalam FTPS dengan Apache Commons Net
Masalah:
Menyambung ke pelayan FTPS yang memerlukan sambungan data untuk menggunakan sesi TLS yang sama seperti sambungan kawalan menggunakan Apache Commons Net.
Penyelesaian:
Keperluan:
Pelayan mesti menyokong penggunaan semula sesi TLS untuk sambungan data.
Apache Commons Net Mengatasi:
Timpa kaedah _prepareDataSocket_ dalam pelaksanaan FTPSClient tersuai untuk mengurus penggunaan semula sesi, sama seperti yang dilakukan Cyberduck dalam FTPClient.javanya.
Keserasian JDK:
Dalam Java 8u161 dan lebih baru, penggunaan semula sesi mungkin tidak bekerja secara lalai. Untuk mendayakannya:
System.setProperty("jdk.tls.useExtendedMasterSecret", "false");
Pelaksanaan Alternatif:
Pelaksanaan alternatif boleh didapati dalam isu Apache Commons Net JIRA berikut: https://issues.apache .org/jira/browse/NET-408.
Khusus Android Pertimbangan:
Untuk Android, pintasi sekatan SDK untuk mengakses medan pantulan bagi pengurusan sesi: https://issues.apache.org/jira/browse/NET-776.
Perubahan Post-Java 8u161:
Dalam versi Java yang lebih baharu, sessionsByHostAndPort harus digunakan dan bukannya sessionHostPortCache.
Atas ialah kandungan terperinci Bagaimana untuk Mengekalkan Penggunaan Semula Sesi TLS untuk Sambungan Data dalam FTPS dengan Apache Commons Net?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!