Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
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.net.URL;
 
 
 
 
 public class SigninServlet extends HttpServlet {
 
 	private static final long serialVersionUID = 1L;
 
 	private String version;
 	private String build;
 	private boolean hasFirstUser = false;
 	private JeeBase jee;

User is redirected to this URL if the user is already authenticated
 
 	private String authSuccessUrl;
 
 	public SigninServlet(JeeBase jeeString versionString buildthrows IOException {
 		this. = jee;
 		this. = version;
 		this. = build;
 	}
 
 	public SigninServlet(JeeBase jeeString versionString buildString authSuccessUrlthrows IOException {
 		this. = jee;
 		this. = version;
 		this. = build;
 		this. = authSuccessUrl;
 	}

 
 	protected void doGet(HttpServletRequest requestHttpServletResponse responsethrows ServletExceptionIOException {
 
 		// Check if user is already signed in
 		String token = (String)request.getAttribute(.);
 		if(token == null) {
 			for (Cookie cookie : request.getCookies()) {
 					token = cookie.getValue();
 					break;
 				}
 			}
 		}
 		User u = .getAPI().getSession(token, BaseServlet.getIp(request)).get(0);
 
 		if(u.isAuthenticated() &&  != null) {
 			response.setHeader("Location".getSettings().get("base.url""") + );
 			response.setStatus(302);
 		}
 
 		// Display either the sign in page, or the setup page
 		response.setContentType("text/html; charset=UTF-8");
 		response.setCharacterEncoding("UTF-8");
 
 		if(!) {
 			if(!) {
 				handleSetup(requestresponse);
 				return;
 			}
 		}
 
 		handleSignin(requestresponse);
 
 	}
 
 	public static void handleSignin(JeeBase jeeHttpServletRequest requestHttpServletResponse responseString versionString buildthrows IOException {
 		boolean pastSigninError = false;
 		String username = request.getParameter("signin_username");
 		String password = request.getParameter("signin_password");
 		String error = null;
 		String target = null;
 		if(username == null) { username = ""; }
 		if(password == null) { password = ""; }
 		String ip = BaseServlet.getIp(request);
 
		if(request.getParameter("target") != null) {
			try {
				URL t = new URL(request.getParameter("target"));
				URL base = new URL(jee.getSettings().get("base.url"""));
				if(t.getHost().equalsIgnoreCase(base.getHost())) {
					target = t.toString();
				}
catch(MalformedURLException e) {
			}
		}
		if(request.getParameter("fail") != null) {
			pastSigninError = false;
			if(request.getParameter("u") != null) {
				username = request.getParameter("u");
			}
			if(request.getParameter("suspended") != null) {
				error = "Security controls are temporarily suspending access to sign in, please try again shortly.";
else {
				error = "Invalid username or password.";
			}
else {
			if (username.length() > 0) {
				if (username.equalsIgnoreCase(password)) {
					pastSigninError = true;
else {
					error = "Invalid username or password.";
				}
			}
		}
		if(pastSigninError) {
			//Query form page
			ST page = jee.getPage(new User(jee.getAPI().getUnauthenticatedRolesCache(), ip), "signin");
			page.remove("shortcuts"); // Don't need shortcuts on signin page
			page.add("username"username);
			page.add("target"target);
			page.add("version"version);
			page.add("build"build);
			page.add("error""success");
			page.add("reset"request.getParameter("reset"));
			page.add("ldap_enabled"jee.getSettings().get("ldap.enabled""false").equals("true"));
			page.add("self_signup"jee.getSettings().get("self.signup""false").equals("true"));
			page.add("breadcrumbs"new Breadcrumb("Signin"null));
			response.getWriter().write(page.render());
else {
			//Query form page
			ST page = jee.getPage(new User(jee.getAPI().getUnauthenticatedRolesCache(), ip), "signin");
			page.remove("shortcuts"); // Don't need shortcuts on signin page
			page.add("username"username);
			page.add("target"target);
			page.add("version"version);
			page.add("build"build);
			page.add("error"error);
			page.add("reset"request.getParameter("reset"));
			page.add("activated"request.getParameter("activated"));
			page.add("ldap_enabled"jee.getSettings().get("ldap.enabled""false").equals("true"));
			page.add("self_signup"jee.getSettings().get("self.signup""false").equals("true"));
			page.add("breadcrumbs"new Breadcrumb("Signin"null));
			response.getWriter().write(page.render());
		}
	}
	protected void doPost(HttpServletRequest requestHttpServletResponse responsethrows ServletExceptionIOException {
		doGet(requestresponse);
	}
	protected void handleSetup(HttpServletRequest requestHttpServletResponse responsethrows ServletExceptionIOException {
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String email = request.getParameter("email");
		String firstName = request.getParameter("first_name");
		String lastName = request.getParameter("last_name");
		String smtpServer = request.getParameter("smtp_server");
		boolean selfSignup = request.getParameter("self_signup") != null;
		String ip = BaseServlet.getIp(request);
		if(username == null) { username = ""; }
		if(password == null) { password = ""; }
		if(email == null) { email = ""; }
		if(firstName == null) { firstName = ""; }
		if(lastName == null) { lastName = ""; }
		if(smtpServer == null) { smtpServer = ""; }
		String error = null;
		int smtpPort = 0;
		try {
			smtpPort = Integer.parseInt(request.getParameter("smtp_port"));
catch(Exception e) { }
		if(request.getParameter("username") != null) {
			// Perform validation
			try {
				.getAPI().initialSetup(firstNamelastNameemailusernamepasswordsmtpServersmtpPortselfSignup, BaseServlet.getIp(request));
				response.setHeader("Location".getSettings().get("base.url""") + "/");
				response.setStatus(302);
				return;
catch(IOException e) {
				error = "<p>" + e.getMessage() + "</p>";
				error = "<p>" + e.getMessage() + "</p>";
catch(IllegalStateException e) {
				error = "<p>" + e.getMessage() + "</p>";
			}
		}
		ST page = .getPage(new User(.getAPI().getUnauthenticatedRolesCache(), ip), "setup");
		page.add("username"username);
		page.add("password"password);
		page.add("email"email);
		page.add("firstname"firstName);
		page.add("lastname"lastName);
		page.add("smtpserver"smtpServer);
		page.add("self_signup"selfSignup);
		if(smtpPort == 0) {
			page.add("smtpport""");
else {
			page.add("smtpport"smtpPort);
		}
		page.add("version");
		page.add("build");
		page.add("error"error);
		page.add("breadcrumbs"new Breadcrumb("Setup"null));
		response.getWriter().write(page.render());
	}
New to GrepCode? Check out our FAQ X