X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Faccount%2Fcerts%2FCertificateIssueForm.java;h=0a29fb2d7506e8037750e455426485508048b564;hp=badef543fdc4474cc4e569f558c9b402a9c81ce1;hb=65e50396a0c9fdc000036f5990ffa1b388df4c5e;hpb=17a15662212d973d12ed4cea3f5eaa9c0d1169ed diff --git a/src/org/cacert/gigi/pages/account/certs/CertificateIssueForm.java b/src/org/cacert/gigi/pages/account/certs/CertificateIssueForm.java index badef543..0a29fb2d 100644 --- a/src/org/cacert/gigi/pages/account/certs/CertificateIssueForm.java +++ b/src/org/cacert/gigi/pages/account/certs/CertificateIssueForm.java @@ -10,6 +10,7 @@ import javax.servlet.http.HttpServletRequest; import org.cacert.gigi.GigiApiException; import org.cacert.gigi.dbObjects.Certificate; +import org.cacert.gigi.dbObjects.Certificate.CertificateStatus; import org.cacert.gigi.dbObjects.Certificate.SubjectAlternateName; import org.cacert.gigi.dbObjects.CertificateProfile; import org.cacert.gigi.dbObjects.Organisation; @@ -56,18 +57,18 @@ public class CertificateIssueForm extends Form { CertificateValiditySelector issueDate = new CertificateValiditySelector(); @Override - public boolean submit(HttpServletRequest req) throws GigiApiException { + public SubmissionResult submit(HttpServletRequest req) throws GigiApiException { String csr = req.getParameter("CSR"); String spkac = req.getParameter("SPKAC"); try { if (csr != null) { cr = new CertificateRequest(c, csr); // TODO cr.checkKeyStrength(out); - return false; + return new FormContinue(); } else if (spkac != null) { cr = new CertificateRequest(c, spkac, spkacChallenge); // TODO cr.checkKeyStrength(out); - return false; + return new FormContinue(); } else if (cr != null) { login = "1".equals(req.getParameter("login")); issueDate.update(req); @@ -94,7 +95,15 @@ public class CertificateIssueForm extends Form { } result.issue(issueDate.getFrom(), issueDate.getTo(), c.getActor()).waitFor(60000); this.result = result; - return true; + Certificate c = result; + if (c.getStatus() != CertificateStatus.ISSUED) { + throw new PermamentFormException(new GigiApiException("Timeout while waiting for certificate.")); + } + String ser = c.getSerial(); + if (ser.isEmpty()) { + throw new PermamentFormException(new GigiApiException("Timeout while waiting for certificate.")); + } + return new RedirectResult(Certificates.PATH + "/" + ser); } else { throw new GigiApiException("Error no action."); }