Added SAML servlets adapter tests to integration-arquillian
This commit is contained in:
parent
fee1dea3e6
commit
595e7a92e2
2 changed files with 430 additions and 0 deletions
|
@ -0,0 +1,11 @@
|
|||
package org.keycloak.testsuite.adapter.servlet;
|
||||
|
||||
import org.keycloak.testsuite.arquillian.annotation.AdapterLibsLocationProperty;
|
||||
|
||||
/**
|
||||
* @author mhajas
|
||||
*/
|
||||
@AdapterLibsLocationProperty("adapter.libs.wildfly")
|
||||
public class WildflyRelativeSAMLServletsAdapterTest extends AbstractSAMLServletsAdapterTest {
|
||||
|
||||
}
|
|
@ -0,0 +1,419 @@
|
|||
package org.keycloak.testsuite.adapter.servlet;
|
||||
|
||||
import org.jboss.arquillian.container.test.api.Deployment;
|
||||
import org.jboss.arquillian.graphene.page.Page;
|
||||
import org.jboss.shrinkwrap.api.spec.WebArchive;
|
||||
import org.junit.Test;
|
||||
import org.keycloak.admin.client.resource.ClientResource;
|
||||
import org.keycloak.representations.idm.ClientRepresentation;
|
||||
import org.keycloak.representations.idm.RealmRepresentation;
|
||||
import org.keycloak.testsuite.adapter.AbstractServletsAdapterTest;
|
||||
import org.keycloak.testsuite.adapter.page.*;
|
||||
import org.keycloak.testsuite.admin.ApiUtil;
|
||||
import org.keycloak.testsuite.util.IOUtil;
|
||||
import org.w3c.dom.Document;
|
||||
|
||||
import javax.ws.rs.core.Response;
|
||||
import java.util.List;
|
||||
|
||||
import static com.mongodb.util.MyAsserts.assertFalse;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.keycloak.testsuite.auth.page.AuthRealm.SAMLSERVLETDEMO;
|
||||
import static org.keycloak.testsuite.util.IOUtil.*;
|
||||
import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlStartsWith;
|
||||
|
||||
/**
|
||||
* @author mhajas
|
||||
*/
|
||||
public class AbstractSAMLServletsAdapterTest extends AbstractServletsAdapterTest {
|
||||
@Page
|
||||
private BadClientSalesPostSigServlet badClientSalesPostSigServletPage;
|
||||
|
||||
@Page
|
||||
private BadRealmSalesPostSigServlet badRealmSalesPostSigServletPage;
|
||||
|
||||
@Page
|
||||
private Employee2Servlet employee2ServletPage;
|
||||
|
||||
@Page
|
||||
private EmployeeSigServlet employeeSigServletPage;
|
||||
|
||||
@Page
|
||||
private EmployeeSigFrontServlet employeeSigFrontServletPage;
|
||||
|
||||
@Page
|
||||
private SalesMetadataServlet salesMetadataServletPage;
|
||||
|
||||
@Page
|
||||
private SalesPostServlet salesPostServletPage;
|
||||
|
||||
@Page
|
||||
private SalesPostEncServlet salesPostEncServletPage;
|
||||
|
||||
@Page
|
||||
private SalesPostPassiveServlet salesPostPassiveServletPage;
|
||||
|
||||
@Page
|
||||
private SalesPostSigServlet salesPostSigServletPage;
|
||||
|
||||
@Page
|
||||
private SalesPostSigEmailServlet salesPostSigEmailServletPage;
|
||||
|
||||
@Page
|
||||
private SalesPostSigPersistentServlet salesPostSigPersistentServletPage;
|
||||
|
||||
@Page
|
||||
private SalesPostSigTransientServlet salesPostSigTransientServletPage;
|
||||
|
||||
@Deployment(name = BadClientSalesPostSigServlet.DEPLOYMENT_NAME)
|
||||
protected static WebArchive badClientSalesPostSig() {
|
||||
return samlServletDeployment(BadClientSalesPostSigServlet.DEPLOYMENT_NAME, SendUsernameServlet.class);
|
||||
}
|
||||
|
||||
@Deployment(name = BadRealmSalesPostSigServlet.DEPLOYMENT_NAME)
|
||||
protected static WebArchive badRealmSalesPostSig() {
|
||||
return samlServletDeployment(BadRealmSalesPostSigServlet.DEPLOYMENT_NAME, SendUsernameServlet.class);
|
||||
}
|
||||
|
||||
@Deployment(name = Employee2Servlet.DEPLOYMENT_NAME)
|
||||
protected static WebArchive employee2() {
|
||||
return samlServletDeployment(Employee2Servlet.DEPLOYMENT_NAME, SendUsernameServlet.class);
|
||||
}
|
||||
|
||||
@Deployment(name = EmployeeSigServlet.DEPLOYMENT_NAME)
|
||||
protected static WebArchive employeeSig() {
|
||||
return samlServletDeployment(EmployeeSigServlet.DEPLOYMENT_NAME, SendUsernameServlet.class);
|
||||
}
|
||||
|
||||
@Deployment(name = EmployeeSigFrontServlet.DEPLOYMENT_NAME)
|
||||
protected static WebArchive employeeSigFront() {
|
||||
return samlServletDeployment(EmployeeSigFrontServlet.DEPLOYMENT_NAME, SendUsernameServlet.class);
|
||||
}
|
||||
|
||||
@Deployment(name = SalesMetadataServlet.DEPLOYMENT_NAME)
|
||||
protected static WebArchive salesMetadata() {
|
||||
return samlServletDeployment(SalesMetadataServlet.DEPLOYMENT_NAME, SendUsernameServlet.class);
|
||||
}
|
||||
|
||||
@Deployment(name = SalesPostServlet.DEPLOYMENT_NAME)
|
||||
protected static WebArchive salesPost() {
|
||||
return samlServletDeployment(SalesPostServlet.DEPLOYMENT_NAME, SendUsernameServlet.class);
|
||||
}
|
||||
|
||||
@Deployment(name = SalesPostEncServlet.DEPLOYMENT_NAME)
|
||||
protected static WebArchive salesPostEnc() {
|
||||
return samlServletDeployment(SalesPostEncServlet.DEPLOYMENT_NAME, SendUsernameServlet.class);
|
||||
}
|
||||
|
||||
@Deployment(name = SalesPostPassiveServlet.DEPLOYMENT_NAME)
|
||||
protected static WebArchive salesPostPassive() {
|
||||
return samlServletDeployment(SalesPostPassiveServlet.DEPLOYMENT_NAME, SendUsernameServlet.class);
|
||||
}
|
||||
|
||||
@Deployment(name = SalesPostSigServlet.DEPLOYMENT_NAME)
|
||||
protected static WebArchive salesPostSig() {
|
||||
return samlServletDeployment(SalesPostSigServlet.DEPLOYMENT_NAME, SendUsernameServlet.class);
|
||||
}
|
||||
|
||||
@Deployment(name = SalesPostSigEmailServlet.DEPLOYMENT_NAME)
|
||||
protected static WebArchive salesPostSigEmail() {
|
||||
return samlServletDeployment(SalesPostSigEmailServlet.DEPLOYMENT_NAME, SendUsernameServlet.class);
|
||||
}
|
||||
|
||||
@Deployment(name = SalesPostSigPersistentServlet.DEPLOYMENT_NAME)
|
||||
protected static WebArchive salesPostSigPersistent() {
|
||||
return samlServletDeployment(SalesPostSigPersistentServlet.DEPLOYMENT_NAME, SendUsernameServlet.class);
|
||||
}
|
||||
|
||||
@Deployment(name = SalesPostSigTransientServlet.DEPLOYMENT_NAME)
|
||||
protected static WebArchive salesPostSigTransient() {
|
||||
return samlServletDeployment(SalesPostSigTransientServlet.DEPLOYMENT_NAME, SendUsernameServlet.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addAdapterTestRealms(List<RealmRepresentation> testRealms) {
|
||||
testRealms.add(loadRealm("/adapter-test/keycloak-saml/testsaml.json"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDefaultPageUriParameters() {
|
||||
super.setDefaultPageUriParameters();
|
||||
testRealmPage.setAuthRealm(SAMLSERVLETDEMO);
|
||||
testRealmSAMLLoginPage.setAuthRealm(SAMLSERVLETDEMO);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void disabledClientTest() {
|
||||
ClientResource clientResource = ApiUtil.findClientResourceByClientId(testRealmResource(), "http://localhost:8081/sales-post-sig/");
|
||||
ClientRepresentation client = clientResource.toRepresentation();
|
||||
client.setEnabled(false);
|
||||
clientResource.update(client);
|
||||
|
||||
salesPostSigServletPage.navigateTo();
|
||||
assertTrue(driver.getPageSource().contains("Login requester not enabled"));
|
||||
|
||||
client.setEnabled(true);
|
||||
clientResource.update(client);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void unauthorizedSSOTest() {
|
||||
salesPostServletPage.navigateTo();
|
||||
testRealmSAMLLoginPage.form().login("unauthorized", "password");
|
||||
|
||||
assertFalse(driver.getPageSource().contains("principal="));
|
||||
assertTrue(driver.getPageSource().contains("Forbidden"));
|
||||
|
||||
employee2ServletPage.navigateTo();
|
||||
assertFalse(driver.getPageSource().contains("principal="));
|
||||
assertTrue(driver.getPageSource().contains("Forbidden"));
|
||||
|
||||
employeeSigFrontServletPage.navigateTo();
|
||||
assertFalse(driver.getPageSource().contains("principal="));
|
||||
assertTrue(driver.getPageSource().contains("Forbidden"));
|
||||
|
||||
salesPostSigPersistentServletPage.navigateTo();
|
||||
assertFalse(driver.getPageSource().contains("principal="));
|
||||
assertTrue(driver.getPageSource().contains("Forbidden"));
|
||||
|
||||
salesPostServletPage.logout();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void singleLoginAndLogoutSAMLTest() {
|
||||
salesPostServletPage.navigateTo();
|
||||
testRealmSAMLLoginPage.form().login(bburkeUser);
|
||||
assertTrue(driver.getPageSource().contains("principal=bburke"));
|
||||
|
||||
salesPostSigServletPage.navigateTo();
|
||||
assertTrue(driver.getPageSource().contains("principal=bburke"));
|
||||
|
||||
employee2ServletPage.navigateTo();
|
||||
assertTrue(driver.getPageSource().contains("principal=bburke"));
|
||||
|
||||
salesPostEncServletPage.navigateTo();
|
||||
assertTrue(driver.getPageSource().contains("principal=bburke"));
|
||||
|
||||
employeeSigFrontServletPage.logout();
|
||||
|
||||
employeeSigFrontServletPage.navigateTo();
|
||||
assertCurrentUrlStartsWith(testRealmSAMLLoginPage);
|
||||
|
||||
employeeSigServletPage.navigateTo();
|
||||
assertCurrentUrlStartsWith(testRealmSAMLLoginPage);
|
||||
|
||||
salesPostPassiveServletPage.navigateTo();
|
||||
assertTrue(driver.getPageSource().contains("Forbidden"));
|
||||
|
||||
salesPostSigEmailServletPage.navigateTo();
|
||||
assertCurrentUrlStartsWith(testRealmSAMLLoginPage);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void badClientSalesPostSigTest() {
|
||||
badClientSalesPostSigServletPage.navigateTo();
|
||||
assertTrue(driver.getPageSource().contains("invalidRequesterMessage"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void badRealmSalesPostSigTest() {
|
||||
badRealmSalesPostSigServletPage.navigateTo();
|
||||
testRealmSAMLLoginPage.form().login(bburkeUser);
|
||||
assertTrue(driver.getPageSource().contains("Forbidden"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void employee2Test() {
|
||||
employee2ServletPage.navigateTo();
|
||||
testRealmSAMLLoginPage.form().login(bburkeUser);
|
||||
assertTrue(driver.getPageSource().contains("principal=bburke"));
|
||||
|
||||
employee2ServletPage.logout();
|
||||
employee2ServletPage.navigateTo();
|
||||
assertCurrentUrlStartsWith(testRealmSAMLLoginPage);
|
||||
|
||||
testRealmSAMLLoginPage.form().login("unauthorized", "password");
|
||||
assertFalse(driver.getPageSource().contains("principal="));
|
||||
assertTrue(driver.getPageSource().contains("Forbidden"));
|
||||
employee2ServletPage.logout();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void employeeSigTest() {
|
||||
employeeSigServletPage.navigateTo();
|
||||
testRealmSAMLLoginPage.form().login(bburkeUser);
|
||||
assertTrue(driver.getPageSource().contains("principal=bburke"));
|
||||
|
||||
employeeSigServletPage.logout();
|
||||
employeeSigServletPage.navigateTo();
|
||||
assertCurrentUrlStartsWith(testRealmSAMLLoginPage);
|
||||
|
||||
testRealmSAMLLoginPage.form().login("unauthorized", "password");
|
||||
assertFalse(driver.getPageSource().contains("principal="));
|
||||
assertTrue(driver.getPageSource().contains("Forbidden"));
|
||||
employeeSigServletPage.logout();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void employeeSigFrontTest() {
|
||||
employeeSigFrontServletPage.navigateTo();
|
||||
testRealmSAMLLoginPage.form().login(bburkeUser);
|
||||
assertTrue(driver.getPageSource().contains("principal=bburke"));
|
||||
|
||||
employeeSigFrontServletPage.logout();
|
||||
employeeSigFrontServletPage.navigateTo();
|
||||
assertCurrentUrlStartsWith(testRealmSAMLLoginPage);
|
||||
|
||||
testRealmSAMLLoginPage.form().login("unauthorized", "password");
|
||||
assertFalse(driver.getPageSource().contains("principal="));
|
||||
assertTrue(driver.getPageSource().contains("Forbidden"));
|
||||
employeeSigFrontServletPage.logout();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void salesMetadataTest() throws Exception {
|
||||
Document doc = loadXML(AbstractSAMLServletsAdapterTest.class.getResourceAsStream("/adapter-test/keycloak-saml/sp-metadata.xml"));
|
||||
|
||||
modifyDocElementAttribute(doc, "SingleLogoutService", "Location", "8080", System.getProperty("auth.server.http.port", null));
|
||||
modifyDocElementAttribute(doc, "AssertionConsumerService", "Location", "8080", System.getProperty("auth.server.http.port", null));
|
||||
|
||||
ClientRepresentation clientRep = testRealmResource().convertClientDescription(IOUtil.documentToString(doc));
|
||||
Response response = testRealmResource().clients().create(clientRep);
|
||||
assertEquals(201, response.getStatus());
|
||||
|
||||
salesMetadataServletPage.navigateTo();
|
||||
testRealmSAMLLoginPage.form().login(bburkeUser);
|
||||
assertTrue(driver.getPageSource().contains("principal=bburke"));
|
||||
|
||||
salesMetadataServletPage.logout();
|
||||
salesMetadataServletPage.navigateTo();
|
||||
assertCurrentUrlStartsWith(testRealmSAMLLoginPage);
|
||||
|
||||
testRealmSAMLLoginPage.form().login("unauthorized", "password");
|
||||
assertFalse(driver.getPageSource().contains("principal="));
|
||||
assertTrue(driver.getPageSource().contains("Forbidden"));
|
||||
salesMetadataServletPage.logout();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void salesPostTest() {
|
||||
salesPostServletPage.navigateTo();
|
||||
testRealmSAMLLoginPage.form().login(bburkeUser);
|
||||
assertTrue(driver.getPageSource().contains("principal=bburke"));
|
||||
|
||||
salesPostServletPage.logout();
|
||||
salesPostServletPage.navigateTo();
|
||||
assertCurrentUrlStartsWith(testRealmSAMLLoginPage);
|
||||
|
||||
testRealmSAMLLoginPage.form().login("unauthorized", "password");
|
||||
assertFalse(driver.getPageSource().contains("principal="));
|
||||
assertTrue(driver.getPageSource().contains("Forbidden"));
|
||||
salesPostServletPage.logout();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void salesPostEncTest() {
|
||||
salesPostEncServletPage.navigateTo();
|
||||
testRealmSAMLLoginPage.form().login(bburkeUser);
|
||||
assertTrue(driver.getPageSource().contains("principal=bburke"));
|
||||
|
||||
salesPostEncServletPage.logout();
|
||||
salesPostEncServletPage.navigateTo();
|
||||
assertCurrentUrlStartsWith(testRealmSAMLLoginPage);
|
||||
|
||||
testRealmSAMLLoginPage.form().login("unauthorized", "password");
|
||||
assertFalse(driver.getPageSource().contains("principal="));
|
||||
assertTrue(driver.getPageSource().contains("Forbidden"));
|
||||
salesPostEncServletPage.logout();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void salesPostPassiveTest() {
|
||||
salesPostPassiveServletPage.navigateTo();
|
||||
assertTrue(driver.getPageSource().contains("Forbidden"));
|
||||
|
||||
salesPostServletPage.navigateTo();
|
||||
testRealmSAMLLoginPage.form().login(bburkeUser);
|
||||
|
||||
salesPostPassiveServletPage.navigateTo();
|
||||
assertTrue(driver.getPageSource().contains("principal=bburke"));
|
||||
|
||||
salesPostPassiveServletPage.logout();
|
||||
salesPostPassiveServletPage.navigateTo();
|
||||
assertTrue(driver.getPageSource().contains("Forbidden"));
|
||||
|
||||
salesPostServletPage.navigateTo();
|
||||
testRealmSAMLLoginPage.form().login("unauthorized", "password");
|
||||
salesPostPassiveServletPage.navigateTo();
|
||||
assertFalse(driver.getPageSource().contains("principal="));
|
||||
assertTrue(driver.getPageSource().contains("Forbidden"));
|
||||
salesPostPassiveServletPage.logout();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void salesPostSigTest() {
|
||||
salesPostEncServletPage.navigateTo();
|
||||
testRealmSAMLLoginPage.form().login(bburkeUser);
|
||||
assertTrue(driver.getPageSource().contains("principal=bburke"));
|
||||
|
||||
salesPostEncServletPage.logout();
|
||||
salesPostEncServletPage.navigateTo();
|
||||
assertCurrentUrlStartsWith(testRealmSAMLLoginPage);
|
||||
|
||||
testRealmSAMLLoginPage.form().login("unauthorized", "password");
|
||||
assertFalse(driver.getPageSource().contains("principal="));
|
||||
assertTrue(driver.getPageSource().contains("Forbidden"));
|
||||
salesPostEncServletPage.logout();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void salesPostSigEmailTest() {
|
||||
salesPostSigEmailServletPage.navigateTo();
|
||||
testRealmSAMLLoginPage.form().login(bburkeUser);
|
||||
assertTrue(driver.getPageSource().contains("principal=bburke"));
|
||||
|
||||
salesPostSigEmailServletPage.logout();
|
||||
salesPostSigEmailServletPage.navigateTo();
|
||||
assertCurrentUrlStartsWith(testRealmSAMLLoginPage);
|
||||
|
||||
testRealmSAMLLoginPage.form().login("unauthorized", "password");
|
||||
assertFalse(driver.getPageSource().contains("principal="));
|
||||
assertTrue(driver.getPageSource().contains("Forbidden"));
|
||||
salesPostSigEmailServletPage.logout();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void salesPostSigPersistentTest() {
|
||||
salesPostSigPersistentServletPage.navigateTo();
|
||||
testRealmSAMLLoginPage.form().login(bburkeUser);
|
||||
assertFalse(driver.getPageSource().contains("bburke"));
|
||||
assertTrue(driver.getPageSource().contains("principal=G-"));
|
||||
|
||||
salesPostSigPersistentServletPage.logout();
|
||||
salesPostSigPersistentServletPage.navigateTo();
|
||||
assertCurrentUrlStartsWith(testRealmSAMLLoginPage);
|
||||
|
||||
testRealmSAMLLoginPage.form().login("unauthorized", "password");
|
||||
assertFalse(driver.getPageSource().contains("principal="));
|
||||
assertTrue(driver.getPageSource().contains("Forbidden"));
|
||||
salesPostSigPersistentServletPage.logout();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void salesPostSigTransientTest() {
|
||||
salesPostSigTransientServletPage.navigateTo();
|
||||
testRealmSAMLLoginPage.form().login(bburkeUser);
|
||||
assertFalse(driver.getPageSource().contains("bburke"));
|
||||
assertTrue(driver.getPageSource().contains("principal=G-"));
|
||||
|
||||
salesPostSigTransientServletPage.logout();
|
||||
salesPostSigTransientServletPage.navigateTo();
|
||||
assertCurrentUrlStartsWith(testRealmSAMLLoginPage);
|
||||
|
||||
testRealmSAMLLoginPage.form().login("unauthorized", "password");
|
||||
assertFalse(driver.getPageSource().contains("principal="));
|
||||
assertTrue(driver.getPageSource().contains("Forbidden"));
|
||||
salesPostSigTransientServletPage.logout();
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue