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=97038898e8e704619dead0ded5b15f57eee6f66b;hb=606cafcb5da873370c9b614d7951c164159681ad;hpb=ab88602bac4ff5c5540765a85a2013ecadb070df diff --git a/src/org/cacert/gigi/pages/account/MailCertificateAdd.java b/src/org/cacert/gigi/pages/account/MailCertificateAdd.java index 97038898..4a9a2c82 100644 --- a/src/org/cacert/gigi/pages/account/MailCertificateAdd.java +++ b/src/org/cacert/gigi/pages/account/MailCertificateAdd.java @@ -1,61 +1,78 @@ package org.cacert.gigi.pages.account; import java.io.IOException; -import java.io.PrintWriter; -import java.security.GeneralSecurityException; +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.output.ClientCSRGenerate; +import org.cacert.gigi.Language; +import org.cacert.gigi.User; +import org.cacert.gigi.database.DatabaseConnection; +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"); } @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 { - 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("/commonName=felix@dogcraft.de", - "sha256", csr); - c.issue(); + vars.put("CCA", "CCA"); + + User u = LoginPage.getUser(req); try { - c.waitFor(60000); - out.println(c.getStatus()); - out.println(c.cert()); - } catch (SQLException e1) { - e1.printStackTrace(); - } catch (GeneralSecurityException e) { - e.printStackTrace(); - } catch (InterruptedException e) { + PreparedStatement ps = DatabaseConnection.getInstance().prepare( + "SELECT `id`,`email` from `email` WHERE `memid`=? AND `deleted`=0"); + ps.setInt(1, u.getId()); + final ResultSet rs = ps.executeQuery(); + vars.put("emails", new IterableDataset() { + + @Override + public boolean next(Language l, Map vars) { + try { + if (!rs.next()) { + return false; + } + vars.put("id", rs.getString(1)); + vars.put("value", rs.getString(2)); + return true; + } catch (SQLException e) { + e.printStackTrace(); + } + return false; + } + }); + getDefaultTemplate().output(resp.getWriter(), getLanguage(req), vars); + rs.close(); + } catch (SQLException e) { e.printStackTrace(); } } + @Override + public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { + 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()); + + } }