X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fapi%2FGigiAPI.java;h=d511d315801180e2c871c50b259e3ff1c5359d7d;hb=6d65334306c8b7bd10fbbfa07bc8f38475ff6d08;hp=3af4714c2fdd7affbeee73c2039f56d555dce2db;hpb=787dc5faad7c6829b0e9b699767fc6e13c17999e;p=gigi.git diff --git a/src/org/cacert/gigi/api/GigiAPI.java b/src/org/cacert/gigi/api/GigiAPI.java index 3af4714c..d511d315 100644 --- a/src/org/cacert/gigi/api/GigiAPI.java +++ b/src/org/cacert/gigi/api/GigiAPI.java @@ -13,11 +13,12 @@ import javax.servlet.http.HttpServletResponse; import org.cacert.gigi.GigiApiException; import org.cacert.gigi.dbObjects.Certificate; -import org.cacert.gigi.dbObjects.Job; import org.cacert.gigi.dbObjects.Certificate.CertificateStatus; +import org.cacert.gigi.dbObjects.Job; import org.cacert.gigi.dbObjects.User; import org.cacert.gigi.pages.LoginPage; import org.cacert.gigi.pages.account.certs.CertificateRequest; +import org.cacert.gigi.util.AuthorizationContext; import org.cacert.gigi.util.PEM; public class GigiAPI extends HttpServlet { @@ -49,6 +50,10 @@ public class GigiAPI extends HttpServlet { } String serial = LoginPage.extractSerialFormCert(cert); User u = LoginPage.fetchUserBySerial(serial); + if (u == null) { + resp.sendError(403, "Error, cert authing required."); + return; + } if (pi.equals("/account/certs/new")) { @@ -66,9 +71,9 @@ public class GigiAPI extends HttpServlet { return; } try { - CertificateRequest cr = new CertificateRequest(u, csr); + CertificateRequest cr = new CertificateRequest(new AuthorizationContext(u, u), csr); Certificate result = cr.draft(); - Job job = result.issue(null, "2y"); + Job job = result.issue(null, "2y", u); job.waitFor(60000); if (result.getStatus() != CertificateStatus.ISSUED) { resp.sendError(510, "Error, issuing timed out");