]> WPIA git - gigi.git/blob - src/org/cacert/gigi/pages/account/MailCertificateAdd.java
Show the generated certificate better.
[gigi.git] / src / org / cacert / gigi / pages / account / MailCertificateAdd.java
1 package org.cacert.gigi.pages.account;
2
3 import java.io.IOException;
4 import java.io.PrintWriter;
5 import java.sql.SQLException;
6 import java.util.HashMap;
7
8 import javax.servlet.http.HttpServletRequest;
9 import javax.servlet.http.HttpServletResponse;
10
11 import org.cacert.gigi.Certificate;
12 import org.cacert.gigi.output.ClientCSRGenerate;
13 import org.cacert.gigi.pages.Page;
14
15 public class MailCertificateAdd extends Page {
16         public static final String PATH = "/account/certs/email/new";
17
18         public MailCertificateAdd() {
19                 super("Create Email certificate");
20         }
21
22         @Override
23         public void doGet(HttpServletRequest req, HttpServletResponse resp)
24                         throws IOException {
25                 HashMap<String, Object> vars = new HashMap<String, Object>();
26                 vars.put("CCA",
27                                 "<a href='/policy/CAcertCommunityAgreement.html'>CCA</a>");
28                 getDefaultTemplate().output(resp.getWriter(), getLanguage(req), vars);
29         }
30         @Override
31         public void doPost(HttpServletRequest req, HttpServletResponse resp)
32                         throws IOException {
33                 PrintWriter out = resp.getWriter();
34                 if (req.getParameter("optionalCSR") == null
35                                 || req.getParameter("optionalCSR").equals("")) {
36                         out.println("csr missing");
37                         ClientCSRGenerate.output(req, resp);
38                 }
39                 String csr = req.getParameter("optionalCSR");
40                 if (!"on".equals(req.getParameter("CCA"))) {
41                         // Error.
42                         return;
43                 }
44                 Certificate c = new Certificate("/commonName=CAcert WoT User",
45                                 "sha256", csr);
46                 c.issue();
47                 try {
48                         c.waitFor(60000);
49                         resp.sendRedirect(MailCertificates.PATH + "/" + c.getId());
50                 } catch (SQLException e) {
51                         e.printStackTrace();
52                 } catch (InterruptedException e) {
53                         e.printStackTrace();
54                 }
55
56         }
57
58 }