serverPort.https=443
serverPort.http=80
mail=localhost:8474
+#withSigner=false
# ==== OR ===
type=autonomous
String key1 = generatePEMCSR(kp, "CN=testmail@example.com");
Certificate c = new Certificate(u, u, Certificate.buildDN("CN", "testmail@example.com"), Digest.SHA256, key1, CSRType.CSR, CertificateProfile.getById(1));
final PrivateKey pk = kp.getPrivate();
- c.issue(null, "2y", u).waitFor(60000);
+ await(c.issue(null, "2y", u));
final X509Certificate ce = c.cert();
assertNotNull(login(pk, ce));
}
new SubjectAlternateName(SANType.EMAIL, "testmail@example.com"), new SubjectAlternateName(SANType.DNS, "testmail.example.com"));
testFails(CertificateStatus.DRAFT, c);
- c.issue(null, "2y", u).waitFor(60000);
+ await(c.issue(null, "2y", u));
X509Certificate cert = c.cert();
Collection<List<?>> sans = cert.getSubjectAlternativeNames();
assertEquals(2, sans.size());
final PrivateKey pk = kp.getPrivate();
testFails(CertificateStatus.DRAFT, c);
- c.issue(null, "2y", u).waitFor(60000);
+ await(c.issue(null, "2y", u));
String cookie = login(u.getEmail(), TEST_PASSWORD);
testFails(CertificateStatus.ISSUED, c);
assertNotNull(login(pk, cert));
assertEquals(1, countRegex(IOUtils.readURL(get(cookie, Certificates.PATH)), "<td>(?:REVOKED|ISSUED)</td>"));
assertEquals(1, countRegex(IOUtils.readURL(get(cookie, Certificates.PATH + "?withRevoked")), "<td>(?:REVOKED|ISSUED)</td>"));
- c.revoke().waitFor(60000);
+ await(c.revoke());
testFails(CertificateStatus.REVOKED, c);
assertNull(login(pk, cert));
String key = generatePEMCSR(kp, "CN=testmail@example.com");
Certificate c = new Certificate(u, u, Certificate.buildDN("CN", "testmail@example.com"), Digest.SHA256, key, CSRType.CSR, CertificateProfile.getById(1));
final PrivateKey pk = kp.getPrivate();
- c.issue(null, "2y", u).waitFor(60000);
+ await(c.issue(null, "2y", u));
URLConnection con = new URL("https://" + ServerConstants.getSecureHostNamePort()).openConnection();
authenticateClientCert(pk, c.cert(), (HttpURLConnection) con);
User u = User.getById(user);
Certificate c = new Certificate(u, u, Certificate.buildDN("CN", "hans"), Digest.SHA256, csr, CSRType.CSR, CertificateProfile.getById(1));
final PrivateKey pk = kp.getPrivate();
- c.issue(null, "2y", u).waitFor(60000);
+ await(c.issue(null, "2y", u));
final X509Certificate ce = c.cert();
String scookie = login(pk, ce);
Certificate c2 = new Certificate(u, u, Certificate.buildDN("CN", "hans"), Digest.SHA256, csr, CSRType.CSR, CertificateProfile.getById(1));
final PrivateKey pk = kp.getPrivate();
Job j1 = c.issue(null, "2y", u);
- c2.issue(null, "2y", u).waitFor(60000);
- j1.waitFor(60000);
+ await(c2.issue(null, "2y", u));
+ await(j1);
final X509Certificate ce = c.cert();
String scookie = login(pk, ce);
String key1 = generatePEMCSR(kp, "EMAIL=cats@cacert.org");
Certificate c = new Certificate(o, u, Certificate.buildDN("EMAIL", "cats@cacert.org"), Digest.SHA256, key1, CSRType.CSR, CertificateProfile.getByName("client-orga"), new Certificate.SubjectAlternateName(SANType.EMAIL, "cats@cacert.org"));
pk = kp.getPrivate();
- c.issue(null, "2y", u).waitFor(60000);
+ await(c.issue(null, "2y", u));
ce = c.cert();
}
@Test
public void testLookupSerial() throws GigiApiException, IOException, GeneralSecurityException, InterruptedException {
Certificate target2 = new Certificate(u, u, Certificate.buildDN("EMAIL", u.getEmail()), Digest.SHA256, generatePEMCSR(generateKeypair(), "EMAIL=" + u.getEmail()), CSRType.CSR, CertificateProfile.getByName("client"), new Certificate.SubjectAlternateName(SANType.EMAIL, "cats@cacert.org"));
- target2.issue(null, "2y", u).waitFor(60000);
+ await(target2.issue(null, "2y", u));
assertEquals(u.getId(), Integer.parseInt(apiLookup(target2)));
}
String key1 = generatePEMCSR(kp, "EMAIL=testmail@example.com");
c = new Certificate(u, u, Certificate.buildDN("EMAIL", "testmail@example.com"), Digest.SHA256, key1, CSRType.CSR, CertificateProfile.getById(1));
pk = kp.getPrivate();
- c.issue(null, "2y", u).waitFor(60000);
+ await(c.issue(null, "2y", u));
ce = c.cert();
} catch (Exception e) {
throw new Error(e);
import org.cacert.gigi.dbObjects.Certificate.CSRType;
import org.cacert.gigi.dbObjects.CertificateProfile;
import org.cacert.gigi.dbObjects.Digest;
+import org.cacert.gigi.dbObjects.Job;
import org.cacert.gigi.dbObjects.User;
import org.cacert.gigi.testUtils.IOUtils;
import org.cacert.gigi.testUtils.PingTest;
String csr = generatePEMCSR(kp, "CN=" + test);
User u = User.getById(id);
Certificate c = new Certificate(u, u, Certificate.buildDN("CN", test), Digest.SHA256, csr, CSRType.CSR, profile);
- c.issue(null, "2y", u).waitFor(60000);
+ Job j = c.issue(null, "2y", u);
+ await(j);
this.c = c.cert();
}
import org.cacert.gigi.dbObjects.DomainPingType;
import org.cacert.gigi.dbObjects.EmailAddress;
import org.cacert.gigi.dbObjects.Group;
+import org.cacert.gigi.dbObjects.Job;
import org.cacert.gigi.dbObjects.ObjectCache;
import org.cacert.gigi.dbObjects.User;
import org.cacert.gigi.pages.Manager;
String[] parts = testProps.getProperty("mail").split(":", 2);
ter = new TestEmailReceiver(new InetSocketAddress(parts[0], Integer.parseInt(parts[1])));
ter.start();
+ if (testProps.getProperty("withSigner", "false").equals("true")) {
+ SimpleSigner.runSigner();
+ }
return;
}
url = testProps.getProperty("name.www") + ":" + testProps.getProperty("serverPort.https");
}
+ protected void await(Job j) throws InterruptedException {
+ SimpleSigner.ping();
+ j.waitFor(5000);
+ }
+
public static void purgeDatabase() throws SQLException, IOException {
System.out.print("... resetting Database");
long ms = System.currentTimeMillis();
runner.start();
}
+ public static void ping() {
+ synchronized (SimpleSigner.class) {
+ SimpleSigner.class.notifyAll();
+ try {
+ SimpleSigner.class.wait(2000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
private synchronized static void work() {
try {
gencrl();
signCertificates();
revokeCertificates();
+ SimpleSigner.class.notifyAll();
SimpleSigner.class.wait(5000);
} catch (IOException e) {
e.printStackTrace();