]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/account/IssueCertificateForm.java
Move initial forms into IssueCertificate form.
[gigi.git] / src / org / cacert / gigi / pages / account / IssueCertificateForm.java
index e470f21b515e9e6aa708ec9827c6c27c7eea2ba8..da57bec3a2e235244ef9b22ee5d0ee436c368468 100644 (file)
@@ -25,6 +25,7 @@ import org.cacert.gigi.output.template.HashAlgorithms;
 import org.cacert.gigi.output.template.IterableDataset;
 import org.cacert.gigi.output.template.Template;
 import org.cacert.gigi.pages.LoginPage;
+import org.cacert.gigi.util.RandomToken;
 
 import sun.security.pkcs10.PKCS10;
 
@@ -44,9 +45,14 @@ public class IssueCertificateForm extends Form {
 
     private final static Template t = new Template(IssueCertificateForm.class.getResource("IssueCertificateForm.templ"));
 
+    private final static Template tIni = new Template(MailCertificateAdd.class.getResource("RequestCertificate.templ"));
+
+    String spkacChallange;
+
     public IssueCertificateForm(HttpServletRequest hsr) {
         super(hsr);
         u = LoginPage.getUser(hsr);
+        spkacChallange = RandomToken.generateToken(16);
     }
 
     Certificate result;
@@ -128,6 +134,20 @@ public class IssueCertificateForm extends Form {
         return new PKCS10(b);
     }
 
+    @Override
+    public void output(PrintWriter out, Language l, Map<String, Object> vars) {
+        if (csr == null) {
+            HashMap<String, Object> vars2 = new HashMap<String, Object>(vars);
+            vars2.put("csrf", getCSRFToken());
+            vars2.put("csrf_name", getCsrfFieldName());
+            vars2.put("spkacChallange", spkacChallange);
+            tIni.output(out, l, vars2);
+            return;
+        } else {
+            super.output(out, l, vars);
+        }
+    }
+
     @Override
     protected void outputContent(PrintWriter out, Language l, Map<String, Object> vars) {
         HashMap<String, Object> vars2 = new HashMap<String, Object>(vars);
@@ -152,5 +172,4 @@ public class IssueCertificateForm extends Form {
         vars2.put("hashs", new HashAlgorithms(selectedDigest));
         t.output(out, l, vars2);
     }
-
 }