All Downloads are FREE. Search and download functionalities are using the official Maven repository.

base.jee.servlet.SignupConfirmServlet 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 org.stringtemplate.v4.ST;

import base.StringQueryResult;
import base.jee.AuthorisationFilter;
import base.jee.Breadcrumb;
import base.jee.JeeBase;
import base.security.User;

/**
 */
public class SignupConfirmServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;

	private JeeBase jee;
	private String authSuccessUrl;

	public SignupConfirmServlet(JeeBase jee, String authSuccessUrl) throws IOException {
		this.jee = jee;
		this.authSuccessUrl = authSuccessUrl;
	}

	/**
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html; charset=UTF-8");
		response.setCharacterEncoding("UTF-8");

		try {
			String requestToken = request.getParameter("token");
			if(requestToken != null && requestToken.length() > 0) {
				List results = jee.getAPI().signUpConfirmation(requestToken, BaseServlet.getIp(request));
				AuthorisationFilter.attachCookieToResponse(jee, response, results.get(0).getString());

				// Sign-up succeeded, go to the "authSuccessUrl" as the starting page.
				response.setHeader("Location", jee.getSettings().get("base.url", "") + authSuccessUrl);
				response.setStatus(302);
				return;
			}


		} catch(IllegalArgumentException e) {
			// SignUpConfirmationFailed
		}

		String ip = BaseServlet.getIp(request);

		ST page = jee.getPage(new User(jee.getAPI().getUnauthenticatedRolesCache(), ip), "signup_confirmation_fail");
		page.remove("shortcuts"); // Don't need shortcuts on this page
		page.add("ldap_enabled", jee.getSettings().get("ldap.enabled", "true").equalsIgnoreCase("true"));
		page.add("breadcrumbs", new Breadcrumb("Signup confirmation failed", null));

		if(request.getParameter("fail") != null) {
			page.add("error", "error");
		}

		response.getWriter().write(page.render());
		return;

	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy