Search in sources :

Example 1 with Login

use of org.keycloak.testsuite.auth.page.login.Login in project keycloak by keycloak.

the class SAMLServletAdapterTest method testDestinationUnset.

@Test
public void testDestinationUnset() throws Exception {
    new SamlClientBuilder().navigateTo(employee2ServletPage.toString()).processSamlResponse(Binding.POST).build().login().user(bburkeUser).build().processSamlResponse(Binding.POST).transformDocument(responseDoc -> {
        responseDoc.getDocumentElement().removeAttribute("Destination");
        return responseDoc;
    }).build().navigateTo(employee2ServletPage.toString()).execute(r -> {
        Assert.assertThat(r, statusCodeIsHC(Response.Status.OK));
        Assert.assertThat(r, bodyHC(containsString("principal=")));
    });
}
Also used : KeyPair(java.security.KeyPair) AbstractSamlTest(org.keycloak.testsuite.saml.AbstractSamlTest) Arrays(java.util.Arrays) AssertionUtil(org.keycloak.saml.processing.core.saml.v2.util.AssertionUtil) ClientAttributeUpdater(org.keycloak.testsuite.updaters.ClientAttributeUpdater) Matchers.statusCodeIsHC(org.keycloak.testsuite.util.Matchers.statusCodeIsHC) StreamResult(javax.xml.transform.stream.StreamResult) org.keycloak.testsuite.adapter.page(org.keycloak.testsuite.adapter.page) Page(org.jboss.arquillian.graphene.page.Page) DEMO(org.keycloak.testsuite.auth.page.AuthRealm.DEMO) Matcher(java.util.regex.Matcher) AdminClientUtil(org.keycloak.testsuite.util.AdminClientUtil) Document(org.w3c.dom.Document) Map(java.util.Map) UriBuilder(javax.ws.rs.core.UriBuilder) SAMLDocumentHolder(org.keycloak.saml.processing.core.saml.v2.common.SAMLDocumentHolder) OK(javax.ws.rs.core.Response.Status.OK) UriBuilderException(javax.ws.rs.core.UriBuilderException) SamlProtocol(org.keycloak.protocol.saml.SamlProtocol) ClientRepresentation(org.keycloak.representations.idm.ClientRepresentation) QName(javax.xml.namespace.QName) SAMLSERVLETDEMO(org.keycloak.testsuite.auth.page.AuthRealm.SAMLSERVLETDEMO) WaitUtils.waitUntilElement(org.keycloak.testsuite.util.WaitUtils.waitUntilElement) ByteArrayOutputStream(java.io.ByteArrayOutputStream) TransformerException(javax.xml.transform.TransformerException) XPath(javax.xml.xpath.XPath) Attributes(org.keycloak.keys.Attributes) StreamSource(javax.xml.transform.stream.StreamSource) GeneralConstants(org.keycloak.saml.common.constants.GeneralConstants) Source(javax.xml.transform.Source) HttpUriRequest(org.apache.http.client.methods.HttpUriRequest) PemUtils(org.keycloak.common.util.PemUtils) Schema(javax.xml.validation.Schema) LinkedHashMap(java.util.LinkedHashMap) MessageFactory(javax.xml.soap.MessageFactory) UserBuilder(org.keycloak.testsuite.util.UserBuilder) Users.setPasswordFor(org.keycloak.testsuite.admin.Users.setPasswordFor) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) ContainerConstants(org.keycloak.testsuite.utils.arquillian.ContainerConstants) ApiUtil(org.keycloak.testsuite.admin.ApiUtil) SchemaFactory(javax.xml.validation.SchemaFactory) IOException(java.io.IOException) Validator(javax.xml.validation.Validator) Test(org.junit.Test) RoleScopeResource(org.keycloak.admin.client.resource.RoleScopeResource) Users.getPasswordOf(org.keycloak.testsuite.admin.Users.getPasswordOf) StringReader(java.io.StringReader) Deployment(org.jboss.arquillian.container.test.api.Deployment) Binding(org.keycloak.testsuite.util.SamlClient.Binding) TransformerFactory(javax.xml.transform.TransformerFactory) HttpClientBuilder(org.apache.http.impl.client.HttpClientBuilder) MultivaluedHashMap(org.keycloak.common.util.MultivaluedHashMap) SOAPMessage(javax.xml.soap.SOAPMessage) Assert(org.junit.Assert) Transformer(javax.xml.transform.Transformer) CertificateFactory(java.security.cert.CertificateFactory) ImportedRsaKeyProviderFactory(org.keycloak.keys.ImportedRsaKeyProviderFactory) URL(java.net.URL) SOAPHeaderElement(javax.xml.soap.SOAPHeaderElement) HttpClientContext(org.apache.http.client.protocol.HttpClientContext) GroupRepresentation(org.keycloak.representations.idm.GroupRepresentation) NewCookie(javax.ws.rs.core.NewCookie) XmlKeyInfoKeyNameTransformer(org.keycloak.saml.common.util.XmlKeyInfoKeyNameTransformer) EntityUtils(org.apache.http.util.EntityUtils) Base64(org.keycloak.common.util.Base64) ByteArrayInputStream(java.io.ByteArrayInputStream) SAMLPostLoginTenant1(org.keycloak.testsuite.auth.page.login.SAMLPostLoginTenant1) SOAPHeader(javax.xml.soap.SOAPHeader) SAMLPostLoginTenant2(org.keycloak.testsuite.auth.page.login.SAMLPostLoginTenant2) SamlClient(org.keycloak.testsuite.util.SamlClient) URI(java.net.URI) SAMLIDPInitiatedLogin(org.keycloak.testsuite.auth.page.login.SAMLIDPInitiatedLogin) ClientResource(org.keycloak.admin.client.resource.ClientResource) Invocation(javax.ws.rs.client.Invocation) StatusCodeType(org.keycloak.dom.saml.v2.protocol.StatusCodeType) Collectors(java.util.stream.Collectors) Entity(javax.ws.rs.client.Entity) RealmRepresentation(org.keycloak.representations.idm.RealmRepresentation) DocumentUtil(org.keycloak.saml.common.util.DocumentUtil) IOUtil(org.keycloak.testsuite.utils.io.IOUtil) PASSWORD(org.keycloak.OAuth2Constants.PASSWORD) URLAssert.assertCurrentUrlStartsWith(org.keycloak.testsuite.util.URLAssert.assertCurrentUrlStartsWith) List(java.util.List) Certificate(java.security.cert.Certificate) HttpHeaders(javax.ws.rs.core.HttpHeaders) Response(javax.ws.rs.core.Response) HttpGet(org.apache.http.client.methods.HttpGet) SAXException(org.xml.sax.SAXException) Pattern(java.util.regex.Pattern) UIUtils.getRawPageSource(org.keycloak.testsuite.util.UIUtils.getRawPageSource) SamlClientBuilder(org.keycloak.testsuite.util.SamlClientBuilder) SAMLParser(org.keycloak.saml.processing.core.parsers.saml.SAMLParser) RealmsResource(org.keycloak.services.resources.RealmsResource) Login(org.keycloak.testsuite.auth.page.login.Login) Form(javax.ws.rs.core.Form) XPathConstants(javax.xml.xpath.XPathConstants) Client(javax.ws.rs.client.Client) HashMap(java.util.HashMap) Matchers.bodyHC(org.keycloak.testsuite.util.Matchers.bodyHC) XPathExpression(javax.xml.xpath.XPathExpression) ResponseType(org.keycloak.dom.saml.v2.protocol.ResponseType) SamlConfigAttributes(org.keycloak.protocol.saml.SamlConfigAttributes) ComponentRepresentation(org.keycloak.representations.idm.ComponentRepresentation) CloseableHttpResponse(org.apache.http.client.methods.CloseableHttpResponse) Node(org.w3c.dom.Node) KeyProvider(org.keycloak.keys.KeyProvider) OutputStreamWriter(java.io.OutputStreamWriter) NamedNodeMap(org.w3c.dom.NamedNodeMap) XMLConstants(javax.xml.XMLConstants) UserResource(org.keycloak.admin.client.resource.UserResource) KeyUtils(org.keycloak.common.util.KeyUtils) RoleRepresentation(org.keycloak.representations.idm.RoleRepresentation) JBossSAMLConstants(org.keycloak.saml.common.constants.JBossSAMLConstants) OutputStream(java.io.OutputStream) WaitUtils(org.keycloak.testsuite.util.WaitUtils) CloseableHttpClient(org.apache.http.impl.client.CloseableHttpClient) WebArchive(org.jboss.shrinkwrap.api.spec.WebArchive) UserRepresentation(org.keycloak.representations.idm.UserRepresentation) NodeList(org.w3c.dom.NodeList) Iterator(java.util.Iterator) EntityDescriptorType(org.keycloak.dom.saml.v2.metadata.EntityDescriptorType) ProtocolMappersResource(org.keycloak.admin.client.resource.ProtocolMappersResource) AuthnRequestType(org.keycloak.dom.saml.v2.protocol.AuthnRequestType) JBossSAMLURIConstants(org.keycloak.saml.common.constants.JBossSAMLURIConstants) By(org.openqa.selenium.By) Matchers(org.hamcrest.Matchers) PublicKey(java.security.PublicKey) OutputKeys(javax.xml.transform.OutputKeys) WaitUtils.waitForPageToLoad(org.keycloak.testsuite.util.WaitUtils.waitForPageToLoad) StatusResponseType(org.keycloak.dom.saml.v2.protocol.StatusResponseType) StringAsset(org.jboss.shrinkwrap.api.asset.StringAsset) ServerURLs(org.keycloak.testsuite.util.ServerURLs) XPathFactory(javax.xml.xpath.XPathFactory) Creator(org.keycloak.testsuite.updaters.Creator) Element(org.w3c.dom.Element) AppServerContainer(org.keycloak.testsuite.arquillian.annotation.AppServerContainer) UserAttributeUpdater(org.keycloak.testsuite.updaters.UserAttributeUpdater) Closeable(java.io.Closeable) WebTarget(javax.ws.rs.client.WebTarget) AbstractPage(org.keycloak.testsuite.page.AbstractPage) Collections(java.util.Collections) SamlClientBuilder(org.keycloak.testsuite.util.SamlClientBuilder) AbstractSamlTest(org.keycloak.testsuite.saml.AbstractSamlTest) Test(org.junit.Test)

Example 2 with Login

use of org.keycloak.testsuite.auth.page.login.Login in project keycloak by keycloak.

the class SAMLServletAdapterTest method testNameIDUnset.

@Test
public void testNameIDUnset() throws Exception {
    new SamlClientBuilder().navigateTo(employee2ServletPage.toString()).processSamlResponse(Binding.POST).build().login().user(bburkeUser).build().processSamlResponse(Binding.POST).transformDocument(responseDoc -> {
        XPathFactory xPathfactory = XPathFactory.newInstance();
        XPath xpath = xPathfactory.newXPath();
        XPathExpression expr = xpath.compile("//*[local-name()='NameID']");
        NodeList nodeList = (NodeList) expr.evaluate(responseDoc, XPathConstants.NODESET);
        Assert.assertThat(nodeList.getLength(), is(1));
        final Node nameIdNode = nodeList.item(0);
        nameIdNode.getParentNode().removeChild(nameIdNode);
        return responseDoc;
    }).build().navigateTo(employee2ServletPage.toString()).execute(r -> {
        Assert.assertThat(r, statusCodeIsHC(Response.Status.OK));
        Assert.assertThat(r, bodyHC(containsString("principal=")));
    });
}
Also used : KeyPair(java.security.KeyPair) AbstractSamlTest(org.keycloak.testsuite.saml.AbstractSamlTest) Arrays(java.util.Arrays) AssertionUtil(org.keycloak.saml.processing.core.saml.v2.util.AssertionUtil) ClientAttributeUpdater(org.keycloak.testsuite.updaters.ClientAttributeUpdater) Matchers.statusCodeIsHC(org.keycloak.testsuite.util.Matchers.statusCodeIsHC) StreamResult(javax.xml.transform.stream.StreamResult) org.keycloak.testsuite.adapter.page(org.keycloak.testsuite.adapter.page) Page(org.jboss.arquillian.graphene.page.Page) DEMO(org.keycloak.testsuite.auth.page.AuthRealm.DEMO) Matcher(java.util.regex.Matcher) AdminClientUtil(org.keycloak.testsuite.util.AdminClientUtil) Document(org.w3c.dom.Document) Map(java.util.Map) UriBuilder(javax.ws.rs.core.UriBuilder) SAMLDocumentHolder(org.keycloak.saml.processing.core.saml.v2.common.SAMLDocumentHolder) OK(javax.ws.rs.core.Response.Status.OK) UriBuilderException(javax.ws.rs.core.UriBuilderException) SamlProtocol(org.keycloak.protocol.saml.SamlProtocol) ClientRepresentation(org.keycloak.representations.idm.ClientRepresentation) QName(javax.xml.namespace.QName) SAMLSERVLETDEMO(org.keycloak.testsuite.auth.page.AuthRealm.SAMLSERVLETDEMO) WaitUtils.waitUntilElement(org.keycloak.testsuite.util.WaitUtils.waitUntilElement) ByteArrayOutputStream(java.io.ByteArrayOutputStream) TransformerException(javax.xml.transform.TransformerException) XPath(javax.xml.xpath.XPath) Attributes(org.keycloak.keys.Attributes) StreamSource(javax.xml.transform.stream.StreamSource) GeneralConstants(org.keycloak.saml.common.constants.GeneralConstants) Source(javax.xml.transform.Source) HttpUriRequest(org.apache.http.client.methods.HttpUriRequest) PemUtils(org.keycloak.common.util.PemUtils) Schema(javax.xml.validation.Schema) LinkedHashMap(java.util.LinkedHashMap) MessageFactory(javax.xml.soap.MessageFactory) UserBuilder(org.keycloak.testsuite.util.UserBuilder) Users.setPasswordFor(org.keycloak.testsuite.admin.Users.setPasswordFor) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) ContainerConstants(org.keycloak.testsuite.utils.arquillian.ContainerConstants) ApiUtil(org.keycloak.testsuite.admin.ApiUtil) SchemaFactory(javax.xml.validation.SchemaFactory) IOException(java.io.IOException) Validator(javax.xml.validation.Validator) Test(org.junit.Test) RoleScopeResource(org.keycloak.admin.client.resource.RoleScopeResource) Users.getPasswordOf(org.keycloak.testsuite.admin.Users.getPasswordOf) StringReader(java.io.StringReader) Deployment(org.jboss.arquillian.container.test.api.Deployment) Binding(org.keycloak.testsuite.util.SamlClient.Binding) TransformerFactory(javax.xml.transform.TransformerFactory) HttpClientBuilder(org.apache.http.impl.client.HttpClientBuilder) MultivaluedHashMap(org.keycloak.common.util.MultivaluedHashMap) SOAPMessage(javax.xml.soap.SOAPMessage) Assert(org.junit.Assert) Transformer(javax.xml.transform.Transformer) CertificateFactory(java.security.cert.CertificateFactory) ImportedRsaKeyProviderFactory(org.keycloak.keys.ImportedRsaKeyProviderFactory) URL(java.net.URL) SOAPHeaderElement(javax.xml.soap.SOAPHeaderElement) HttpClientContext(org.apache.http.client.protocol.HttpClientContext) GroupRepresentation(org.keycloak.representations.idm.GroupRepresentation) NewCookie(javax.ws.rs.core.NewCookie) XmlKeyInfoKeyNameTransformer(org.keycloak.saml.common.util.XmlKeyInfoKeyNameTransformer) EntityUtils(org.apache.http.util.EntityUtils) Base64(org.keycloak.common.util.Base64) ByteArrayInputStream(java.io.ByteArrayInputStream) SAMLPostLoginTenant1(org.keycloak.testsuite.auth.page.login.SAMLPostLoginTenant1) SOAPHeader(javax.xml.soap.SOAPHeader) SAMLPostLoginTenant2(org.keycloak.testsuite.auth.page.login.SAMLPostLoginTenant2) SamlClient(org.keycloak.testsuite.util.SamlClient) URI(java.net.URI) SAMLIDPInitiatedLogin(org.keycloak.testsuite.auth.page.login.SAMLIDPInitiatedLogin) ClientResource(org.keycloak.admin.client.resource.ClientResource) Invocation(javax.ws.rs.client.Invocation) StatusCodeType(org.keycloak.dom.saml.v2.protocol.StatusCodeType) Collectors(java.util.stream.Collectors) Entity(javax.ws.rs.client.Entity) RealmRepresentation(org.keycloak.representations.idm.RealmRepresentation) DocumentUtil(org.keycloak.saml.common.util.DocumentUtil) IOUtil(org.keycloak.testsuite.utils.io.IOUtil) PASSWORD(org.keycloak.OAuth2Constants.PASSWORD) URLAssert.assertCurrentUrlStartsWith(org.keycloak.testsuite.util.URLAssert.assertCurrentUrlStartsWith) List(java.util.List) Certificate(java.security.cert.Certificate) HttpHeaders(javax.ws.rs.core.HttpHeaders) Response(javax.ws.rs.core.Response) HttpGet(org.apache.http.client.methods.HttpGet) SAXException(org.xml.sax.SAXException) Pattern(java.util.regex.Pattern) UIUtils.getRawPageSource(org.keycloak.testsuite.util.UIUtils.getRawPageSource) SamlClientBuilder(org.keycloak.testsuite.util.SamlClientBuilder) SAMLParser(org.keycloak.saml.processing.core.parsers.saml.SAMLParser) RealmsResource(org.keycloak.services.resources.RealmsResource) Login(org.keycloak.testsuite.auth.page.login.Login) Form(javax.ws.rs.core.Form) XPathConstants(javax.xml.xpath.XPathConstants) Client(javax.ws.rs.client.Client) HashMap(java.util.HashMap) Matchers.bodyHC(org.keycloak.testsuite.util.Matchers.bodyHC) XPathExpression(javax.xml.xpath.XPathExpression) ResponseType(org.keycloak.dom.saml.v2.protocol.ResponseType) SamlConfigAttributes(org.keycloak.protocol.saml.SamlConfigAttributes) ComponentRepresentation(org.keycloak.representations.idm.ComponentRepresentation) CloseableHttpResponse(org.apache.http.client.methods.CloseableHttpResponse) Node(org.w3c.dom.Node) KeyProvider(org.keycloak.keys.KeyProvider) OutputStreamWriter(java.io.OutputStreamWriter) NamedNodeMap(org.w3c.dom.NamedNodeMap) XMLConstants(javax.xml.XMLConstants) UserResource(org.keycloak.admin.client.resource.UserResource) KeyUtils(org.keycloak.common.util.KeyUtils) RoleRepresentation(org.keycloak.representations.idm.RoleRepresentation) JBossSAMLConstants(org.keycloak.saml.common.constants.JBossSAMLConstants) OutputStream(java.io.OutputStream) WaitUtils(org.keycloak.testsuite.util.WaitUtils) CloseableHttpClient(org.apache.http.impl.client.CloseableHttpClient) WebArchive(org.jboss.shrinkwrap.api.spec.WebArchive) UserRepresentation(org.keycloak.representations.idm.UserRepresentation) NodeList(org.w3c.dom.NodeList) Iterator(java.util.Iterator) EntityDescriptorType(org.keycloak.dom.saml.v2.metadata.EntityDescriptorType) ProtocolMappersResource(org.keycloak.admin.client.resource.ProtocolMappersResource) AuthnRequestType(org.keycloak.dom.saml.v2.protocol.AuthnRequestType) JBossSAMLURIConstants(org.keycloak.saml.common.constants.JBossSAMLURIConstants) By(org.openqa.selenium.By) Matchers(org.hamcrest.Matchers) PublicKey(java.security.PublicKey) OutputKeys(javax.xml.transform.OutputKeys) WaitUtils.waitForPageToLoad(org.keycloak.testsuite.util.WaitUtils.waitForPageToLoad) StatusResponseType(org.keycloak.dom.saml.v2.protocol.StatusResponseType) StringAsset(org.jboss.shrinkwrap.api.asset.StringAsset) ServerURLs(org.keycloak.testsuite.util.ServerURLs) XPathFactory(javax.xml.xpath.XPathFactory) Creator(org.keycloak.testsuite.updaters.Creator) Element(org.w3c.dom.Element) AppServerContainer(org.keycloak.testsuite.arquillian.annotation.AppServerContainer) UserAttributeUpdater(org.keycloak.testsuite.updaters.UserAttributeUpdater) Closeable(java.io.Closeable) WebTarget(javax.ws.rs.client.WebTarget) AbstractPage(org.keycloak.testsuite.page.AbstractPage) Collections(java.util.Collections) XPath(javax.xml.xpath.XPath) XPathExpression(javax.xml.xpath.XPathExpression) XPathFactory(javax.xml.xpath.XPathFactory) SamlClientBuilder(org.keycloak.testsuite.util.SamlClientBuilder) NodeList(org.w3c.dom.NodeList) Node(org.w3c.dom.Node) AbstractSamlTest(org.keycloak.testsuite.saml.AbstractSamlTest) Test(org.junit.Test)

Aggregations

ByteArrayInputStream (java.io.ByteArrayInputStream)2 ByteArrayOutputStream (java.io.ByteArrayOutputStream)2 Closeable (java.io.Closeable)2 IOException (java.io.IOException)2 OutputStream (java.io.OutputStream)2 OutputStreamWriter (java.io.OutputStreamWriter)2 StringReader (java.io.StringReader)2 URI (java.net.URI)2 URL (java.net.URL)2 KeyPair (java.security.KeyPair)2 PublicKey (java.security.PublicKey)2 Certificate (java.security.cert.Certificate)2 CertificateFactory (java.security.cert.CertificateFactory)2 Arrays (java.util.Arrays)2 Collections (java.util.Collections)2 HashMap (java.util.HashMap)2 Iterator (java.util.Iterator)2 LinkedHashMap (java.util.LinkedHashMap)2 List (java.util.List)2 Map (java.util.Map)2