net.sf.hermesftp.cmd.impl
Class FtpCmdAuth

java.lang.Object
  extended by net.sf.hermesftp.cmd.AbstractFtpCmd
      extended by net.sf.hermesftp.cmd.impl.FtpCmdAuth
All Implemented Interfaces:
java.lang.Cloneable, java.util.EventListener, javax.net.ssl.HandshakeCompletedListener, ClientSocketModifier, FtpCmd, FtpConstants

public class FtpCmdAuth
extends AbstractFtpCmd
implements ClientSocketModifier, javax.net.ssl.HandshakeCompletedListener

AUTHENTICATION/SECURITY MECHANISM (AUTH)

The argument field is a Telnet string identifying a supported mechanism. This string is case-insensitive. Values must be registered with the IANA, except that values beginning with "X-" are reserved for local use.

If the server does not recognize the AUTH command, it must respond with reply code 500. This is intended to encompass the large deployed base of non-security-aware ftp servers, which will respond with reply code 500 to any unrecognized command. If the server does recognize the AUTH command but does not implement the security extensions, it should respond with reply code 502.

If the server does not understand the named security mechanism, it should respond with reply code 504.

If the server is not willing to accept the named security mechanism, it should respond with reply code 534.

If the server is not able to accept the named security mechanism, such as if a required resource is unavailable, it should respond with reply code 431.

If the server is willing to accept the named security mechanism, but requires security data, it must respond with reply code 334.

If the server is willing to accept the named security mechanism, and does not require any security data, it must respond with reply code 234.

If the server is responding with a 334 reply code, it may include security data as described in the next section.

Some servers will allow the AUTH command to be reissued in order to establish new authentication. The AUTH command, if accepted, removes any state associated with prior FTP Security commands. The server must also require that the user reauthorize (that is, reissue some or all of the USER, PASS, and ACCT commands) in this case (see section 4 of RFC2228 for an explanation of "authorize" in this context).

Author:
Lars Behnke

Field Summary
 
Fields inherited from interface net.sf.hermesftp.common.FtpConstants
ATTR_CLIENT_NAME, ATTR_DATA_PROT, ATTR_FILE_OFFSET, ATTR_FORCE_UTF8, ATTR_GROUP_DATA, ATTR_LOGIN_TIME, ATTR_RENAME_FILE, ATTR_RESTART_MARKERS, ATTR_SSL, ATTR_USER_DATA, BYTE_LENGTH, BYTE_MASK, DEFAULT_BEAN_RES, DEFAULT_KEYSTORE, DEFAULT_KEYSTORE_PASS, DT_ASCII, DT_BINARY, DT_EBCDIC, HERMES_HOME, MILLI, MODE_BLOCK, MODE_COMPRESS, MODE_STREAM, MODE_ZIP, MSG_GOODBYE, MSG150, MSG200, MSG200_NOTED, MSG200_PBSZ, MSG200_SIZE, MSG200_TYPE, MSG202, MSG211_FEAT_ENTRY, MSG211_FEAT_FOOTER, MSG211_FEAT_HEADER, MSG211_STAT, MSG213_SIZE, MSG213_TIME, MSG214, MSG220, MSG220_WEL, MSG226, MSG227, MSG229, MSG230, MSG234, MSG250, MSG257, MSG331, MSG350, MSG350_REST, MSG421, MSG425, MSG426, MSG431, MSG450, MSG451, MSG500, MSG500_CMD, MSG501, MSG501_PATH, MSG501_SIZE, MSG503, MSG503_USR, MSG504, MSG522, MSG530, MSG530_AUTH, MSG534, MSG536, MSG550, MSG550_COMM, MSG550_EXISTS, MSG550_MSG, MSG550_NOTEMPTY, MSG550_PERM, MSG553, OPT_ALLOWED_PASSIVE_PORTS, OPT_BUFFER_SIZE, OPT_CHARSET_ASCII, OPT_CHARSET_EBCDIC, OPT_EMULATE_UNIX, OPT_FTP_PORT, OPT_IPV4_BLACK_LIST, OPT_IPV6_BLACK_LIST, OPT_MAX_CONNECTIONS, OPT_MAX_DOWNLOAD_RATE, OPT_MAX_IDLE_SECONDS, OPT_MAX_UPLOAD_RATE, OPT_MSG_GOODBYE, OPT_MSG_WELCOME, OPT_REMOTE_DIR, OPT_SSL_ALLOW_EXPLICIT, OPT_SSL_ALLOW_IMPLICIT, OPT_SSL_CIPHER_SUITES, OPT_SSL_FORCE, OPT_SSL_KEYSTORE_FILE, OPT_SSL_KEYSTORE_PASS, OPT_SSL_PORT_IMPLICIT, PRIV_NONE, PRIV_READ, PRIV_READ_WRITE, PRIV_WRITE, PWD, SEPARATOR, SERVER_STATUS_HALTED, SERVER_STATUS_INIT, SERVER_STATUS_READY, SERVER_STATUS_UNDEF, SPACE, STAT_BYTES_DOWNLOADED, STAT_BYTES_UPLOADED, STAT_DOWNLOAD_RATE, STAT_FILES_DOWNLOADED, STAT_FILES_UPLOADED, STAT_UPLOAD_RATE, STRUCT_FILE, STRUCT_RECORD, TYPE_NAMES, WILDCARD
 
Constructor Summary
FtpCmdAuth()
           
 
Method Summary
 void execute()
          Some notes about SSL support: Use keytool to generate a keystore/key: keytool -genkey -alias behnke -keyalg DSA -keystore keystore -validity 365 -storepass secret -keypass secret The attributes keypass and storepass must be equal!
 java.lang.String getHelp()
          Returns a short help text for the command.
 void handshakeCompleted(javax.net.ssl.HandshakeCompletedEvent e)
          
 boolean isAuthenticationRequired()
          Returns whether authentication is needed or not.
 boolean socketModified()
          Indicates, whether the socket has already been modified.
 
Methods inherited from class net.sf.hermesftp.cmd.AbstractFtpCmd
getAbsPath, getAndResetFileOffset, getArguments, getCtx, getPathArg, getPermission, getToken, handleAsyncCmd, isResponded, msg, msg, msg, msgOut, msgOut, msgOut, out, setArguments, setCtx, setToken
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FtpCmdAuth

public FtpCmdAuth()
Method Detail

execute

public void execute()
             throws FtpCmdException
Some notes about SSL support: Use keytool to generate a keystore/key: keytool -genkey -alias behnke -keyalg DSA -keystore keystore -validity 365 -storepass secret -keypass secret The attributes keypass and storepass must be equal! Executes the command.

Specified by:
execute in interface FtpCmd
Throws:
FtpCmdException - Thrown on any exception occuring while the command is executed.

socketModified

public boolean socketModified()
Indicates, whether the socket has already been modified.

Specified by:
socketModified in interface ClientSocketModifier
Returns:
True, if socket has been modified.

getHelp

public java.lang.String getHelp()
Returns a short help text for the command.

Specified by:
getHelp in interface FtpCmd
Returns:
The help text.

isAuthenticationRequired

public boolean isAuthenticationRequired()
Returns whether authentication is needed or not.

Specified by:
isAuthenticationRequired in interface FtpCmd
Returns:
True, if the command requires authentication.

handshakeCompleted

public void handshakeCompleted(javax.net.ssl.HandshakeCompletedEvent e)

Specified by:
handshakeCompleted in interface javax.net.ssl.HandshakeCompletedListener


Copyright © 2005-2007 Lars Behnke. All Rights Reserved.