X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=tests%2Forg%2Fcacert%2Fgigi%2FLoginTest.java;h=ed1c932af6e9c4676e64c74c6c50debe42bacd9e;hb=d653987f7a1bcfb28948d162097994f01fcad379;hp=c0ff71a4a65a6b0ba4c9aa2588edd305304ec2f0;hpb=d3fae2244debf99eb93281c7302e8bd397868c49;p=gigi.git diff --git a/tests/org/cacert/gigi/LoginTest.java b/tests/org/cacert/gigi/LoginTest.java index c0ff71a4..ed1c932a 100644 --- a/tests/org/cacert/gigi/LoginTest.java +++ b/tests/org/cacert/gigi/LoginTest.java @@ -7,6 +7,7 @@ import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; +import java.net.URLEncoder; import java.security.GeneralSecurityException; import java.security.KeyPair; import java.security.PrivateKey; @@ -14,7 +15,6 @@ import java.security.cert.X509Certificate; import org.cacert.gigi.dbObjects.Certificate; import org.cacert.gigi.dbObjects.Certificate.CSRType; -import org.cacert.gigi.dbObjects.CertificateProfile; import org.cacert.gigi.dbObjects.Digest; import org.cacert.gigi.dbObjects.User; import org.cacert.gigi.testUtils.IOUtils; @@ -38,6 +38,23 @@ public class LoginTest extends ManagedTest { assertTrue(isLoggedin(login(email, TEST_PASSWORD))); } + @Test + public void testLoginRedirectBack() throws IOException { + String email = createUniqueName() + "@testmail.org"; + createVerifiedUser("an", "bn", email, TEST_PASSWORD); + + URL u0 = new URL("https://" + getServerName() + SECURE_REFERENCE); + HttpURLConnection huc0 = (HttpURLConnection) u0.openConnection(); + String headerField = stripCookie(huc0.getHeaderField("Set-Cookie")); + + HttpURLConnection huc = post(headerField, "/login", "username=" + URLEncoder.encode(email, "UTF-8") + "&password=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8"), 0); + + headerField = huc.getHeaderField("Set-Cookie"); + assertNotNull(headerField); + assertEquals(302, huc.getResponseCode()); + assertEquals("https://" + getServerName() + SECURE_REFERENCE, huc.getHeaderField("Location")); + } + @Test public void testLoginWrongPassword() throws IOException { String email = createUniqueName() + "@testmail.org"; @@ -76,13 +93,13 @@ public class LoginTest extends ManagedTest { KeyPair kp = generateKeypair(); String csr = generatePEMCSR(kp, "CN=hans"); User u = User.getById(user); - Certificate c = new Certificate(u, u, Certificate.buildDN("CN", "hans"), Digest.SHA256, csr, CSRType.CSR, CertificateProfile.getById(1)); + Certificate c = new Certificate(u, u, Certificate.buildDN("CN", "hans"), 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); String cookie = login(pk, ce); - URL u2 = new URL("https://" + getServerName().replaceFirst("^www.", "secure.") + SECURE_REFERENCE); + URL u2 = new URL("https://" + getSecureServerName() + SECURE_REFERENCE); HttpURLConnection huc = (HttpURLConnection) u2.openConnection(); huc.addRequestProperty("Cookie", cookie); authenticateClientCert(pk, ce, huc);