import org.cacert.gigi.dbObjects.Certificate;
import org.cacert.gigi.dbObjects.CertificateOwner;
+import org.cacert.gigi.dbObjects.Organisation;
import org.cacert.gigi.dbObjects.User;
+import org.cacert.gigi.util.ServerConstants;
public class CATSResolve extends CATSRestrictedApi {
return;
}
CertificateOwner o = CertificateOwner.getByEnabledSerial(target);
+ if (o instanceof Organisation) {
+ Organisation org = (Organisation) o;
+ if (org.isSelfOrganisation()) {
+ if (hasMail(clientCert, ServerConstants.getQuizAdminMailAddress())) {
+ resp.setContentType("text/plain; charset=UTF-8");
+ resp.getWriter().print("admin");
+ return;
+ }
+ }
+ }
if ( !(o instanceof User)) {
resp.sendError(500, "Error, requires valid serial");
return;
return "quiz@" + ServerConstants.getWwwHostName().replaceFirst("^www\\.", "");
}
+ public static String getQuizAdminMailAddress() {
+ return "quiz-admin@" + ServerConstants.getWwwHostName().replaceFirst("^www\\.", "");
+ }
+
}
import org.cacert.gigi.dbObjects.User;
import org.cacert.gigi.testUtils.IOUtils;
import org.cacert.gigi.testUtils.RestrictedApiTest;
+import org.cacert.gigi.util.ServerConstants;
import org.junit.Test;
public class ImportCATSResult extends RestrictedApiTest {
target2.setLoginEnabled(true);
assertEquals(u.getId(), Integer.parseInt(apiLookup(target2)));
+
+ Certificate target3 = new Certificate(selfOrg, u, Certificate.buildDN("EMAIL", ServerConstants.getQuizAdminMailAddress()), Digest.SHA256, generatePEMCSR(generateKeypair(), "EMAIL=" + ServerConstants.getQuizAdminMailAddress()), CSRType.CSR, CertificateProfile.getByName("client-orga"), new Certificate.SubjectAlternateName(SANType.EMAIL, ServerConstants.getQuizAdminMailAddress()));
+ await(target3.issue(null, "2y", u));
+ target3.setLoginEnabled(true);
+
+ assertEquals("admin", apiLookup(target3));
}
@Test