1 package club.wpia.gigi.api;
3 import java.io.IOException;
4 import java.math.BigInteger;
6 import javax.servlet.http.HttpServletRequest;
7 import javax.servlet.http.HttpServletResponse;
9 import club.wpia.gigi.GigiApiException;
10 import club.wpia.gigi.dbObjects.Certificate;
11 import club.wpia.gigi.dbObjects.CertificateOwner;
12 import club.wpia.gigi.dbObjects.Organisation;
13 import club.wpia.gigi.dbObjects.User;
14 import club.wpia.gigi.util.ServerConstants;
16 public class CATSResolve extends CATSRestrictedApi {
18 public static final String PATH = "/cats/resolve";
21 public void processAuthenticated(HttpServletRequest req, HttpServletResponse resp) throws IOException {
22 String target = req.getParameter("serial");
24 resp.sendError(500, "Error, requires a serial parameter");
27 BigInteger targetSerial;
29 targetSerial = Certificate.normalizeSerial(target);
30 } catch (GigiApiException e) {
31 resp.sendError(500, "Error, requires valid serial");
34 Certificate clientCert = Certificate.getBySerial(targetSerial);
35 if (clientCert == null) {
36 resp.sendError(500, "Error, requires valid serial");
39 CertificateOwner o = CertificateOwner.getByEnabledSerial(targetSerial);
40 if (o instanceof Organisation) {
41 Organisation org = (Organisation) o;
42 if (org.isSelfOrganisation()) {
43 if (hasMail(clientCert, ServerConstants.getQuizAdminMailAddress())) {
44 resp.setContentType("text/plain; charset=UTF-8");
45 resp.getWriter().print("admin");
50 if ( !(o instanceof User)) {
51 resp.sendError(500, "Error, requires valid serial");
54 resp.setContentType("text/plain; charset=UTF-8");
55 resp.getWriter().print(o.getId());