package org.keycloak.testsuite.saml; import org.junit.Test; import org.keycloak.dom.saml.v2.protocol.AuthnRequestType; import org.keycloak.saml.common.exceptions.ConfigurationException; import org.keycloak.saml.common.exceptions.ParsingException; import org.keycloak.saml.common.exceptions.ProcessingException; import org.keycloak.saml.processing.api.saml.v2.request.SAML2Request; import org.keycloak.saml.processing.core.saml.v2.common.SAMLDocumentHolder; import org.keycloak.testsuite.util.SamlClient; import org.w3c.dom.Document; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; import static org.junit.Assert.assertThat; import static org.keycloak.testsuite.util.IOUtil.documentToString; import static org.keycloak.testsuite.util.IOUtil.setDocElementAttributeValue; import static org.keycloak.testsuite.util.SamlClient.login; /** * @author mhajas */ public class BasicSamlTest extends AbstractSamlTest { // KEYCLOAK-4160 @Test public void testPropertyValueInAssertion() throws ParsingException, ConfigurationException, ProcessingException { AuthnRequestType loginRep = createLoginRequestDocument(SAML_CLIENT_ID_SALES_POST, SAML_ASSERTION_CONSUMER_URL_SALES_POST, REALM_NAME); Document doc = SAML2Request.convert(loginRep); setDocElementAttributeValue(doc, "samlp:AuthnRequest", "ID", "${java.version}" ); SAMLDocumentHolder document = login(bburkeUser, getAuthServerSamlEndpoint(REALM_NAME), doc, null, SamlClient.Binding.POST, SamlClient.Binding.POST); assertThat(documentToString(document.getSamlDocument()), not(containsString("InResponseTo=\"" + System.getProperty("java.version") + "\""))); } }