]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/api/CATSResolve.java
fix: restrict access to CATS-API even more
[gigi.git] / src / org / cacert / gigi / api / CATSResolve.java
index 0e9f2a01e08bfc71f8a7760e0485d256936d02ba..332885a97f08411df3d50cb3f48843b27767be04 100644 (file)
@@ -5,31 +5,28 @@ import java.io.IOException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.cacert.gigi.dbObjects.Certificate;
 import org.cacert.gigi.dbObjects.CertificateOwner;
-import org.cacert.gigi.dbObjects.Organisation;
 import org.cacert.gigi.dbObjects.User;
 
-public class CATSResolve extends APIPoint {
+public class CATSResolve extends CATSRestrictedApi {
 
     public static final String PATH = "/cats/resolve";
 
     @Override
-    public void process(HttpServletRequest req, HttpServletResponse resp, CertificateOwner u) throws IOException {
-        if ( !(u instanceof Organisation)) {
-            resp.sendError(500, "Error, invalid cert");
-            return;
-        }
-        if ( !((Organisation) u).isSelfOrganisation()) {
-            resp.sendError(500, "Error, invalid cert");
-            return;
-        }
+    public void processAuthenticated(HttpServletRequest req, HttpServletResponse resp) throws IOException {
         String target = req.getParameter("serial");
         if (target == null) {
             resp.sendError(500, "Error, requires a serial parameter");
             return;
         }
-
-        CertificateOwner o = CertificateOwner.getByEnabledSerial(target.toLowerCase());
+        target = target.toLowerCase();
+        Certificate clientCert = Certificate.getBySerial(target);
+        if (clientCert == null) {
+            resp.sendError(500, "Error, requires valid serial");
+            return;
+        }
+        CertificateOwner o = CertificateOwner.getByEnabledSerial(target);
         if ( !(o instanceof User)) {
             resp.sendError(500, "Error, requires valid serial");
             return;