]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/api/GigiAPI.java
upd: same things for test-template
[gigi.git] / src / org / cacert / gigi / api / GigiAPI.java
index ae8aee350efa70dc7837aabaa9685aeaeab755b1..d511d315801180e2c871c50b259e3ff1c5359d7d 100644 (file)
@@ -14,14 +14,17 @@ import javax.servlet.http.HttpServletResponse;
 import org.cacert.gigi.GigiApiException;
 import org.cacert.gigi.dbObjects.Certificate;
 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.Job;
+import org.cacert.gigi.util.AuthorizationContext;
 import org.cacert.gigi.util.PEM;
 
 public class GigiAPI extends HttpServlet {
 
+    private static final long serialVersionUID = 659963677032635817L;
+
     @Override
     protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         String pi = req.getPathInfo();
@@ -47,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")) {
 
@@ -64,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");