1 package org.cacert.gigi.api;
3 import java.io.IOException;
4 import java.io.InputStreamReader;
5 import java.util.HashMap;
7 import javax.servlet.ServletException;
8 import javax.servlet.ServletInputStream;
9 import javax.servlet.http.HttpServlet;
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
13 import org.cacert.gigi.database.DatabaseConnection;
14 import org.cacert.gigi.database.DatabaseConnection.Link;
16 public class GigiAPI extends HttpServlet {
18 private static final long serialVersionUID = 659963677032635817L;
20 HashMap<String, APIPoint> api = new HashMap<>();
23 api.put(CreateCertificate.PATH, new CreateCertificate());
24 api.put(RevokeCertificate.PATH, new RevokeCertificate());
25 api.put(CATSImport.PATH, new CATSImport());
26 api.put(CATSResolve.PATH, new CATSResolve());
27 FindAgent.register(api);
31 protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
32 String pi = req.getPathInfo();
36 if (pi.equals("/security/csp/report")) {
37 ServletInputStream sis = req.getInputStream();
38 InputStreamReader isr = new InputStreamReader(sis, "UTF-8");
39 StringBuffer strB = new StringBuffer();
40 char[] buffer = new char[4 * 1024];
42 while ((len = isr.read(buffer)) > 0) {
43 strB.append(buffer, 0, len);
45 System.out.println(strB);
49 APIPoint p = api.get(pi);
50 try (Link l = DatabaseConnection.newLink(false)) {
54 } catch (InterruptedException e) {