]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/account/MailCertificateAdd.java
Show the generated certificate better.
[gigi.git] / src / org / cacert / gigi / pages / account / MailCertificateAdd.java
index 35899c5da73e82ebf328f052dd30a41214f9282e..fe93959da6493118dd312c466e7441065ac43ec6 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;
 
@@ -21,6 +23,8 @@ public class MailCertificateAdd extends Page {
        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
@@ -32,7 +36,23 @@ public class MailCertificateAdd extends Page {
                        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();
+               }
+
        }
 
 }