this.csr = csr;
}
+ public Certificate(int id) {
+ try {
+ PreparedStatement ps = DatabaseConnection
+ .getInstance()
+ .prepare(
+ "SELECT subject, md, csr_name, crt_name FROM `emailcerts` WHERE id=?");
+ ps.setInt(1, id);
+ ResultSet rs = ps.executeQuery();
+ if (!rs.next()) {
+ throw new IllegalArgumentException("Invalid mid " + id);
+ }
+ this.id = id;
+ dn = rs.getString(1);
+ md = rs.getString(2);
+ csrName = rs.getString(3);
+ crtName = rs.getString(4);
+ rs.close();
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ }
+
public enum CertificateStatus {
/**
* This certificate is not in the database, has no id and only exists as
pages.put("/secure", new TestSecure());
pages.put(Verify.PATH, new Verify());
pages.put(AssurePage.PATH + "/*", new AssurePage());
- pages.put(MailCertificates.PATH, new MailCertificates());
+ pages.put(MailCertificates.PATH + "/*", new MailCertificates());
pages.put(MyDetails.PATH, new MyDetails());
pages.put(ChangePasswordPage.PATH, new ChangePasswordPage());
pages.put(RegisterPage.PATH, new RegisterPage());
import java.io.IOException;
import java.io.PrintWriter;
-import java.security.GeneralSecurityException;
import java.sql.SQLException;
import java.util.HashMap;
// Error.
return;
}
- Certificate c = new Certificate("/commonName=felix@dogcraft.de",
+ Certificate c = new Certificate("/commonName=CAcert WoT User",
"sha256", csr);
c.issue();
try {
c.waitFor(60000);
- out.println(c.getStatus());
- out.println(c.cert());
- } catch (SQLException e1) {
- e1.printStackTrace();
- } catch (GeneralSecurityException e) {
+ resp.sendRedirect(MailCertificates.PATH + "/" + c.getId());
+ } catch (SQLException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
+
}
}
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 javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.cacert.gigi.Certificate;
import org.cacert.gigi.User;
import org.cacert.gigi.database.DatabaseConnection;
import org.cacert.gigi.output.CertificateTable;
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
+ PrintWriter out = resp.getWriter();
+ String pi = req.getPathInfo().substring(PATH.length());
+ if (pi.length() != 0) {
+ pi = pi.substring(1);
+ int id = Integer.parseInt(pi);
+ Certificate c = new Certificate(id);
+ // TODO check ownership
+ out.println("<pre>");
+ try {
+ out.print(c.cert());
+ } catch (GeneralSecurityException e) {
+ e.printStackTrace();
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ out.println("</pre>");
+ return;
+ }
+
HashMap<String, Object> vars = new HashMap<String, Object>();
User us = LoginPage.getUser(req);
try {
ps.setInt(1, us.getId());
ResultSet rs = ps.executeQuery();
vars.put("mailcerts", rs);
- myTable.output(resp.getWriter(), getLanguage(req), vars);
+ myTable.output(out, getLanguage(req), vars);
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
.expertoff{
display:none;
+}
+pre{
+ word-wrap: break-word;
+ white-space: pre-wrap;
}
\ No newline at end of file