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 ನಿಂದ ಬದಲಾಯಿಸಬೇಡಿ.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು