in protocols/managesieve/src/main/java/org/apache/james/managesieve/transcode/ManageSieveProcessor.java [87:130]
private String matchCommandWithImplementation(Session session, String arguments, String command) throws SessionTerminatedException {
if (session.getState() == Session.State.AUTHENTICATION_IN_PROGRESS) {
return argumentParser.authenticate(session, arguments);
}
if (command.equalsIgnoreCase(AUTHENTICATE)) {
if (StringUtils.countMatches(arguments, "\"") == 4) {
argumentParser.chooseMechanism(session, arguments);
int bracket1 = arguments.indexOf('\"');
int bracket2 = arguments.indexOf('\"', bracket1 + 1);
int bracket3 = arguments.indexOf('\"', bracket2 + 1);
int bracket4 = arguments.indexOf('\"', bracket3 + 1);
return argumentParser.authenticate(session, arguments.substring(bracket3 + 1, bracket4));
}
return argumentParser.chooseMechanism(session, arguments);
} else if (command.equalsIgnoreCase(CAPABILITY)) {
return argumentParser.capability(session, arguments);
} else if (command.equalsIgnoreCase(CHECKSCRIPT)) {
return argumentParser.checkScript(session, arguments);
} else if (command.equalsIgnoreCase(DELETESCRIPT)) {
return argumentParser.deleteScript(session, arguments);
} else if (command.equalsIgnoreCase(GETSCRIPT)) {
return argumentParser.getScript(session, arguments);
} else if (command.equalsIgnoreCase(HAVESPACE)) {
return argumentParser.haveSpace(session, arguments);
} else if (command.equalsIgnoreCase(LISTSCRIPTS)) {
return argumentParser.listScripts(session, arguments);
} else if (command.equalsIgnoreCase(LOGOUT)) {
argumentParser.logout();
} else if (command.equalsIgnoreCase(NOOP)) {
return argumentParser.noop(arguments);
} else if (command.equalsIgnoreCase(PUTSCRIPT)) {
return argumentParser.putScript(session, arguments);
} else if (command.equalsIgnoreCase(RENAMESCRIPT)) {
return argumentParser.renameScript(session, arguments);
} else if (command.equalsIgnoreCase(SETACTIVE)) {
return argumentParser.setActive(session, arguments);
} else if (command.equalsIgnoreCase(STARTTLS)) {
return argumentParser.startTLS(session);
} else if (command.equalsIgnoreCase(UNAUTHENTICATE)) {
return argumentParser.unauthenticate(session, arguments);
}
return "NO unknown " + command + " command";
}