// get required parameters
PostRequest postReq = new PostRequest();
try {
postReq.parse(req, null, false);
} catch (Exception e) {
return new Failure(e.getMessage());
}
String username = postReq.getFormField(LoginPage.USERNAME);
String enteredPw = postReq.getFormField(LoginPage.PASSWORD);
if (username == null) {
return new Failure("No username given.");
}
if (username.length() > 40) {
return new Failure("Too long username entered.");
}
if (enteredPw == null) {
return new Failure("No password given.");
}
// lookup user
HttpSession session = req.getSession();
ServletContext ctx = session.getServletContext();
XadoopConfig config = (XadoopConfig) ctx.getAttribute(XadoopConstants.CTX_CONFIG);
HashMap<String, String> userMap = config.getUserMap();
String storedPw = userMap.get(username);
if (storedPw != null) {
if (storedPw.equals(enteredPw)) {
// store login in session and return success (null)
session.setAttribute(SessionAttrs.USERNAME, username);
return new Success("");
} else {
return new Failure("Wrong password for user " + username + " entered.");
}
} else {
return new Failure("Username does not exist.");
}
}