1 package org.cacert.gigi.api;
3 import java.io.IOException;
5 import javax.servlet.http.HttpServletRequest;
6 import javax.servlet.http.HttpServletResponse;
8 import org.cacert.gigi.dbObjects.Certificate;
9 import org.cacert.gigi.dbObjects.CertificateOwner;
10 import org.cacert.gigi.dbObjects.Organisation;
11 import org.cacert.gigi.dbObjects.User;
12 import org.cacert.gigi.util.ServerConstants;
14 public class CATSResolve extends CATSRestrictedApi {
16 public static final String PATH = "/cats/resolve";
19 public void processAuthenticated(HttpServletRequest req, HttpServletResponse resp) throws IOException {
20 String target = req.getParameter("serial");
22 resp.sendError(500, "Error, requires a serial parameter");
25 target = target.toLowerCase();
26 Certificate clientCert = Certificate.getBySerial(target);
27 if (clientCert == null) {
28 resp.sendError(500, "Error, requires valid serial");
31 CertificateOwner o = CertificateOwner.getByEnabledSerial(target);
32 if (o instanceof Organisation) {
33 Organisation org = (Organisation) o;
34 if (org.isSelfOrganisation()) {
35 if (hasMail(clientCert, ServerConstants.getQuizAdminMailAddress())) {
36 resp.setContentType("text/plain; charset=UTF-8");
37 resp.getWriter().print("admin");
42 if ( !(o instanceof User)) {
43 resp.sendError(500, "Error, requires valid serial");
46 resp.setContentType("text/plain; charset=UTF-8");
47 resp.getWriter().print(o.getId());