@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; }