X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fapi%2FGigiAPI.java;h=c0d063db3a2aeaeaf8b6b5e6f9cfcd1ac2bbba46;hb=ba0e2099f18fc222c05abb0e293c2eb1bb01f0e9;hp=74cff967ef9d26ed445f37d5350a31f52a38b708;hpb=fc2fcf0b35bf4cde8f4a9c7243de3306e8b4b55b;p=gigi.git diff --git a/src/org/cacert/gigi/api/GigiAPI.java b/src/org/cacert/gigi/api/GigiAPI.java index 74cff967..c0d063db 100644 --- a/src/org/cacert/gigi/api/GigiAPI.java +++ b/src/org/cacert/gigi/api/GigiAPI.java @@ -1,19 +1,49 @@ package org.cacert.gigi.api; import java.io.IOException; +import java.io.InputStreamReader; +import java.util.HashMap; import javax.servlet.ServletException; +import javax.servlet.ServletInputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class GigiAPI extends HttpServlet { - @Override - protected void service(HttpServletRequest req, HttpServletResponse resp) - throws ServletException, IOException { - String pi = req.getPathInfo(); - if (pi == null) { - return; - } - } + + private static final long serialVersionUID = 659963677032635817L; + + HashMap api = new HashMap<>(); + + public GigiAPI() { + api.put(CreateCertificate.PATH, new CreateCertificate()); + api.put(RevokeCertificate.PATH, new RevokeCertificate()); + api.put(CATSImport.PATH, new CATSImport()); + } + + @Override + protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + String pi = req.getPathInfo(); + if (pi == null) { + return; + } + if (pi.equals("/security/csp/report")) { + ServletInputStream sis = req.getInputStream(); + InputStreamReader isr = new InputStreamReader(sis, "UTF-8"); + StringBuffer strB = new StringBuffer(); + char[] buffer = new char[4 * 1024]; + int len; + while ((len = isr.read(buffer)) > 0) { + strB.append(buffer, 0, len); + } + System.out.println(strB); + return; + } + + APIPoint p = api.get(pi); + if (p != null) { + p.process(req, resp); + } + } }