private int id;
- public CertificateOwner(int id) {
+ protected CertificateOwner(int id) {
this.id = id;
}
- public CertificateOwner() {}
+ protected CertificateOwner() {
+ GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("INSERT INTO `certOwners` DEFAULT VALUES");
+ ps.execute();
+ id = ps.lastInsertId();
+ myCache.put(this);
+ }
public int getId() {
return id;
return u;
}
- protected int insert() {
- synchronized (User.class) {
- if (id != 0) {
- throw new Error("refusing to insert");
- }
- GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("INSERT INTO `certOwners` DEFAULT VALUES");
- ps.execute();
- id = ps.lastInsertId();
- myCache.put(this);
- }
-
- return id;
- }
-
public Domain[] getDomains() {
GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("SELECT `id` FROM `domains` WHERE `memid`=? AND `deleted` IS NULL");
ps.setInt(1, getId());
package org.cacert.gigi.dbObjects;
import java.io.IOException;
+import java.util.Locale;
import org.cacert.gigi.GigiApiException;
import org.cacert.gigi.database.DatabaseConnection;
rs.close();
}
- public EmailAddress(User owner, String address) {
+ public EmailAddress(User owner, String address, Locale mailLocale) throws GigiApiException {
if ( !EmailProvider.MAIL.matcher(address).matches()) {
throw new IllegalArgumentException("Invalid email.");
}
this.address = address;
this.owner = owner;
this.hash = RandomToken.generateToken(16);
+ insert(Language.getInstance(mailLocale));
}
- public void insert(Language l) throws GigiApiException {
+ private void insert(Language l) throws GigiApiException {
try {
synchronized (EmailAddress.class) {
if (id != 0) {
this.province = province;
this.city = city;
this.email = email;
- int id = super.insert();
+ int id = getId();
GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("INSERT INTO organisations SET id=?, name=?, state=?, province=?, city=?, contactEmail=?, creator=?");
ps.setInt(1, id);
ps.setString(2, name);
}
}
- public User() {}
+ public User(String email, String password, Name name, Date dob, Locale locale) throws GigiApiException {
+ this.email = email;
+ this.dob = dob;
+ this.name = name;
+ this.locale = locale;
+ GigiPreparedStatement query = DatabaseConnection.getInstance().prepare("INSERT INTO `users` SET `email`=?, `password`=?, " + "`fname`=?, `mname`=?, `lname`=?, " + "`suffix`=?, `dob`=?, `language`=?, id=?");
+ query.setString(1, email);
+ query.setString(2, PasswordHash.hash(password));
+ query.setString(3, name.getFname());
+ query.setString(4, name.getMname());
+ query.setString(5, name.getLname());
+ query.setString(6, name.getSuffix());
+ query.setDate(7, dob);
+ query.setString(8, locale.toString());
+ query.setInt(9, getId());
+ query.execute();
+ new EmailAddress(this, email, locale);
+ }
public Name getName() {
return name;
this.email = email;
}
- public void insert(String password) {
- int id = super.insert();
- GigiPreparedStatement query = DatabaseConnection.getInstance().prepare("INSERT INTO `users` SET `email`=?, `password`=?, " + "`fname`=?, `mname`=?, `lname`=?, " + "`suffix`=?, `dob`=?, `language`=?, id=?");
- query.setString(1, email);
- query.setString(2, PasswordHash.hash(password));
- query.setString(3, name.getFname());
- query.setString(4, name.getMname());
- query.setString(5, name.getLname());
- query.setString(6, name.getSuffix());
- query.setDate(7, new java.sql.Date(dob.getTime()));
- query.setString(8, locale.toString());
- query.setInt(9, id);
- query.execute();
- }
-
public void changePassword(String oldPass, String newPass) throws GigiApiException {
GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("SELECT `password` FROM `users` WHERE `id`=?");
ps.setInt(1, getId());
}
}
- PasswordStrengthChecker.assertStrongPassword(newPass, this);
+ PasswordStrengthChecker.assertStrongPassword(newPass, getName(), getEmail());
ps = DatabaseConnection.getInstance().prepare("UPDATE users SET `password`=? WHERE id=?");
ps.setString(1, PasswordHash.hash(newPass));
ps.setInt(2, getId());
String formMail = req.getParameter("newemail");
mail = formMail;
try {
- EmailAddress addr = new EmailAddress(target, mail);
- addr.insert(Page.getLanguage(req));
+ new EmailAddress(target, mail, Page.getLanguage(req).getLocale());
} catch (IllegalArgumentException e) {
out.println("<div class='formError'>Error: Invalid address!</div>");
return false;
import java.io.IOException;
import java.io.PrintWriter;
-import java.sql.Date;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import org.cacert.gigi.database.DatabaseConnection;
import org.cacert.gigi.database.GigiPreparedStatement;
import org.cacert.gigi.database.GigiResultSet;
-import org.cacert.gigi.dbObjects.EmailAddress;
import org.cacert.gigi.dbObjects.Name;
import org.cacert.gigi.dbObjects.User;
import org.cacert.gigi.email.EmailProvider;
public class Signup extends Form {
- private User buildup = new User();
+ Name buildupName = new Name("", "", "", "");
+
+ String email = "";
private Template t;
public Signup(HttpServletRequest hsr) {
super(hsr);
t = new Template(Signup.class.getResource("Signup.templ"));
- buildup.setName(new Name("", "", "", ""));
- buildup.setEmail("");
- buildup.setDoB(new Date(0));
}
DateSelector myDoB = new DateSelector("day", "month", "year");
@Override
public void outputContent(PrintWriter out, Language l, Map<String, Object> outerVars) {
HashMap<String, Object> vars = new HashMap<String, Object>();
- Name buildupName = buildup.getName();
vars.put("fname", HTMLEncoder.encodeHTML(buildupName.getFname()));
vars.put("mname", HTMLEncoder.encodeHTML(buildupName.getMname()));
vars.put("lname", HTMLEncoder.encodeHTML(buildupName.getLname()));
vars.put("suffix", HTMLEncoder.encodeHTML(buildupName.getSuffix()));
vars.put("dob", myDoB);
- vars.put("email", HTMLEncoder.encodeHTML(buildup.getEmail()));
+ vars.put("email", HTMLEncoder.encodeHTML(email));
vars.put("general", general ? " checked=\"checked\"" : "");
vars.put("country", country ? " checked=\"checked\"" : "");
vars.put("regional", regional ? " checked=\"checked\"" : "");
}
private void update(HttpServletRequest r) {
- String fname = buildup.getName().getFname();
- String lname = buildup.getName().getLname();
- String mname = buildup.getName().getMname();
- String suffix = buildup.getName().getSuffix();
+ String fname = buildupName.getFname();
+ String lname = buildupName.getLname();
+ String mname = buildupName.getMname();
+ String suffix = buildupName.getSuffix();
if (r.getParameter("fname") != null) {
fname = r.getParameter("fname");
}
suffix = r.getParameter("suffix");
}
if (r.getParameter("email") != null) {
- buildup.setEmail(r.getParameter("email"));
+ email = r.getParameter("email");
}
- buildup.setName(new Name(fname, lname, mname, suffix));
+ buildupName = new Name(fname, lname, mname, suffix);
general = "1".equals(r.getParameter("general"));
country = "1".equals(r.getParameter("country"));
regional = "1".equals(r.getParameter("regional"));
@Override
public synchronized boolean submit(PrintWriter out, HttpServletRequest req) {
update(req);
- if (buildup.getName().getLname().trim().equals("")) {
+ if (buildupName.getLname().trim().equals("")) {
outputError(out, req, "Last name were blank.");
}
if ( !myDoB.isValid()) {
if ( !"1".equals(req.getParameter("cca_agree"))) {
outputError(out, req, "You have to agree to the CAcert Community agreement.");
}
- if (buildup.getEmail().equals("")) {
+ if (email.equals("")) {
outputError(out, req, "Email Address was blank");
}
String pw1 = req.getParameter("pword1");
} else if ( !pw1.equals(pw2)) {
outputError(out, req, "Pass Phrases don't match");
}
- int pwpoints = PasswordStrengthChecker.checkpw(pw1, buildup);
+ int pwpoints = PasswordStrengthChecker.checkpw(pw1, buildupName, email);
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.");
}
}
GigiPreparedStatement q1 = DatabaseConnection.getInstance().prepare("SELECT * FROM `emails` WHERE `email`=? AND `deleted` IS NULL");
GigiPreparedStatement q2 = DatabaseConnection.getInstance().prepare("SELECT * FROM `certOwners` INNER JOIN `users` ON `users`.`id`=`certOwners`.`id` WHERE `email`=? AND `deleted` IS NULL");
- q1.setString(1, buildup.getEmail());
- q2.setString(1, buildup.getEmail());
+ q1.setString(1, email);
+ q2.setString(1, email);
GigiResultSet r1 = q1.executeQuery();
GigiResultSet r2 = q2.executeQuery();
if (r1.next() || r2.next()) {
r1.close();
r2.close();
GigiPreparedStatement q3 = DatabaseConnection.getInstance().prepare("SELECT `domain` FROM `baddomains` WHERE `domain`=RIGHT(?, LENGTH(`domain`))");
- q3.setString(1, buildup.getEmail());
+ q3.setString(1, email);
GigiResultSet r3 = q3.executeQuery();
if (r3.next()) {
r3.close();
String mailResult = EmailProvider.FAIL;
try {
- mailResult = HTMLEncoder.encodeHTML(EmailProvider.getInstance().checkEmailServer(0, buildup.getEmail()));
+ mailResult = HTMLEncoder.encodeHTML(EmailProvider.getInstance().checkEmailServer(0, email));
} catch (IOException e) {
}
if ( !mailResult.equals(EmailProvider.OK)) {
private void run(HttpServletRequest req, String password) throws SQLException, GigiApiException {
try {
DatabaseConnection.getInstance().beginTransaction();
- buildup.setPreferredLocale(Page.getLanguage(req).getLocale());
- buildup.setDoB(myDoB.getDate());
- buildup.insert(password);
- int memid = buildup.getId();
- EmailAddress ea = new EmailAddress(buildup, buildup.getEmail());
- ea.insert(Page.getLanguage(req));
+ User u = new User(email, password, buildupName, myDoB.getDate(), Page.getLanguage(req).getLocale());
GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("INSERT INTO `alerts` SET `memid`=?," + " `general`=?, `country`=?, `regional`=?, `radius`=?");
- ps.setInt(1, memid);
+ ps.setInt(1, u.getId());
ps.setBoolean(2, general);
ps.setBoolean(3, country);
ps.setBoolean(4, regional);
ps.setBoolean(5, radius);
ps.execute();
- Notary.writeUserAgreement(buildup, "CCA", "account creation", "", true, 0);
+ Notary.writeUserAgreement(u, "CCA", "account creation", "", true, 0);
DatabaseConnection.getInstance().commitTransaction();
} finally {
import org.cacert.gigi.GigiApiException;
import org.cacert.gigi.dbObjects.Name;
-import org.cacert.gigi.dbObjects.User;
public class PasswordStrengthChecker {
return points;
}
- public static int checkpw(String pw, User u) {
+ public static int checkpw(String pw, Name name, String email) {
if (pw == null) {
return 0;
}
- Name name = u.getName();
int light = checkpwlight(pw);
- if (contained(pw, u.getEmail())) {
+ if (contained(pw, email)) {
light -= 2;
}
if (contained(pw, name.getFname())) {
return light;
}
- public static void assertStrongPassword(String pw, User u) throws GigiApiException {
- if (checkpw(pw, u) < 3) {
+ public static void assertStrongPassword(String pw, Name name, String email) throws GigiApiException {
+ if (checkpw(pw, name, email) < 3) {
throw new GigiApiException("The Pass Phrase you submitted failed to contain enough" + " differing characters and/or contained words from" + " your name and/or email address.");
}
}
import org.cacert.gigi.dbObjects.EmailAddress;
import org.cacert.gigi.dbObjects.Name;
import org.cacert.gigi.dbObjects.User;
-import org.cacert.gigi.localisation.Language;
import org.cacert.gigi.testUtils.ManagedTest;
import org.junit.Test;
int uid = createVerifiedUser("fname", "lname", createUniqueName() + "@example.com", TEST_PASSWORD);
@Test
- public void testUserCache() throws SQLException {
+ public void testUserCache() throws SQLException, GigiApiException {
assertThat(User.getById(uid), is(sameInstance(User.getById(uid))));
- User u = new User();
- u.setName(new Name("fname", "lname", "mname", "suffix"));
- u.setEmail(createUniqueName() + "@example.org");
Calendar c = Calendar.getInstance();
c.set(1950, 1, 1);
- u.setDoB(new Date(c.getTime().getTime()));
- u.setPreferredLocale(Locale.ENGLISH);
- u.insert(TEST_PASSWORD);
+ User u = new User(createUniqueName() + "@example.org", TEST_PASSWORD, new Name("fname", "lname", "mname", "suffix"), new Date(c.getTime().getTime()), Locale.ENGLISH);
assertThat(u, is(sameInstance(User.getById(u.getId()))));
assertThat(User.getById(u.getId()), is(sameInstance(User.getById(u.getId()))));
@Test
public void testEmailCache() throws GigiApiException {
- EmailAddress em = new EmailAddress(User.getById(uid), createUniqueName() + "@example.org");
- em.insert(Language.getInstance(Locale.ENGLISH));
+ EmailAddress em = new EmailAddress(User.getById(uid), createUniqueName() + "@example.org", Locale.ENGLISH);
assertThat(em, is(sameInstance(EmailAddress.getById(em.getId()))));
assertThat(EmailAddress.getById(em.getId()), is(sameInstance(EmailAddress.getById(em.getId()))));
import org.cacert.gigi.dbObjects.EmailAddress;
import org.cacert.gigi.dbObjects.Name;
import org.cacert.gigi.dbObjects.User;
-import org.cacert.gigi.localisation.Language;
import org.cacert.gigi.testUtils.ManagedTest;
import org.junit.Test;
public class TestUser extends ManagedTest {
@Test
- public void testStoreAndLoad() throws SQLException {
- User u = new User();
- u.setName(new Name("user", "last", "", ""));
- u.setPreferredLocale(Locale.ENGLISH);
+ public void testStoreAndLoad() throws SQLException, GigiApiException {
long dob = System.currentTimeMillis();
dob -= dob % (1000 * 60 * 60 * 24);
- u.setDoB(new java.sql.Date(dob));
- u.setEmail(createUniqueName() + "a@email.org");
- u.insert("password");
+ User u = new User(createUniqueName() + "a@email.org", "password", new Name("user", "last", "", ""), new java.sql.Date(dob), Locale.ENGLISH);
int id = u.getId();
User u2 = User.getById(id);
assertEquals(u.getName(), u2.getName());
int id = createVerifiedUser("aä", "b", uq + "a@email.org", TEST_PASSWORD);
User u = User.getById(id);
- new EmailAddress(u, uq + "b@email.org").insert(Language.getInstance(Locale.ENGLISH));
- new EmailAddress(u, uq + "c@email.org").insert(Language.getInstance(Locale.ENGLISH));
+ new EmailAddress(u, uq + "b@email.org", Locale.ENGLISH);
+ new EmailAddress(u, uq + "c@email.org", Locale.ENGLISH);
new Domain(u, uq + "a-testdomain.org").insert();
new Domain(u, uq + "b-testdomain.org").insert();
new Domain(u, uq + "c-testdomain.org").insert();
}
@Test
- public void testDoubleInsert() {
- User u = new User();
- u.setName(new Name("f", "k", "m", "s"));
- u.setEmail(createUniqueName() + "@example.org");
- u.setDoB(new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 24 * 365));
- u.setPreferredLocale(Locale.ENGLISH);
- u.insert(TEST_PASSWORD);
- try {
- u.insert(TEST_PASSWORD);
- fail("Error expected");
- } catch (Error e) {
- // expected
- }
+ public void testDoubleInsert() throws GigiApiException {
+ User u = new User(createUniqueName() + "@example.org", TEST_PASSWORD, new Name("f", "k", "m", "s"), new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 24 * 365), Locale.ENGLISH);
Assurance[] ma = u.getMadeAssurances();
Assurance[] ma2 = u.getMadeAssurances();
Assurance[] ra = u.getReceivedAssurances();
import org.cacert.gigi.dbObjects.EmailAddress;
import org.cacert.gigi.dbObjects.ObjectCache;
import org.cacert.gigi.dbObjects.User;
-import org.cacert.gigi.localisation.Language;
import org.cacert.gigi.pages.account.mail.MailOverview;
import org.cacert.gigi.testUtils.ClientTest;
import org.junit.Test;
}
@Test
- public void testMailAddInternalFaulty() {
+ public void testMailAddInternalFaulty() throws GigiApiException {
try {
- new EmailAddress(u, "kurti ");
+ new EmailAddress(u, "kurti ", Locale.ENGLISH);
fail();
} catch (IllegalArgumentException e) {
// Intended.
@Test
public void testMailSetDefaultWebUnverified() throws MalformedURLException, UnsupportedEncodingException, IOException, InterruptedException, GigiApiException {
- EmailAddress adrr = new EmailAddress(u, createUniqueName() + "test@test.tld");
- adrr.insert(Language.getInstance(Locale.ENGLISH));
+ EmailAddress adrr = new EmailAddress(u, createUniqueName() + "test@test.tld", Locale.ENGLISH);
assertNotNull(executeBasicWebInteraction(cookie, path, "makedefault&emailid=" + adrr.getId()));
assertNotEquals(User.getById(u.getId()).getEmail(), adrr.getAddress());
getMailReciever().clearMails();
import org.cacert.gigi.dbObjects.Group;
import org.cacert.gigi.dbObjects.ObjectCache;
import org.cacert.gigi.dbObjects.User;
-import org.cacert.gigi.localisation.Language;
import org.cacert.gigi.pages.Manager;
import org.cacert.gigi.pages.account.MyDetails;
import org.cacert.gigi.pages.main.RegisterPage;
/**
* Some password that fulfills the password criteria.
*/
- protected static final String TEST_PASSWORD = "xvXV12°§";
+ public static final String TEST_PASSWORD = "xvXV12°§";
private static TestEmailReceiver ter;
}
public static EmailAddress createVerifiedEmail(User u) throws InterruptedException, GigiApiException {
- EmailAddress adrr = new EmailAddress(u, createUniqueName() + "test@test.tld");
- adrr.insert(Language.getInstance(Locale.ENGLISH));
+ EmailAddress adrr = new EmailAddress(u, createUniqueName() + "test@test.tld", Locale.ENGLISH);
TestMail testMail = getMailReciever().receive();
assertEquals(adrr.getAddress(), testMail.getTo());
String hash = testMail.extractLink().substring(testMail.extractLink().lastIndexOf('=') + 1);
import static org.junit.Assert.*;
import org.cacert.gigi.dbObjects.Name;
-import org.cacert.gigi.dbObjects.User;
import org.junit.Test;
public class TestPasswordStrengthChecker {
- User u;
+ Name n = new Name("fname", "lname", "mname", "suffix");
- public TestPasswordStrengthChecker() {
- u = new User();
- u.setName(new Name("fname", "lname", "mname", "suffix"));
- u.setEmail("email");
+ String e = "email";
+
+ public TestPasswordStrengthChecker() {}
+
+ private int check(String pw) {
+ return PasswordStrengthChecker.checkpw(pw, n, e);
}
@Test
public void testPasswordLength() {
- assertEquals(1, PasswordStrengthChecker.checkpw("01234", u));
- assertEquals(2, PasswordStrengthChecker.checkpw("0123456789012345", u));
- assertEquals(3, PasswordStrengthChecker.checkpw("012345678901234567890", u));
- assertEquals(4, PasswordStrengthChecker.checkpw("01234567890123456789012345", u));
- assertEquals(5, PasswordStrengthChecker.checkpw("0123456789012345678901234567890", u));
+ assertEquals(1, check("01234"));
+ assertEquals(2, check("0123456789012345"));
+ assertEquals(3, check("012345678901234567890"));
+ assertEquals(4, check("01234567890123456789012345"));
+ assertEquals(5, check("0123456789012345678901234567890"));
}
@Test
public void testPasswordNonASCII() {
- assertEquals(2, PasswordStrengthChecker.checkpw("0ä", u));
- assertEquals(3, PasswordStrengthChecker.checkpw("0aä", u));
- assertEquals(3, PasswordStrengthChecker.checkpw("0azä", u));
- assertEquals(3, PasswordStrengthChecker.checkpw("0az.ä", u));
+ assertEquals(2, check("0ä"));
+ assertEquals(3, check("0aä"));
+ assertEquals(3, check("0azä"));
+ assertEquals(3, check("0az.ä"));
}
@Test
public void testPasswordCharTypes() {
- assertEquals(1, PasswordStrengthChecker.checkpw("0", u));
- assertEquals(2, PasswordStrengthChecker.checkpw("0a", u));
- assertEquals(2, PasswordStrengthChecker.checkpw("0az", u));
- assertEquals(3, PasswordStrengthChecker.checkpw("0azZ", u));
- assertEquals(4, PasswordStrengthChecker.checkpw("0a zZ", u));
- assertEquals(5, PasswordStrengthChecker.checkpw("0a. zZ", u));
-
- assertEquals(1, PasswordStrengthChecker.checkpw(".", u));
- assertEquals(1, PasswordStrengthChecker.checkpw(" ", u));
- assertEquals(1, PasswordStrengthChecker.checkpw("b", u));
- assertEquals(1, PasswordStrengthChecker.checkpw("Z", u));
-
- assertEquals(2, PasswordStrengthChecker.checkpw("0.", u));
- assertEquals(2, PasswordStrengthChecker.checkpw("0 ", u));
- assertEquals(2, PasswordStrengthChecker.checkpw("0a", u));
- assertEquals(2, PasswordStrengthChecker.checkpw("0Z", u));
-
- assertEquals(2, PasswordStrengthChecker.checkpw(" .", u));
- assertEquals(2, PasswordStrengthChecker.checkpw(" a", u));
- assertEquals(2, PasswordStrengthChecker.checkpw(" Z", u));
+ assertEquals(1, check("0"));
+ assertEquals(2, check("0a"));
+ assertEquals(2, check("0az"));
+ assertEquals(3, check("0azZ"));
+ assertEquals(4, check("0a zZ"));
+ assertEquals(5, check("0a. zZ"));
+
+ assertEquals(1, check("."));
+ assertEquals(1, check(" "));
+ assertEquals(1, check("b"));
+ assertEquals(1, check("Z"));
+
+ assertEquals(2, check("0."));
+ assertEquals(2, check("0 "));
+ assertEquals(2, check("0a"));
+ assertEquals(2, check("0Z"));
+
+ assertEquals(2, check(" ."));
+ assertEquals(2, check(" a"));
+ assertEquals(2, check(" Z"));
}
@Test
public void testPasswordContains() {
- assertEquals( -1, PasswordStrengthChecker.checkpw("fnamea", u));
- assertEquals( -5, PasswordStrengthChecker.checkpw("na", u));
- assertEquals(0, PasswordStrengthChecker.checkpw("1lname", u));
- assertEquals(0, PasswordStrengthChecker.checkpw("1email", u));
- assertEquals( -1, PasswordStrengthChecker.checkpw("mai", u));
- assertEquals( -1, PasswordStrengthChecker.checkpw("suff", u));
- assertEquals(0, PasswordStrengthChecker.checkpw("1suffix", u));
+ assertEquals( -1, check("fnamea"));
+ assertEquals( -5, check("na"));
+ assertEquals(0, check("1lname"));
+ assertEquals(0, check("1email"));
+ assertEquals( -1, check("mai"));
+ assertEquals( -1, check("suff"));
+ assertEquals(0, check("1suffix"));
}
}
private void createUser(String email) throws GigiApiException, IllegalAccessException {
- User u = new User();
- u.setName(new Name("Först", "Läst", "Müddle", "Süffix"));
- u.setEmail(email);
Calendar gc = GregorianCalendar.getInstance();
gc.set(1990, 0, 1);
- u.setDoB(new Date(gc.getTime().getTime()));
- u.setPreferredLocale(Locale.ENGLISH);
- u.insert("xvXV12°§");
- EmailAddress ea = new EmailAddress(u, email);
- ea.insert(Language.getInstance(Locale.ENGLISH));
+ User u = new User(email, "xvXV12°§", new Name("Först", "Läst", "Müddle", "Süffix"), new Date(gc.getTime().getTime()), Locale.ENGLISH);
+ EmailAddress ea = u.getEmails()[0];
String hash = (String) f.get(ea);
ea.verify(hash);
resp.getWriter().println("User has been assured.");
} else if (req.getParameter("addEmail") != null) {
User u = User.getByEmail(req.getParameter("addEmailEmail"));
- EmailAddress ea = new EmailAddress(u, req.getParameter("addEmailNew"));
try {
- ea.insert(Language.getInstance(Locale.ENGLISH));
+ EmailAddress ea = new EmailAddress(u, req.getParameter("addEmailNew"), Locale.ENGLISH);
String hash = (String) f.get(ea);
ea.verify(hash);
resp.getWriter().println("Email added and verified");