]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/account/CertificateIssueForm.java
Merge branch 'issuePeriod'
[gigi.git] / src / org / cacert / gigi / pages / account / CertificateIssueForm.java
index 184b87860ca8a0388a1ea36ddc52f02237f6767f..ff659225976a77a21106597e1ea23cf4e8655382 100644 (file)
@@ -27,6 +27,7 @@ import org.cacert.gigi.GigiApiException;
 import org.cacert.gigi.User;
 import org.cacert.gigi.crypto.SPKAC;
 import org.cacert.gigi.localisation.Language;
+import org.cacert.gigi.output.CertificateValiditySelector;
 import org.cacert.gigi.output.Form;
 import org.cacert.gigi.output.template.HashAlgorithms;
 import org.cacert.gigi.output.template.IterableDataset;
@@ -94,23 +95,25 @@ public class CertificateIssueForm extends Form {
             1, 3, 6, 1, 5, 5, 7, 3, 9
     });
 
-    User u;
+    private User u;
 
     private CSRType csrType;
 
-    String csr;
+    private String csr;
 
-    String spkacChallenge;
+    private String spkacChallenge;
 
     public String CN = DEFAULT_CN;
 
-    Set<SubjectAlternateName> SANs = new LinkedHashSet<>();
+    private Set<SubjectAlternateName> SANs = new LinkedHashSet<>();
 
-    Digest selectedDigest = Digest.getDefault();
+    private Digest selectedDigest = Digest.getDefault();
 
-    boolean login;
+    CertificateValiditySelector issueDate = new CertificateValiditySelector();
 
-    CertificateProfile profile = CertificateProfile.getById(1);
+    private boolean login;
+
+    private CertificateProfile profile = CertificateProfile.getById(1);
 
     public CertificateIssueForm(HttpServletRequest hsr) {
         super(hsr);
@@ -118,7 +121,7 @@ public class CertificateIssueForm extends Form {
         spkacChallenge = RandomToken.generateToken(16);
     }
 
-    Certificate result;
+    private Certificate result;
 
     public Certificate getResult() {
         return result;
@@ -230,6 +233,7 @@ public class CertificateIssueForm extends Form {
 
                 } else {
                     login = "1".equals(req.getParameter("login"));
+                    issueDate.update(req);
                     CN = req.getParameter("CN");
                     String hashAlg = req.getParameter("hash_alg");
                     if (hashAlg != null) {
@@ -296,7 +300,7 @@ public class CertificateIssueForm extends Form {
 
                     result = new Certificate(LoginPage.getUser(req).getId(), subject.toString(), selectedDigest.toString(), //
                             this.csr, this.csrType, profile, SANs.toArray(new SubjectAlternateName[SANs.size()]));
-                    result.issue().waitFor(60000);
+                    result.issue(issueDate.getFrom(), issueDate.getTo()).waitFor(60000);
                     return true;
                 }
             } catch (IOException e) {
@@ -407,6 +411,7 @@ public class CertificateIssueForm extends Form {
         }
 
         vars2.put("CN", CN);
+        vars2.put("validity", issueDate);
         vars2.put("emails", content.toString());
         vars2.put("hashs", new HashAlgorithms(selectedDigest));
         vars2.put("profiles", new IterableDataset() {