X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Fclub%2Fwpia%2Fgigi%2Fpages%2FRootCertPage.java;h=b065463d971f075a1e1cde81de4e868a0b183b51;hb=010f5d1a8bb003834222e6d854194a6c6e5e5cb7;hp=25c024138093310a7173d0a4236bece2b3c321b6;hpb=59bc09e6a04eda765ab63b5a27a6f48bfdcbeda7;p=gigi.git diff --git a/src/club/wpia/gigi/pages/RootCertPage.java b/src/club/wpia/gigi/pages/RootCertPage.java index 25c02413..b065463d 100644 --- a/src/club/wpia/gigi/pages/RootCertPage.java +++ b/src/club/wpia/gigi/pages/RootCertPage.java @@ -2,13 +2,13 @@ package club.wpia.gigi.pages; import java.io.IOException; import java.io.PrintWriter; +import java.security.GeneralSecurityException; import java.security.KeyStore; import java.security.KeyStoreException; import java.security.cert.Certificate; import java.security.cert.CertificateEncodingException; import java.util.Collections; import java.util.Comparator; -import java.util.HashMap; import java.util.LinkedList; import java.util.Map; @@ -16,9 +16,11 @@ import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import club.wpia.gigi.GigiApiException; import club.wpia.gigi.dbObjects.CACertificate; import club.wpia.gigi.localisation.Language; import club.wpia.gigi.output.template.Outputable; +import club.wpia.gigi.util.CertExporter; import club.wpia.gigi.util.HTMLEncoder; import club.wpia.gigi.util.PEM; import club.wpia.gigi.util.ServerConstants; @@ -108,6 +110,20 @@ public class RootCertPage extends Page { e.printStackTrace(); } return true; + } else if (req.getParameter("bundle") != null && root != null) { + resp.setContentType("application/x-x509-ca-cert"); + resp.setHeader("Content-Disposition", "attachment; filename=\"" + appName + "_intermediate_bundle.p7b\""); + ServletOutputStream out = resp.getOutputStream(); + try { + CertExporter.writeCertBundle(out); + } catch (CertificateEncodingException e) { + e.printStackTrace(); + } catch (GeneralSecurityException e) { + e.printStackTrace(); + } catch (GigiApiException e) { + e.printStackTrace(); + } + return true; } else if (req.getParameter("cer") != null && root != null) { resp.setContentType("application/x-x509-ca-cert"); resp.setHeader("Content-Disposition", "attachment; filename=\"" + appName + "_roots.cer\""); @@ -124,8 +140,9 @@ public class RootCertPage extends Page { @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { - HashMap map = new HashMap(); + Map map = Page.getDefaultVars(req); map.put("root", rootP); + map.put("bundle", appName + "_intermediate_bundle.p7b"); getDefaultTemplate().output(resp.getWriter(), getLanguage(req), map); }