X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=tests%2Fclub%2Fwpia%2Fgigi%2FtestUtils%2FManagedTest.java;h=a6d51becff72a9f90dcda4e1175041aaf4a9b72d;hp=25df2725b22b324ae3692a8e73311b5a13dc77d2;hb=62b9a6519d6304820fdfa739ef9281e1cdaccb7d;hpb=7fbed5d72877a442af2f1290b60c5d3e7d5c0d23 diff --git a/tests/club/wpia/gigi/testUtils/ManagedTest.java b/tests/club/wpia/gigi/testUtils/ManagedTest.java index 25df2725..a6d51bec 100644 --- a/tests/club/wpia/gigi/testUtils/ManagedTest.java +++ b/tests/club/wpia/gigi/testUtils/ManagedTest.java @@ -19,12 +19,14 @@ import java.nio.file.Files; import java.nio.file.Paths; import java.security.GeneralSecurityException; import java.security.KeyManagementException; +import java.security.KeyPair; import java.security.NoSuchAlgorithmException; import java.security.Principal; import java.security.PrivateKey; import java.security.cert.X509Certificate; import java.sql.SQLException; import java.util.Locale; +import java.util.Map.Entry; import java.util.Properties; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -44,6 +46,8 @@ import club.wpia.gigi.GigiApiException; import club.wpia.gigi.database.GigiPreparedStatement; import club.wpia.gigi.database.GigiResultSet; import club.wpia.gigi.dbObjects.Certificate; +import club.wpia.gigi.dbObjects.Certificate.CSRType; +import club.wpia.gigi.dbObjects.Digest; import club.wpia.gigi.dbObjects.EmailAddress; import club.wpia.gigi.dbObjects.Group; import club.wpia.gigi.dbObjects.Job; @@ -101,8 +105,17 @@ public class ManagedTest extends ConfiguredTest { private static boolean inited = false; public static Properties initEnvironment() { + return initEnvironment(new Properties()); + } + + public static Properties initEnvironment(Properties additionalConfig) { try { Properties mainProps = ConfiguredTest.initEnvironment(); + for (Entry i : additionalConfig.entrySet()) { + if (i.getKey() instanceof String && i.getValue() instanceof String) { + mainProps.setProperty((String) i.getKey(), (String) i.getValue()); + } + } if (inited) { return mainProps; } @@ -550,4 +563,29 @@ public class ManagedTest extends ConfiguredTest { } } } + + protected String cookieWithCertificateLogin(User u) throws IOException, GigiApiException { + + try { + KeyPair kp; + kp = generateKeypair(); + + String csr; + csr = generatePEMCSR(kp, "CN=" + u.getPreferredName().toString()); + + Certificate c = new Certificate(u, u, Certificate.buildDN("CN", u.getPreferredName().toString()), Digest.SHA256, csr, CSRType.CSR, getClientProfile()); + final PrivateKey pk = kp.getPrivate(); + await(c.issue(null, "2y", u)); + final X509Certificate ce = c.cert(); + c.setLoginEnabled(true); + loginCertificate = c; + loginPrivateKey = pk; + return login(pk, ce); + } catch (InterruptedException e) { + throw new GigiApiException(e.toString()); + } catch (GeneralSecurityException e) { + throw new GigiApiException(e.toString()); + } + + } }