]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/account/MailCertificateAdd.java
[EMPTY] Formatting with configured formatter.
[gigi.git] / src / org / cacert / gigi / pages / account / MailCertificateAdd.java
index 35899c5da73e82ebf328f052dd30a41214f9282e..f01b8f0c79dad505fa6b88b8160cba6737ebbfe4 100644 (file)
@@ -2,11 +2,13 @@ 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.Page;
 
@@ -18,21 +20,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<String, Object> vars = new HashMap<String, Object>();
+               vars.put("CCA", "<a href='/policy/CAcertCommunityAgreement.html'>CCA</a>");
                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);
                }
-               out.println("could now start processing the cert request");
+               String csr = req.getParameter("optionalCSR");
+               if (!"on".equals(req.getParameter("CCA"))) {
+                       // Error.
+                       return;
+               }
+               Certificate c = new Certificate("/commonName=CAcert WoT User", "sha256", csr);
+               c.issue();
+               try {
+                       c.waitFor(60000);
+                       resp.sendRedirect(MailCertificates.PATH + "/" + c.getId());
+               } catch (SQLException e) {
+                       e.printStackTrace();
+               } catch (InterruptedException e) {
+                       e.printStackTrace();
+               }
+
        }
 
 }