base.jee.servlet.PasswordResetServlet Maven / Gradle / Ivy
/**
* Creative commons Attribution-NonCommercial license.
*
* http://creativecommons.org/licenses/by-nc/2.5/au/deed.en_GB
*
* NO WARRANTY IS GIVEN OR IMPLIED, USE AT YOUR OWN RISK.
*/
package base.jee.servlet;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import base.StringQueryResult;
import org.stringtemplate.v4.ST;
import base.jee.Breadcrumb;
import base.jee.JeeBase;
import base.security.User;
/**
*/
public class PasswordResetServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private JeeBase jee;
public PasswordResetServlet(JeeBase jee) throws IOException {
this.jee = jee;
if(jee.getSettings().get("support_team.email", null) == null) {
jee.getSettings().set("support_team.email", "[email protected]");
}
if(jee.getSettings().get("support_team.name", null) == null) {
jee.getSettings().set("support_team.name", "Support Team");
}
}
/**
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("UTF-8");
String ip = BaseServlet.getIp(request);
String email = request.getParameter("email");
String token = request.getParameter("token");
String newPassword = request.getParameter("new_password");
String newPassword2 = request.getParameter("new_password2");
if(email == null) { email = ""; }
if(token == null) { token = ""; }
if(newPassword == null) { newPassword = ""; }
if(newPassword2 == null) { newPassword2 = ""; }
if(email.length() > 0) {
ST page = jee.getPage(new User(jee.getAPI().getUnauthenticatedRolesCache(), ip), "password_reset");
page.remove("shortcuts"); // Don't need shortcuts on this page
page.add("email", email);
page.add("ldap_enabled", jee.getSettings().get("ldap.enabled", "true").equalsIgnoreCase("true"));
page.add("breadcrumbs", new Breadcrumb("Reset your password", null));
if(request.getParameter("fail") != null) {
page.add("error", "error");
}
List t = jee.getAPI().requestPasswordResetEmail(jee.getTemplateManager(), email, BaseServlet.getIp(request));
if(t == null || t.size() < 1) {
page.add("error", "error");
} else {
page.add("info", "info");
}
response.getWriter().write(page.render());
} else if(newPassword.length() > 0) {
try {
jee.getAPI().resetPasswordUsingToken(token, newPassword, newPassword2, ip);
response.setHeader("Location", jee.getSettings().get("base.url", "") + "/signin?reset=reset");
response.setStatus(302);
return;
} catch(IllegalArgumentException | IllegalStateException e) {
ST page = jee.getPage(new User(jee.getAPI().getUnauthenticatedRolesCache(), ip), "password_reset_complete");
page.remove("shortcuts"); // Don't need shortcuts on this page
page.add("error", e.getMessage());
page.add("token", token);
page.add("new_password", "");
page.add("new_password2", "");
page.add("ldap_enabled", jee.getSettings().get("ldap.enabled", "true").equalsIgnoreCase("true"));
page.add("breadcrumbs", new Breadcrumb("Reset your password", null));
response.getWriter().write(page.render());
}
} else if(token.length() > 0) {
ST page = jee.getPage(new User(jee.getAPI().getUnauthenticatedRolesCache(), ip), "password_reset_complete");
page.remove("shortcuts"); // Don't need shortcuts on this page
page.add("token", token);
page.add("new_password", "");
page.add("new_password2", "");
page.add("ldap_enabled", jee.getSettings().get("ldap.enabled", "true").equalsIgnoreCase("true"));
page.add("breadcrumbs", new Breadcrumb("Reset your password", null));
response.getWriter().write(page.render());
} else {
ST page = jee.getPage(new User(jee.getAPI().getUnauthenticatedRolesCache(), ip), "password_reset");
page.remove("shortcuts"); // Don't need shortcuts on this page
page.add("email", email);
page.add("ldap_enabled", jee.getSettings().get("ldap.enabled", "true").equalsIgnoreCase("true"));
page.add("breadcrumbs", new Breadcrumb("Reset your password", null));
response.getWriter().write(page.render());
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy