Package org.apache.commons.net.ftp
Class FTPSClient
java.lang.Object
org.apache.commons.net.SocketClient
org.apache.commons.net.ftp.FTP
org.apache.commons.net.ftp.FTPClient
org.apache.commons.net.ftp.FTPSClient
- All Implemented Interfaces:
Configurable
FTP over SSL processing. If desired, the JVM property -Djavax.net.debug=all can be used to
see wire-level SSL details.
Warning: the hostname is not verified against the certificate by default, use
setHostnameVerifier(HostnameVerifier)
or setEndpointCheckingEnabled(boolean)
(on Java 1.7+) to enable verification. Verification is only performed on client mode connections.- Since:
- 2.0
- Version:
- $Id: FTPSClient.java 1747829 2016-06-11 00:57:57Z sebb $
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.commons.net.ftp.FTPClient
FTPClient.HostnameResolver, FTPClient.NatServerResolverImpl
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate String
The AUTH Command valueprivate static final String
The ADAT (Authentication/Security Data) command.private static final String
The AUTH (Authentication/Security Mechanism) command.private static final String
The CCC (Clear Command Channel) command.private static final String
The CONF (Confidentiality Protected Command) command.private static final String
The ENC (Privacy Protected Command) command.private static final String
The MIC (Integrity Protected Command) command.private static final String
The PBSZ (Protection Buffer Size) command.private static final String
The PROT (Data Channel Protection Level) command.private SSLContext
The context object.static final int
static final int
private static final String
Default PROT Commandprivate static final String
Default secure socket protocol name, i.e.private HostnameVerifier
TheHostnameVerifier
to use post-TLS, default null (i.e.private boolean
The use client mode flag.private boolean
Controls whether a new SSL session may be established by this socket.private final boolean
The security mode.private boolean
The need client auth flag.private boolean
The want client auth flag.private KeyManager
TheKeyManager
, default null (i.e.static String
Deprecated.- not used - may be removed in a future releaseprivate Socket
The socket object.private static final String[]
The value that I can set in PROT command (C = Clear, P = Protected)private final String
The secure socket protocol to be used, e.g.private String[]
The protocol versionsstatic String
Deprecated.- not used - may be removed in a future releasestatic String
Deprecated.- not used - may be removed in a future releaseprivate String[]
The cipher suitesprivate boolean
Use Java 1.7+ HTTPS Endpoint Identification Algorithim.private TrustManager
The FTPSTrustManager
implementation, default validate onlyTrustManagerUtils.getValidateServerCertificateTrustManager()
.static String
Deprecated.- not used - may be removed in a future releaseFields inherited from class org.apache.commons.net.ftp.FTPClient
ACTIVE_LOCAL_DATA_CONNECTION_MODE, ACTIVE_REMOTE_DATA_CONNECTION_MODE, FTP_SYSTEM_TYPE, FTP_SYSTEM_TYPE_DEFAULT, PASSIVE_LOCAL_DATA_CONNECTION_MODE, PASSIVE_REMOTE_DATA_CONNECTION_MODE, SYSTEM_TYPE_PROPERTIES
Fields inherited from class org.apache.commons.net.ftp.FTP
_commandSupport_, _controlEncoding, _controlInput_, _controlOutput_, _newReplyString, _replyCode, _replyLines, _replyString, ASCII_FILE_TYPE, BINARY_FILE_TYPE, BLOCK_TRANSFER_MODE, CARRIAGE_CONTROL_TEXT_FORMAT, COMPRESSED_TRANSFER_MODE, DEFAULT_CONTROL_ENCODING, DEFAULT_DATA_PORT, DEFAULT_PORT, EBCDIC_FILE_TYPE, FILE_STRUCTURE, LOCAL_FILE_TYPE, NON_PRINT_TEXT_FORMAT, PAGE_STRUCTURE, RECORD_STRUCTURE, REPLY_CODE_LEN, STREAM_TRANSFER_MODE, strictMultilineParsing, TELNET_TEXT_FORMAT
Fields inherited from class org.apache.commons.net.SocketClient
_defaultPort_, _hostname_, _input_, _output_, _serverSocketFactory_, _socket_, _socketFactory_, _timeout_, connectTimeout, NETASCII_EOL
-
Constructor Summary
ConstructorsConstructorDescriptionConstructor for FTPSClient, callsFTPSClient(String, boolean)
.FTPSClient
(boolean isImplicit) Constructor for FTPSClient, usingDEFAULT_PROTOCOL
- i.e.FTPSClient
(boolean isImplicit, SSLContext context) Constructor for FTPSClient, usingDEFAULT_PROTOCOL
- i.e.FTPSClient
(String protocol) Constructor for FTPSClient, using explict mode, callsFTPSClient(String, boolean)
.FTPSClient
(String protocol, boolean isImplicit) Constructor for FTPSClient allowing specification of protocol and security mode.FTPSClient
(SSLContext context) Constructor for FTPSClient, usingDEFAULT_PROTOCOL
- i.e. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
Because there are so many connect() methods, the _connectAction_() method is provided as a means of performing some action immediately after establishing a connection, rather than reimplementing all of the connect() methods.protected Socket
_openDataConnection_
(int command, String arg) Deprecated.(3.3) UseFTPClient._openDataConnection_(FTPCmd, String)
insteadprotected Socket
_openDataConnection_
(String command, String arg) Returns a socket of the data connection.protected void
_prepareDataSocket_
(Socket socket) Performs any custom initialization for a newly created SSLSocket (before the SSL handshake happens).private boolean
checkPROTValue
(String prot) Check the value that can be set in PROT Command value.void
Closes the connection to the FTP server and restores connection parameters to the default values.int
execADAT
(byte[] data) Send the ADAT command with the specified authentication data.protected void
execAUTH()
AUTH command.int
Send the AUTH command with the specified mechanism.int
execCCC()
Send the CCC command to the server.int
execCONF
(byte[] data) Send the CONF command with the specified data.int
execENC
(byte[] data) Send the ENC command with the specified data.int
execMIC
(byte[] data) Send the MIC command with the specified data.void
execPBSZ
(long pbsz) PBSZ command.void
PROT command.private String
extractPrefixedData
(String prefix, String reply) Extract the data from a reply with a prefix, e.g.Return AUTH command use value.String[]
Returns the names of the cipher suites which could be enabled for use on this connection.String[]
Returns the names of the protocol versions which are currently enabled for use on this connection.boolean
Returns true if new SSL sessions may be established by this socket.Get the currently configuredHostnameVerifier
.private KeyManager
Get theKeyManager
instance.boolean
Returns true if the socket will require client authentication.Get the currently configuredTrustManager
.boolean
Returns true if the socket is set to use client mode in its first handshake.boolean
Returns true if the socket will request client authentication.private void
Performs a lazy init of the SSL contextboolean
Return whether or not endpoint identification using the HTTPS algorithm on Java 1.7+ is enabled.byte[]
parseADATReply
(String reply) Parses the given ADAT response line and base64-decodes the data.long
parsePBSZ
(long pbsz) PBSZ command.int
sendCommand
(String command, String args) Send an FTP command.void
setAuthValue
(String auth) Set AUTH command use value.void
setEnabledCipherSuites
(String[] cipherSuites) Controls which particular cipher suites are enabled for use on this connection.void
setEnabledProtocols
(String[] protocolVersions) Controls which particular protocol versions are enabled for use on this connection.void
setEnabledSessionCreation
(boolean isCreation) Controls whether a new SSL session may be established by this socket.void
setEndpointCheckingEnabled
(boolean enable) Automatic endpoint identification checking using the HTTPS algorithm is supported on Java 1.7+.void
setHostnameVerifier
(HostnameVerifier newHostnameVerifier) Override the defaultHostnameVerifier
to use.void
setKeyManager
(KeyManager keyManager) Set aKeyManager
to usevoid
setNeedClientAuth
(boolean isNeedClientAuth) Configures the socket to require client authentication.void
setTrustManager
(TrustManager trustManager) Override the defaultTrustManager
to use; if set tonull
, the default TrustManager from the JVM will be used.void
setUseClientMode
(boolean isClientMode) Configures the socket to use client (or server) mode in its first handshake.void
setWantClientAuth
(boolean isWantClientAuth) Configures the socket to request client authentication, but only if such a request is appropriate to the cipher suite negotiated.protected void
SSL/TLS negotiation.Methods inherited from class org.apache.commons.net.ftp.FTPClient
__createParser, __parsePathname, _connectAction_, _openDataConnection_, _parseExtendedPassiveModeReply, _parsePassiveModeReply, _retrieveFile, _retrieveFileStream, _storeFile, _storeFileStream, abort, allocate, allocate, appendFile, appendFileStream, changeToParentDirectory, changeWorkingDirectory, completePendingCommand, configure, deleteFile, doCommand, doCommandAsStrings, enterLocalActiveMode, enterLocalPassiveMode, enterRemoteActiveMode, enterRemotePassiveMode, features, featureValue, featureValues, getAutodetectUTF8, getBufferSize, getControlKeepAliveReplyTimeout, getControlKeepAliveTimeout, getCopyStreamListener, getDataConnectionMode, getEntryParser, getListArguments, getListHiddenFiles, getModificationTime, getPassiveHost, getPassiveLocalIPAddress, getPassivePort, getReceiveDataSocketBufferSize, getRestartOffset, getSendDataSocketBufferSize, getStatus, getStatus, getSystemName, getSystemType, hasFeature, hasFeature, initiateListParsing, initiateListParsing, initiateListParsing, isRemoteVerificationEnabled, isUseEPSVwithIPv4, listDirectories, listDirectories, listFiles, listFiles, listFiles, listHelp, listHelp, listNames, listNames, login, login, logout, makeDirectory, mdtmFile, mlistDir, mlistDir, mlistDir, mlistFile, printWorkingDirectory, reinitialize, remoteAppend, remoteRetrieve, remoteStore, remoteStoreUnique, remoteStoreUnique, removeDirectory, rename, restart, retrieveFile, retrieveFileStream, sendNoOp, sendSiteCommand, setActiveExternalIPAddress, setActivePortRange, setAutodetectUTF8, setBufferSize, setControlKeepAliveReplyTimeout, setControlKeepAliveTimeout, setCopyStreamListener, setDataTimeout, setFileStructure, setFileTransferMode, setFileType, setFileType, setListHiddenFiles, setModificationTime, setParserFactory, setPassiveLocalIPAddress, setPassiveLocalIPAddress, setPassiveNatWorkaround, setPassiveNatWorkaroundStrategy, setReceieveDataSocketBufferSize, setRemoteVerificationEnabled, setReportActiveExternalIPAddress, setRestartOffset, setSendDataSocketBufferSize, setUseEPSVwithIPv4, storeFile, storeFileStream, storeUniqueFile, storeUniqueFile, storeUniqueFileStream, storeUniqueFileStream, structureMount
Methods inherited from class org.apache.commons.net.ftp.FTP
__getReplyNoReport, __noop, abor, acct, allo, allo, appe, cdup, cwd, dele, eprt, epsv, feat, getCommandSupport, getControlEncoding, getReply, getReplyCode, getReplyString, getReplyStrings, help, help, isStrictMultilineParsing, isStrictReplyParsing, list, list, mdtm, mfmt, mkd, mlsd, mlsd, mlst, mlst, mode, nlst, nlst, noop, pass, pasv, port, pwd, quit, rein, rest, retr, rmd, rnfr, rnto, sendCommand, sendCommand, sendCommand, sendCommand, sendCommand, setControlEncoding, setStrictMultilineParsing, setStrictReplyParsing, site, smnt, stat, stat, stor, stou, stou, stru, syst, type, type, user
Methods inherited from class org.apache.commons.net.SocketClient
addProtocolCommandListener, connect, connect, connect, connect, connect, connect, createCommandSupport, fireCommandSent, fireReplyReceived, getCharset, getCharsetName, getConnectTimeout, getDefaultPort, getDefaultTimeout, getKeepAlive, getLocalAddress, getLocalPort, getProxy, getReceiveBufferSize, getRemoteAddress, getRemotePort, getSendBufferSize, getServerSocketFactory, getSoLinger, getSoTimeout, getTcpNoDelay, isAvailable, isConnected, removeProtocolCommandListener, setCharset, setConnectTimeout, setDefaultPort, setDefaultTimeout, setKeepAlive, setProxy, setReceiveBufferSize, setSendBufferSize, setServerSocketFactory, setSocketFactory, setSoLinger, setSoTimeout, setTcpNoDelay, verifyRemote
-
Field Details
-
DEFAULT_FTPS_DATA_PORT
public static final int DEFAULT_FTPS_DATA_PORT- See Also:
-
DEFAULT_FTPS_PORT
public static final int DEFAULT_FTPS_PORT- See Also:
-
PROT_COMMAND_VALUE
The value that I can set in PROT command (C = Clear, P = Protected) -
DEFAULT_PROT
Default PROT Command- See Also:
-
DEFAULT_PROTOCOL
Default secure socket protocol name, i.e. TLS- See Also:
-
CMD_AUTH
The AUTH (Authentication/Security Mechanism) command.- See Also:
-
CMD_ADAT
The ADAT (Authentication/Security Data) command.- See Also:
-
CMD_PROT
The PROT (Data Channel Protection Level) command.- See Also:
-
CMD_PBSZ
The PBSZ (Protection Buffer Size) command.- See Also:
-
CMD_MIC
The MIC (Integrity Protected Command) command.- See Also:
-
CMD_CONF
The CONF (Confidentiality Protected Command) command.- See Also:
-
CMD_ENC
The ENC (Privacy Protected Command) command.- See Also:
-
CMD_CCC
The CCC (Clear Command Channel) command.- See Also:
-
isImplicit
private final boolean isImplicitThe security mode. (True - Implicit Mode / False - Explicit Mode) -
protocol
The secure socket protocol to be used, e.g. SSL/TLS. -
auth
The AUTH Command value -
context
The context object. -
plainSocket
The socket object. -
isCreation
private boolean isCreationControls whether a new SSL session may be established by this socket. Default true. -
isClientMode
private boolean isClientModeThe use client mode flag. -
isNeedClientAuth
private boolean isNeedClientAuthThe need client auth flag. -
isWantClientAuth
private boolean isWantClientAuthThe want client auth flag. -
suites
The cipher suites -
protocols
The protocol versions -
trustManager
The FTPSTrustManager
implementation, default validate onlyTrustManagerUtils.getValidateServerCertificateTrustManager()
. -
keyManager
TheKeyManager
, default null (i.e. use system default). -
hostnameVerifier
TheHostnameVerifier
to use post-TLS, default null (i.e. no verification). -
tlsEndpointChecking
private boolean tlsEndpointCheckingUse Java 1.7+ HTTPS Endpoint Identification Algorithim. -
KEYSTORE_ALGORITHM
Deprecated.- not used - may be removed in a future release -
TRUSTSTORE_ALGORITHM
Deprecated.- not used - may be removed in a future release -
PROVIDER
Deprecated.- not used - may be removed in a future release -
STORE_TYPE
Deprecated.- not used - may be removed in a future release
-
-
Constructor Details
-
FTPSClient
public FTPSClient()Constructor for FTPSClient, callsFTPSClient(String, boolean)
. Sets protocol toDEFAULT_PROTOCOL
- i.e. TLS - and security mode to explicit (isImplicit = false) -
FTPSClient
public FTPSClient(boolean isImplicit) Constructor for FTPSClient, usingDEFAULT_PROTOCOL
- i.e. TLS CallsFTPSClient(String, boolean)
- Parameters:
isImplicit
- The security mode (Implicit/Explicit).
-
FTPSClient
Constructor for FTPSClient, using explict mode, callsFTPSClient(String, boolean)
.- Parameters:
protocol
- the protocol to use
-
FTPSClient
Constructor for FTPSClient allowing specification of protocol and security mode. If isImplicit is true, the port is set toDEFAULT_FTPS_PORT
i.e. 990. The default TrustManager is set fromTrustManagerUtils.getValidateServerCertificateTrustManager()
- Parameters:
protocol
- the protocolisImplicit
- The security mode(Implicit/Explicit).
-
FTPSClient
Constructor for FTPSClient, usingDEFAULT_PROTOCOL
- i.e. TLS The default TrustManager is set fromTrustManagerUtils.getValidateServerCertificateTrustManager()
- Parameters:
isImplicit
- The security mode(Implicit/Explicit).context
- A pre-configured SSL Context
-
FTPSClient
Constructor for FTPSClient, usingDEFAULT_PROTOCOL
- i.e. TLS and isImplicitfalse
CallsFTPSClient(boolean, SSLContext)
- Parameters:
context
- A pre-configured SSL Context
-
-
Method Details
-
setAuthValue
Set AUTH command use value. This processing is done before connected processing.- Parameters:
auth
- AUTH command use value.
-
getAuthValue
Return AUTH command use value.- Returns:
- AUTH command use value.
-
_connectAction_
Because there are so many connect() methods, the _connectAction_() method is provided as a means of performing some action immediately after establishing a connection, rather than reimplementing all of the connect() methods.- Overrides:
_connectAction_
in classFTPClient
- Throws:
IOException
- If it throw by _connectAction_.- See Also:
-
execAUTH
AUTH command.- Throws:
SSLException
- If it server reply code not equal "234" and "334".IOException
- If an I/O error occurs while either sending the command.
-
initSslContext
Performs a lazy init of the SSL context- Throws:
IOException
-
sslNegotiation
SSL/TLS negotiation. Acquires an SSL socket of a control connection and carries out handshake processing.- Throws:
IOException
- If server negotiation fails
-
getKeyManager
Get theKeyManager
instance.- Returns:
- The
KeyManager
instance
-
setKeyManager
Set aKeyManager
to use- Parameters:
keyManager
- The KeyManager implementation to set.- See Also:
-
setEnabledSessionCreation
public void setEnabledSessionCreation(boolean isCreation) Controls whether a new SSL session may be established by this socket.- Parameters:
isCreation
- The established socket flag.
-
getEnableSessionCreation
public boolean getEnableSessionCreation()Returns true if new SSL sessions may be established by this socket. When the underlyingSocket
instance is not SSL-enabled (i.e. an instance ofSSLSocket
withSSLSocket
getEnableSessionCreation()
) enabled, this returns False.- Returns:
- true - Indicates that sessions may be created; this is the default. false - indicates that an existing session must be resumed.
-
setNeedClientAuth
public void setNeedClientAuth(boolean isNeedClientAuth) Configures the socket to require client authentication.- Parameters:
isNeedClientAuth
- The need client auth flag.
-
getNeedClientAuth
public boolean getNeedClientAuth()Returns true if the socket will require client authentication. When the underlyingSocket
is not anSSLSocket
instance, returns false.- Returns:
- true - If the server mode socket should request that the client authenticate itself.
-
setWantClientAuth
public void setWantClientAuth(boolean isWantClientAuth) Configures the socket to request client authentication, but only if such a request is appropriate to the cipher suite negotiated.- Parameters:
isWantClientAuth
- The want client auth flag.
-
getWantClientAuth
public boolean getWantClientAuth()Returns true if the socket will request client authentication. When the underlyingSocket
is not anSSLSocket
instance, returns false.- Returns:
- true - If the server mode socket should request that the client authenticate itself.
-
setUseClientMode
public void setUseClientMode(boolean isClientMode) Configures the socket to use client (or server) mode in its first handshake.- Parameters:
isClientMode
- The use client mode flag.
-
getUseClientMode
public boolean getUseClientMode()Returns true if the socket is set to use client mode in its first handshake. When the underlyingSocket
is not anSSLSocket
instance, returns false.- Returns:
- true - If the socket should start its first handshake in "client" mode.
-
setEnabledCipherSuites
Controls which particular cipher suites are enabled for use on this connection. Called before server negotiation.- Parameters:
cipherSuites
- The cipher suites.
-
getEnabledCipherSuites
Returns the names of the cipher suites which could be enabled for use on this connection. When the underlyingSocket
is not anSSLSocket
instance, returns null.- Returns:
- An array of cipher suite names, or
null
-
setEnabledProtocols
Controls which particular protocol versions are enabled for use on this connection. I perform setting before a server negotiation.- Parameters:
protocolVersions
- The protocol versions.
-
getEnabledProtocols
Returns the names of the protocol versions which are currently enabled for use on this connection. When the underlyingSocket
is not anSSLSocket
instance, returns null.- Returns:
- An array of protocols, or
null
-
execPBSZ
PBSZ command. pbsz value: 0 to (2^32)-1 decimal integer.- Parameters:
pbsz
- Protection Buffer Size.- Throws:
SSLException
- If the server reply code does not equal "200".IOException
- If an I/O error occurs while sending the command.- See Also:
-
parsePBSZ
PBSZ command. pbsz value: 0 to (2^32)-1 decimal integer. Issues the command and parses the response to return the negotiated value.- Parameters:
pbsz
- Protection Buffer Size.- Returns:
- the negotiated value.
- Throws:
SSLException
- If the server reply code does not equal "200".IOException
- If an I/O error occurs while sending the command.- Since:
- 3.0
- See Also:
-
execPROT
PROT command.- C - Clear
- S - Safe(SSL protocol only)
- E - Confidential(SSL protocol only)
- P - Private
SocketClient.setSocketFactory(javax.net.SocketFactory)
andSocketClient.setServerSocketFactory(javax.net.ServerSocketFactory)
- Parameters:
prot
- Data Channel Protection Level, ifnull
, useDEFAULT_PROT
.- Throws:
SSLException
- If the server reply code does not equal200
.IOException
- If an I/O error occurs while sending the command.
-
checkPROTValue
Check the value that can be set in PROT Command value.- Parameters:
prot
- Data Channel Protection Level.- Returns:
- True - A set point is right / False - A set point is not right
-
sendCommand
Send an FTP command. A successful CCC (Clear Command Channel) command causes the underlyingSSLSocket
instance to be assigned to a plainSocket
- Overrides:
sendCommand
in classFTP
- Parameters:
command
- The FTP command.args
- The arguments to the FTP command. If this parameter is set to null, then the command is sent with no argument.- Returns:
- server reply.
- Throws:
IOException
- If an I/O error occurs while sending the command.SSLException
- if a CCC command fails- See Also:
-
_openDataConnection_
Deprecated.(3.3) UseFTPClient._openDataConnection_(FTPCmd, String)
insteadReturns a socket of the data connection. Wrapped as anSSLSocket
, which carries out handshake processing.- Overrides:
_openDataConnection_
in classFTPClient
- Parameters:
command
- The int representation of the FTP command to send.arg
- The arguments to the FTP command. If this parameter is set to null, then the command is sent with no arguments.- Returns:
- corresponding to the established data connection. Null is returned if an FTP protocol error is reported at any point during the establishment and initialization of the connection.
- Throws:
IOException
- If there is any problem with the connection.- See Also:
-
_openDataConnection_
Returns a socket of the data connection. Wrapped as anSSLSocket
, which carries out handshake processing.- Overrides:
_openDataConnection_
in classFTPClient
- Parameters:
command
- The textual representation of the FTP command to send.arg
- The arguments to the FTP command. If this parameter is set to null, then the command is sent with no arguments.- Returns:
- corresponding to the established data connection. Null is returned if an FTP protocol error is reported at any point during the establishment and initialization of the connection.
- Throws:
IOException
- If there is any problem with the connection.- Since:
- 3.2
- See Also:
-
_prepareDataSocket_
Performs any custom initialization for a newly created SSLSocket (before the SSL handshake happens). Called by_openDataConnection_(int, String)
immediately after creating the socket. The default implementation is a no-op- Parameters:
socket
- the socket to set up- Throws:
IOException
- on error- Since:
- 3.1
-
getTrustManager
Get the currently configuredTrustManager
.- Returns:
- A TrustManager instance.
-
setTrustManager
Override the defaultTrustManager
to use; if set tonull
, the default TrustManager from the JVM will be used.- Parameters:
trustManager
- The TrustManager implementation to set, may benull
- See Also:
-
getHostnameVerifier
Get the currently configuredHostnameVerifier
. The verifier is only used on client mode connections.- Returns:
- A HostnameVerifier instance.
- Since:
- 3.4
-
setHostnameVerifier
Override the defaultHostnameVerifier
to use. The verifier is only used on client mode connections.- Parameters:
newHostnameVerifier
- The HostnameVerifier implementation to set ornull
to disable.- Since:
- 3.4
-
isEndpointCheckingEnabled
public boolean isEndpointCheckingEnabled()Return whether or not endpoint identification using the HTTPS algorithm on Java 1.7+ is enabled. The default behaviour is for this to be disabled. This check is only performed on client mode connections.- Returns:
- True if enabled, false if not.
- Since:
- 3.4
-
setEndpointCheckingEnabled
public void setEndpointCheckingEnabled(boolean enable) Automatic endpoint identification checking using the HTTPS algorithm is supported on Java 1.7+. The default behaviour is for this to be disabled. This check is only performed on client mode connections.- Parameters:
enable
- Enable automatic endpoint identification checking using the HTTPS algorithm on Java 1.7+.- Since:
- 3.4
-
disconnect
Closes the connection to the FTP server and restores connection parameters to the default values.Calls
setSocketFactory(null)
andsetServerSocketFactory(null)
to reset the factories that may have been changed during the session, e.g. byexecPROT(String)
- Overrides:
disconnect
in classFTPClient
- Throws:
IOException
- If an error occurs while disconnecting.- Since:
- 3.0
-
execAUTH
Send the AUTH command with the specified mechanism.- Parameters:
mechanism
- The mechanism name to send with the command.- Returns:
- server reply.
- Throws:
IOException
- If an I/O error occurs while sending the command.- Since:
- 3.0
-
execADAT
Send the ADAT command with the specified authentication data.- Parameters:
data
- The data to send with the command.- Returns:
- server reply.
- Throws:
IOException
- If an I/O error occurs while sending the command.- Since:
- 3.0
-
execCCC
Send the CCC command to the server. The CCC (Clear Command Channel) command causes the underlyingSSLSocket
instance to be assigned to a plainSocket
instances- Returns:
- server reply.
- Throws:
IOException
- If an I/O error occurs while sending the command.- Since:
- 3.0
-
execMIC
Send the MIC command with the specified data.- Parameters:
data
- The data to send with the command.- Returns:
- server reply.
- Throws:
IOException
- If an I/O error occurs while sending the command.- Since:
- 3.0
-
execCONF
Send the CONF command with the specified data.- Parameters:
data
- The data to send with the command.- Returns:
- server reply.
- Throws:
IOException
- If an I/O error occurs while sending the command.- Since:
- 3.0
-
execENC
Send the ENC command with the specified data.- Parameters:
data
- The data to send with the command.- Returns:
- server reply.
- Throws:
IOException
- If an I/O error occurs while sending the command.- Since:
- 3.0
-
parseADATReply
Parses the given ADAT response line and base64-decodes the data.- Parameters:
reply
- The ADAT reply to parse.- Returns:
- the data in the reply, base64-decoded.
- Since:
- 3.0
-
extractPrefixedData
Extract the data from a reply with a prefix, e.g. PBSZ=1234 => 1234- Parameters:
prefix
- the prefix to findreply
- where to find the prefix- Returns:
- the remainder of the string after the prefix, or null if the prefix was not present.
-