package org.cacert.gigi.pages.main;
+import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import javax.servlet.ServletRequest;
+import javax.servlet.http.HttpServletRequest;
import org.cacert.gigi.Language;
import org.cacert.gigi.User;
import org.cacert.gigi.output.DateSelector;
import org.cacert.gigi.output.Template;
import org.cacert.gigi.pages.Page;
+import org.cacert.gigi.util.EmailChecker;
import org.cacert.gigi.util.HTMLEncoder;
+import org.cacert.gigi.util.PasswordStrengthChecker;
public class Signup {
User buildup = new User();
"</a>"));
t.output(out, l, vars);
}
- private void update(ServletRequest r) {
+ private void update(HttpServletRequest r) {
if (r.getParameter("fname") != null) {
buildup.setFname(r.getParameter("fname"));
}
country = "1".equals(r.getParameter("country"));
regional = "1".equals(r.getParameter("regional"));
radius = "1".equals(r.getParameter("radius"));
+ myDoB.update(r);
}
- public boolean submit(PrintWriter out, ServletRequest req) {
+ public boolean submit(PrintWriter out, HttpServletRequest req) {
update(req);
boolean failed = false;
out.println("<div class='formError'>");
outputError(out, req, "Invalid date of birth");
failed = true;
}
+ if (!"1".equals(req.getParameter("cca_agree"))) {
+ outputError(out, req,
+ "You have to agree to the CAcert Community agreement.");
+ failed = true;
+ }
if (buildup.getEmail().equals("")) {
outputError(out, req, "Email Address was blank");
failed = true;
outputError(out, req, "Pass Phrases don't match");
failed = true;
}
- // TODO check password strength
+ int pwpoints = PasswordStrengthChecker.checkpw(pw1, buildup);
+ if (pwpoints < 3) {
+ outputError(
+ out,
+ req,
+ "The Pass Phrase you submitted failed to contain enough"
+ + " differing characters and/or contained words from"
+ + " your name and/or email address.");
+ }
+ if (failed) {
+ out.println("</div>");
+ return false;
+ }
try {
PreparedStatement q1 = DatabaseConnection.getInstance().prepare(
"select * from `email` where `email`=? and `deleted`=0");
e.printStackTrace();
failed = true;
}
+ String mailResult = EmailChecker.FAIL;
+ try {
+ mailResult = EmailChecker.checkEmailServer(0, buildup.getEmail());
+ } catch (IOException e) {
+ }
+ if (!mailResult.equals(EmailChecker.OK)) {
+ if (mailResult.startsWith("4")) {
+ outputError(
+ out,
+ req,
+ "The mail server responsible for your domain indicated"
+ + " a temporary failure. This may be due to anti-SPAM measures, such"
+ + " as greylisting. Please try again in a few minutes.");
+ } else {
+ outputError(
+ out,
+ req,
+ "Email Address given was invalid, or a test connection"
+ + " couldn't be made to your server, or the server"
+ + " rejected the email address as invalid");
+ }
+ if (mailResult.equals(EmailChecker.FAIL)) {
+ outputError(out, req,
+ "Failed to make a connection to the mail server");
+ } else {
+ out.print("<div>");
+ out.print(mailResult);
+ out.println("</div>");
+ }
+ failed = true;
+ }
+
out.println("</div>");
- return failed;
+ if (failed) {
+ return false;
+ }
+ // TODO start getting to work
+ return true;
}
private void outputError(PrintWriter out, ServletRequest req, String text) {
out.print("<div>");