X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Faccount%2FMailCertificateAdd.java;h=4a9a2c826398f29f39c36d420d524e3cb251dce3;hp=769f9e1ad0d8aaf60de7f1d2ef7fedd744ff7403;hb=606cafcb5da873370c9b614d7951c164159681ad;hpb=ca82909d6bb910769eb756058d51d55e6d257914 diff --git a/src/org/cacert/gigi/pages/account/MailCertificateAdd.java b/src/org/cacert/gigi/pages/account/MailCertificateAdd.java index 769f9e1a..4a9a2c82 100644 --- a/src/org/cacert/gigi/pages/account/MailCertificateAdd.java +++ b/src/org/cacert/gigi/pages/account/MailCertificateAdd.java @@ -1,26 +1,28 @@ package org.cacert.gigi.pages.account; import java.io.IOException; -import java.io.PrintWriter; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.Collections; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.cacert.gigi.Certificate; +import org.cacert.gigi.Language; import org.cacert.gigi.User; import org.cacert.gigi.database.DatabaseConnection; -import org.cacert.gigi.output.ClientCSRGenerate; import org.cacert.gigi.output.template.IterableDataset; import org.cacert.gigi.pages.LoginPage; +import org.cacert.gigi.output.Form; +import org.cacert.gigi.output.template.Template; import org.cacert.gigi.pages.Page; public class MailCertificateAdd extends Page { public static final String PATH = "/account/certs/email/new"; + Template t = new Template(MailCertificateAdd.class.getResource("RequestCertificate.templ")); public MailCertificateAdd() { super("Create Email certificate"); @@ -40,7 +42,7 @@ public class MailCertificateAdd extends Page { vars.put("emails", new IterableDataset() { @Override - public boolean next(Map vars) { + public boolean next(Language l, Map vars) { try { if (!rs.next()) { return false; @@ -63,27 +65,14 @@ public class MailCertificateAdd extends Page { @Override public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { - PrintWriter out = resp.getWriter(); - if (req.getParameter("optionalCSR") == null || req.getParameter("optionalCSR").equals("")) { - out.println("csr missing"); - ClientCSRGenerate.output(req, resp); - } - String csr = req.getParameter("optionalCSR"); - if (!"on".equals(req.getParameter("CCA"))) { - // Error. - return; - } - Certificate c = new Certificate(LoginPage.getUser(req).getId(), "/commonName=CAcert WoT User", "sha256", csr); - c.issue(); - try { - c.waitFor(60000); - resp.sendRedirect(MailCertificates.PATH + "/" + c.getSerial()); - } catch (SQLException e) { - e.printStackTrace(); - } catch (InterruptedException e) { - e.printStackTrace(); + IssueCertificateForm f; + if (req.getParameter(Form.CSRF_FIELD) != null) { + f = Form.getForm(req, IssueCertificateForm.class); + } else { + f = new IssueCertificateForm(req); + f.submit(resp.getWriter(), req); } + f.output(resp.getWriter(), getLanguage(req), Collections. emptyMap()); } - }