X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Faccount%2FMailCertificateAdd.java;h=836f48c4f13c1ff1e035ff5a9f7accb4d20ee1e8;hp=b1c1d5c9d7c89c048d5d0f8d583c80442bf4dd87;hb=22f27f39d5b62ca5b264b2016daae7e870f78fd8;hpb=b2b98b2b0adf445d77a88e23e6460ab3e1803607 diff --git a/src/org/cacert/gigi/pages/account/MailCertificateAdd.java b/src/org/cacert/gigi/pages/account/MailCertificateAdd.java index b1c1d5c9..836f48c4 100644 --- a/src/org/cacert/gigi/pages/account/MailCertificateAdd.java +++ b/src/org/cacert/gigi/pages/account/MailCertificateAdd.java @@ -2,11 +2,15 @@ package org.cacert.gigi.pages.account; import java.io.IOException; import java.io.PrintWriter; +import java.sql.SQLException; import java.util.HashMap; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.cacert.gigi.Certificate; +import org.cacert.gigi.output.ClientCSRGenerate; +import org.cacert.gigi.pages.LoginPage; import org.cacert.gigi.pages.Page; public class MailCertificateAdd extends Page { @@ -17,20 +21,35 @@ public class MailCertificateAdd extends Page { } @Override - public void doGet(HttpServletRequest req, HttpServletResponse resp) - throws IOException { + public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { HashMap vars = new HashMap(); + vars.put("CCA", "CCA"); getDefaultTemplate().output(resp.getWriter(), getLanguage(req), vars); } + @Override - public void doPost(HttpServletRequest req, HttpServletResponse resp) - throws IOException { + public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { PrintWriter out = resp.getWriter(); - if (req.getParameter("optionalCSR") == null - || req.getParameter("optionalCSR").equals("")) { + 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; } - out.println("could now start processing the cert request"); + 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(); + } + } }