package edu.gatech.oad.rocket.findmythings.server.web; import edu.gatech.oad.rocket.findmythings.server.model.MessageBean; import edu.gatech.oad.rocket.findmythings.server.util.Config; import edu.gatech.oad.rocket.findmythings.server.util.Messages; import org.apache.shiro.web.util.WebUtils; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Map; public class ForgotServlet extends RegisterServlet { /** * */ private static final long serialVersionUID = 6533847551106261631L; @Override protected void sendError(HttpServletRequest request, HttpServletResponse response, Messages.Register message) { request.setAttribute(MessageBean.FAILURE_REASON, message.toString()); try { doGet(request, response); } catch (IOException e) { throw new RuntimeException(e); } } @Override protected void sendOK(HttpServletRequest request, HttpServletResponse response) { try { writeDocument(response, "registerSubmitted.ftl", getParameterMap(request)); } catch (IOException e) { throw new RuntimeException(e); } } @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { writeDocument(response, "register.ftl", getParameterMap(request)); } @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { try { String email = WebUtils.getCleanParam(request, Config.USERNAME_PARAM); if (emailIsInvalid(email)) { sendError(request, response, Messages.Register.BAD_EMAIL_ADDRESS); return; } if (memberExistsWithEmail(email)) { mailAuthenticationTokenSendOK(request, response, email, true); } else { sendError(request, response, Messages.Register.NO_SUCH_MEMBER); } } catch (Exception e) { sendError(request, response, Messages.Register.INVALID_DATA); } } @Override protected void addParametersToMap(HttpServletRequest request, Map<String, Object> params) { super.addParametersToMap(request, params); params.put(Config.FORGOT_PASSWORD_PARAM, true); } }