import org.cacert.gigi.pages.MainPage;
import org.cacert.gigi.pages.Page;
import org.cacert.gigi.pages.TestSecure;
+import org.cacert.gigi.pages.account.MailCertificates;
import org.cacert.gigi.pages.account.MyDetails;
import org.cacert.gigi.pages.main.RegisterPage;
import org.eclipse.jetty.util.log.Log;
pages.put("/login", new LoginPage("CACert - Login"));
pages.put("/", new MainPage("CACert - Home"));
pages.put("/secure", new TestSecure());
+ pages.put(MailCertificates.PATH, new MailCertificates());
pages.put(MyDetails.PATH, new MyDetails());
pages.put(RegisterPage.PATH, new RegisterPage());
String templ = "";
- try {
- BufferedReader reader = new BufferedReader(new InputStreamReader(
- new FileInputStream(new File("templates/base.html"))));
+ try (BufferedReader reader = new BufferedReader(new InputStreamReader(
+ new FileInputStream(new File("templates/base.html"))))) {
String tmp;
while ((tmp = reader.readLine()) != null) {
templ += tmp;
e.printStackTrace();
}
try {
- c = DriverManager.getConnection(credentials.getProperty("url"),
+ c = DriverManager.getConnection(credentials.getProperty("url")
+ + "?zeroDateTimeBehavior=convertToNull",
credentials.getProperty("user"),
credentials.getProperty("password"));
} catch (SQLException e) {
--- /dev/null
+package org.cacert.gigi.output;
+
+import java.io.PrintWriter;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Map;
+
+import org.cacert.gigi.Language;
+
+public class CertificateTable implements Outputable {
+ String resultSet;
+ public CertificateTable(String resultSet) {
+ this.resultSet = resultSet;
+ }
+ private static final String[] columnNames = new String[]{
+ "Renew/Revoke/Delete", "Status", "Email Address", "SerialNumber",
+ "Revoked", "Expires", "Login"};
+
+ @Override
+ public void output(PrintWriter out, Language l, Map<String, Object> vars) {
+ ResultSet rs = (ResultSet) vars.get(resultSet);
+ try {
+ out.println("<form method=\"post\" action=\"account.php\">");
+ out.println("<table align=\"center\" valign=\"middle\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"wrapper\">");
+ out.println("<tr>");
+ for (String column : columnNames) {
+ out.print("<td class=\"DataTD\">");
+ out.print(l.getTranslation(column));
+ out.println("</td>");
+ }
+ out.print("<td colspan=\"2\" class=\"DataTD\">");
+ out.print(l.getTranslation("Comment *"));
+ out.println("</td></tr>");
+
+ rs.beforeFirst();
+ while (rs.next()) {
+ // out.println(rs.getString("id"));
+ out.print("<tr><td class=\"DataTD\"> </td><td class=\"DataTD\">State</td><td class=\"DataTD\">");
+ out.println(rs.getString("CN"));
+ out.print("</td><td class=\"DataTD\">");
+ out.println(rs.getString("serial"));
+ out.print("</td><td class=\"DataTD\">");
+ if (rs.getString("revoked") == null) {
+ out.println("N/A");
+ } else {
+ out.println(rs.getString("revoked"));
+ }
+ out.print("</td><td class=\"DataTD\">");
+ out.println(rs.getString("expire"));
+ out.println("</td><td class=\"DataTD\">a</td><td class=\"DataTD\">a</td></tr>");
+ }
+ out.println("</table>");
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+
+ }
+}
e.printStackTrace();
}
}
+ public static User getUser(HttpServletRequest req) {
+ return (User) req.getSession().getAttribute(USER);
+ }
private void tryAuthWithCertificate(HttpServletRequest req,
X509Certificate x509Certificate) {
String serial = x509Certificate.getSerialNumber().toString(16)
--- /dev/null
+package org.cacert.gigi.pages.account;
+
+import java.io.IOException;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.HashMap;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.cacert.gigi.User;
+import org.cacert.gigi.database.DatabaseConnection;
+import org.cacert.gigi.output.CertificateTable;
+import org.cacert.gigi.pages.LoginPage;
+import org.cacert.gigi.pages.Page;
+
+public class MailCertificates extends Page {
+ CertificateTable myTable = new CertificateTable("mailcerts");
+ public static final String PATH = "/account/certs/email";
+
+ public MailCertificates() {
+ super("Email Certificates");
+ }
+
+ @Override
+ public void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws IOException {
+ HashMap<String, Object> vars = new HashMap<String, Object>();
+ User us = LoginPage.getUser(req);
+ try {
+ PreparedStatement ps = DatabaseConnection
+ .getInstance()
+ .prepare(
+ "SELECT `id`, `CN`, `serial`, `revoked`, `expire`, `disablelogin` FROM `emailcerts` WHERE `memid`=?");
+ ps.setInt(1, us.getId());
+ ResultSet rs = ps.executeQuery();
+ vars.put("mailcerts", rs);
+ myTable.output(resp.getWriter(), getLanguage(req), vars);
+ rs.close();
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ }
+
+}