final HttpServletResponse rsp) throws IOException, ServletException {
rsp.setHeader("Expires", "Fri, 01 Jan 1980 00:00:00 GMT");
rsp.setHeader("Pragma", "no-cache");
rsp.setHeader("Cache-Control", "no-cache, must-revalidate");
final AuthResult res;
if ("create_account".equals(req.getParameter("action"))) {
res = create();
} else if (req.getParameter("user_name") != null) {
res = byUserName(rsp, req.getParameter("user_name"));
} else if (req.getParameter("preferred_email") != null) {
res = byPreferredEmail(rsp, req.getParameter("preferred_email"));
} else if (req.getParameter("account_id") != null) {
res = byAccountId(rsp, req.getParameter("account_id"));
} else {
byte[] raw;
try {
raw = prepareHtmlOutput();
} catch (OrmException e) {
throw new ServletException(e);
}
rsp.setContentType("text/html");
rsp.setCharacterEncoding(HtmlDomUtil.ENC);
rsp.setContentLength(raw.length);
final OutputStream out = rsp.getOutputStream();
try {
out.write(raw);
} finally {
out.close();
}
return;
}
if (res != null) {
webSession.get().login(res, AuthMethod.BACKDOOR, false);
final StringBuilder rdr = new StringBuilder();
rdr.append(req.getContextPath());
if (IS_DEV && req.getParameter("gwt.codesvr") != null) {
if (rdr.indexOf("?") < 0) {
rdr.append("?");
} else {
rdr.append("&");
}
rdr.append("gwt.codesvr=").append(req.getParameter("gwt.codesvr"));
}
rdr.append('#');
if (res.isNew()) {
rdr.append(PageLinks.REGISTER);
}
rdr.append(PageLinks.MINE);
rsp.sendRedirect(rdr.toString());