/** * Get request variable value. */ private static String getRequestVariableValue(FtpIoSession session, FtpRequest request, String varName) { String varVal = null; if (request == null) { return ""; } // request line if (varName.equals(REQUEST_LINE)) { varVal = request.getRequestLine(); } // request command else if (varName.equals(REQUEST_CMD)) { varVal = request.getCommand(); } // request argument else if (varName.equals(REQUEST_ARG)) { varVal = request.getArgument(); } return varVal; }
@Override public FtpletResult beforeCommand(FtpSession session, FtpRequest request) throws FtpException { if (session.getUser() != null) { Class<? extends Authority> authority = commandAuthorityMap.get(request.getCommand()); if (authority != null && session.getUser().getAuthorities(authority).isEmpty()) { session.write(new DefaultFtpReply(FtpReply.REPLY_450_REQUESTED_FILE_ACTION_NOT_TAKEN, "Permission denied")); return FtpletResult.SKIP; } } return null; }
public FtpletResult beforeCommand(FtpSession session, FtpRequest request) throws FtpException, IOException { String command = request.getCommand().toUpperCase(); if ("DELE".equals(command)) { return onDeleteStart(session, request); } else if ("STOR".equals(command)) { return onUploadStart(session, request); } else if ("RETR".equals(command)) { return onDownloadStart(session, request); } else if ("RMD".equals(command)) { return onRmdirStart(session, request); } else if ("MKD".equals(command)) { return onMkdirStart(session, request); } else if ("APPE".equals(command)) { return onAppendStart(session, request); } else if ("STOU".equals(command)) { return onUploadUniqueStart(session, request); } else if ("RNTO".equals(command)) { return onRenameStart(session, request); } else if ("SITE".equals(command)) { return onSite(session, request); } else { // TODO should we call a catch all? return null; } }
public FtpletResult afterCommand(FtpSession session, FtpRequest request, FtpReply reply) throws FtpException, IOException { // the reply is ignored for these callbacks String command = request.getCommand().toUpperCase(); if ("PASS".equals(command)) { return onLogin(session, request); } else if ("DELE".equals(command)) { return onDeleteEnd(session, request); } else if ("STOR".equals(command)) { return onUploadEnd(session, request); } else if ("RETR".equals(command)) { return onDownloadEnd(session, request); } else if ("RMD".equals(command)) { return onRmdirEnd(session, request); } else if ("MKD".equals(command)) { return onMkdirEnd(session, request); } else if ("APPE".equals(command)) { return onAppendEnd(session, request); } else if ("STOU".equals(command)) { return onUploadUniqueEnd(session, request); } else if ("RNTO".equals(command)) { return onRenameEnd(session, request); } else { // TODO should we call a catch all? return null; } }
if ("MMD5".equals(request.getCommand())) { isMMD5 = true;
session.updateLastAccessTime(); String commandName = request.getCommand(); CommandFactory commandFactory = context.getCommandFactory(); Command command = commandFactory.getCommand(commandName);