[KEYCLOAK-11185] Fixed build with JDK 11
This commit is contained in:
parent
e3d755fe9d
commit
a32c8c5190
14 changed files with 103 additions and 32 deletions
|
@ -32,7 +32,6 @@
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
<module>adapter-core</module>
|
<module>adapter-core</module>
|
||||||
<module>as7-eap6</module>
|
|
||||||
<module>installed</module>
|
<module>installed</module>
|
||||||
<module>fuse7</module>
|
<module>fuse7</module>
|
||||||
<module>kcinit</module>
|
<module>kcinit</module>
|
||||||
|
@ -51,4 +50,16 @@
|
||||||
<module>wildfly</module>
|
<module>wildfly</module>
|
||||||
<module>wildfly-elytron</module>
|
<module>wildfly-elytron</module>
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
|
<profiles>
|
||||||
|
<profile>
|
||||||
|
<id>AS7</id>
|
||||||
|
<activation>
|
||||||
|
<jdk>[,9)</jdk>
|
||||||
|
</activation>
|
||||||
|
<modules>
|
||||||
|
<module>as7-eap6</module>
|
||||||
|
</modules>
|
||||||
|
</profile>
|
||||||
|
</profiles>
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -128,17 +128,4 @@
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<build>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<source>1.6</source>
|
|
||||||
<target>1.6</target>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -8,9 +8,11 @@ package org.keycloak.adapters.cloned;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.security.cert.X509Certificate;
|
import java.security.cert.X509Certificate;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import javax.xml.crypto.XMLStructure;
|
||||||
import javax.xml.crypto.dsig.keyinfo.KeyInfo;
|
import javax.xml.crypto.dsig.keyinfo.KeyInfo;
|
||||||
import javax.xml.crypto.dsig.keyinfo.KeyName;
|
import javax.xml.crypto.dsig.keyinfo.KeyName;
|
||||||
import javax.xml.crypto.dsig.keyinfo.X509Data;
|
import javax.xml.crypto.dsig.keyinfo.X509Data;
|
||||||
|
import org.hamcrest.Matcher;
|
||||||
import static org.hamcrest.CoreMatchers.*;
|
import static org.hamcrest.CoreMatchers.*;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import static org.junit.Assert.*;
|
import static org.junit.Assert.*;
|
||||||
|
@ -25,7 +27,7 @@ import org.keycloak.saml.common.exceptions.ParsingException;
|
||||||
*/
|
*/
|
||||||
public class HttpAdapterUtilsTest {
|
public class HttpAdapterUtilsTest {
|
||||||
|
|
||||||
private <T> T getContent(List<Object> objects, Class<T> clazz) {
|
private <T> T getContent(List<?> objects, Class<T> clazz) {
|
||||||
for (Object o : objects) {
|
for (Object o : objects) {
|
||||||
if (clazz.isInstance(o)) {
|
if (clazz.isInstance(o)) {
|
||||||
return (T) o;
|
return (T) o;
|
||||||
|
@ -49,10 +51,14 @@ public class HttpAdapterUtilsTest {
|
||||||
X509Data x509data;
|
X509Data x509data;
|
||||||
X509Certificate x509certificate;
|
X509Certificate x509certificate;
|
||||||
|
|
||||||
|
Matcher<Iterable<? super XMLStructure>> x509DataMatcher = hasItem(instanceOf(X509Data.class));
|
||||||
|
Matcher<Iterable<? super XMLStructure>> keyNameMatcher = hasItem(instanceOf(KeyName.class));
|
||||||
|
|
||||||
ki = res.get(KeycloakSamlAdapterV1QNames.ATTR_SIGNING.getQName().getLocalPart()).get(0);
|
ki = res.get(KeycloakSamlAdapterV1QNames.ATTR_SIGNING.getQName().getLocalPart()).get(0);
|
||||||
assertThat(ki.getContent().size(), equalTo(2));
|
assertThat(ki.getContent().size(), equalTo(2));
|
||||||
assertThat((List<Object>) ki.getContent(), hasItem(instanceOf(X509Data.class)));
|
|
||||||
assertThat((List<Object>) ki.getContent(), hasItem(instanceOf(KeyName.class)));
|
assertThat((Iterable<? super XMLStructure>) ki.getContent(), x509DataMatcher);
|
||||||
|
assertThat((Iterable<? super XMLStructure>) ki.getContent(), keyNameMatcher);
|
||||||
|
|
||||||
keyName = getContent(ki.getContent(), KeyName.class);
|
keyName = getContent(ki.getContent(), KeyName.class);
|
||||||
assertThat(keyName.getName(), equalTo("rJkJlvowmv1Id74GznieaAC5jU5QQp_ILzuG-GsweTI"));
|
assertThat(keyName.getName(), equalTo("rJkJlvowmv1Id74GznieaAC5jU5QQp_ILzuG-GsweTI"));
|
||||||
|
@ -65,8 +71,8 @@ public class HttpAdapterUtilsTest {
|
||||||
|
|
||||||
ki = res.get(KeycloakSamlAdapterV1QNames.ATTR_SIGNING.getQName().getLocalPart()).get(1);
|
ki = res.get(KeycloakSamlAdapterV1QNames.ATTR_SIGNING.getQName().getLocalPart()).get(1);
|
||||||
assertThat(ki.getContent().size(), equalTo(2));
|
assertThat(ki.getContent().size(), equalTo(2));
|
||||||
assertThat((List<Object>) ki.getContent(), hasItem(instanceOf(X509Data.class)));
|
assertThat((Iterable<? super XMLStructure>) ki.getContent(), x509DataMatcher);
|
||||||
assertThat((List<Object>) ki.getContent(), hasItem(instanceOf(KeyName.class)));
|
assertThat((Iterable<? super XMLStructure>) ki.getContent(), keyNameMatcher);
|
||||||
|
|
||||||
keyName = getContent(ki.getContent(), KeyName.class);
|
keyName = getContent(ki.getContent(), KeyName.class);
|
||||||
assertThat(keyName.getName(), equalTo("BzYc4GwL8HVrAhNyNdp-lTah2DvU9jU03kby9Ynohr4"));
|
assertThat(keyName.getName(), equalTo("BzYc4GwL8HVrAhNyNdp-lTah2DvU9jU03kby9Ynohr4"));
|
||||||
|
|
|
@ -36,7 +36,6 @@
|
||||||
<module>undertow</module>
|
<module>undertow</module>
|
||||||
<module>tomcat</module>
|
<module>tomcat</module>
|
||||||
<module>wildfly</module>
|
<module>wildfly</module>
|
||||||
<module>as7-eap6</module>
|
|
||||||
<module>servlet-filter</module>
|
<module>servlet-filter</module>
|
||||||
<module>wildfly-elytron</module>
|
<module>wildfly-elytron</module>
|
||||||
</modules>
|
</modules>
|
||||||
|
@ -53,5 +52,15 @@
|
||||||
<module>jetty</module>
|
<module>jetty</module>
|
||||||
</modules>
|
</modules>
|
||||||
</profile>
|
</profile>
|
||||||
|
|
||||||
|
<profile>
|
||||||
|
<id>AS7</id>
|
||||||
|
<activation>
|
||||||
|
<jdk>[,9)</jdk>
|
||||||
|
</activation>
|
||||||
|
<modules>
|
||||||
|
<module>as7-eap6</module>
|
||||||
|
</modules>
|
||||||
|
</profile>
|
||||||
</profiles>
|
</profiles>
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -68,6 +68,10 @@
|
||||||
<artifactId>hamcrest-all</artifactId>
|
<artifactId>hamcrest-all</artifactId>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.sun.activation</groupId>
|
||||||
|
<artifactId>javax.activation</artifactId>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<build>
|
<build>
|
||||||
<resources>
|
<resources>
|
||||||
|
|
|
@ -31,7 +31,6 @@
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
<module>as7-eap6-adapter</module>
|
|
||||||
<module>fuse-adapter-zip</module>
|
<module>fuse-adapter-zip</module>
|
||||||
<module>js-adapter-zip</module>
|
<module>js-adapter-zip</module>
|
||||||
<module>osgi</module>
|
<module>osgi</module>
|
||||||
|
@ -55,5 +54,14 @@
|
||||||
<module>js-adapter-npm-zip</module>
|
<module>js-adapter-npm-zip</module>
|
||||||
</modules>
|
</modules>
|
||||||
</profile>
|
</profile>
|
||||||
|
<profile>
|
||||||
|
<id>AS7</id>
|
||||||
|
<activation>
|
||||||
|
<jdk>(,9]</jdk>
|
||||||
|
</activation>
|
||||||
|
<modules>
|
||||||
|
<module>as7-eap6-adapter</module>
|
||||||
|
</modules>
|
||||||
|
</profile>
|
||||||
</profiles>
|
</profiles>
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -32,7 +32,6 @@
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
<module>wildfly-adapter</module>
|
<module>wildfly-adapter</module>
|
||||||
<module>as7-eap6-adapter</module>
|
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
<profiles>
|
<profiles>
|
||||||
|
@ -51,6 +50,15 @@
|
||||||
<module>tomcat7-adapter-zip</module>
|
<module>tomcat7-adapter-zip</module>
|
||||||
</modules>
|
</modules>
|
||||||
</profile>
|
</profile>
|
||||||
|
<profile>
|
||||||
|
<id>AS7</id>
|
||||||
|
<activation>
|
||||||
|
<jdk>(,9]</jdk>
|
||||||
|
</activation>
|
||||||
|
<modules>
|
||||||
|
<module>as7-eap6-adapter</module>
|
||||||
|
</modules>
|
||||||
|
</profile>
|
||||||
</profiles>
|
</profiles>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|
24
pom.xml
24
pom.xml
|
@ -85,6 +85,7 @@
|
||||||
<slf4j.version>1.7.22</slf4j.version>
|
<slf4j.version>1.7.22</slf4j.version>
|
||||||
<sun.istack.version>3.0.7</sun.istack.version>
|
<sun.istack.version>3.0.7</sun.istack.version>
|
||||||
<sun.jaxb.version>2.3.1</sun.jaxb.version>
|
<sun.jaxb.version>2.3.1</sun.jaxb.version>
|
||||||
|
<sun.activation.version>1.2.0</sun.activation.version>
|
||||||
<org.glassfish.jaxb.xsom.version>2.3.1</org.glassfish.jaxb.xsom.version>
|
<org.glassfish.jaxb.xsom.version>2.3.1</org.glassfish.jaxb.xsom.version>
|
||||||
<undertow.version>2.0.26.Final</undertow.version>
|
<undertow.version>2.0.26.Final</undertow.version>
|
||||||
<elytron.version>1.10.3.Final</elytron.version>
|
<elytron.version>1.10.3.Final</elytron.version>
|
||||||
|
@ -144,7 +145,7 @@
|
||||||
<jmeter.analysis.plugin.version>1.0.4</jmeter.analysis.plugin.version>
|
<jmeter.analysis.plugin.version>1.0.4</jmeter.analysis.plugin.version>
|
||||||
<minify.plugin.version>1.7.6</minify.plugin.version>
|
<minify.plugin.version>1.7.6</minify.plugin.version>
|
||||||
<osgi.bundle.plugin.version>2.3.7</osgi.bundle.plugin.version>
|
<osgi.bundle.plugin.version>2.3.7</osgi.bundle.plugin.version>
|
||||||
<wildfly.plugin.version>1.1.0.Final</wildfly.plugin.version>
|
<wildfly.plugin.version>1.2.1.Final</wildfly.plugin.version>
|
||||||
<nexus.staging.plugin.version>1.6.5</nexus.staging.plugin.version>
|
<nexus.staging.plugin.version>1.6.5</nexus.staging.plugin.version>
|
||||||
<frontend.plugin.version>1.5</frontend.plugin.version>
|
<frontend.plugin.version>1.5</frontend.plugin.version>
|
||||||
<docker.maven.plugin.version>0.28.0</docker.maven.plugin.version>
|
<docker.maven.plugin.version>0.28.0</docker.maven.plugin.version>
|
||||||
|
@ -259,11 +260,32 @@
|
||||||
<artifactId>istack-commons-tools</artifactId>
|
<artifactId>istack-commons-tools</artifactId>
|
||||||
<version>${sun.istack.version}</version>
|
<version>${sun.istack.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.xml.bind</groupId>
|
||||||
|
<artifactId>jaxb-api</artifactId>
|
||||||
|
<version>${sun.jaxb.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.sun.xml.ws</groupId>
|
||||||
|
<artifactId>rt</artifactId>
|
||||||
|
<version>${sun.jaxb.version}</version>
|
||||||
|
<exclusions>
|
||||||
|
<exclusion>
|
||||||
|
<groupId>com.fasterxml.woodstox</groupId>
|
||||||
|
<artifactId>woodstox-core</artifactId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.sun.xml.bind.external</groupId>
|
<groupId>com.sun.xml.bind.external</groupId>
|
||||||
<artifactId>rngom</artifactId>
|
<artifactId>rngom</artifactId>
|
||||||
<version>${sun.jaxb.version}</version>
|
<version>${sun.jaxb.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.sun.activation</groupId>
|
||||||
|
<artifactId>javax.activation</artifactId>
|
||||||
|
<version>${sun.activation.version}</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.glassfish.jaxb</groupId>
|
<groupId>org.glassfish.jaxb</groupId>
|
||||||
<artifactId>xsom</artifactId>
|
<artifactId>xsom</artifactId>
|
||||||
|
|
|
@ -52,6 +52,14 @@
|
||||||
<groupId>org.apache.santuario</groupId>
|
<groupId>org.apache.santuario</groupId>
|
||||||
<artifactId>xmlsec</artifactId>
|
<artifactId>xmlsec</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.xml.bind</groupId>
|
||||||
|
<artifactId>jaxb-api</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.sun.xml.ws</groupId>
|
||||||
|
<artifactId>rt</artifactId>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<build>
|
<build>
|
||||||
<resources>
|
<resources>
|
||||||
|
|
|
@ -73,6 +73,14 @@
|
||||||
<version>2.6</version>
|
<version>2.6</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.xml.bind</groupId>
|
||||||
|
<artifactId>jaxb-api</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.sun.xml.ws</groupId>
|
||||||
|
<artifactId>rt</artifactId>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<build>
|
<build>
|
||||||
<resources>
|
<resources>
|
||||||
|
|
|
@ -34,7 +34,7 @@ public class KeyInfoTools {
|
||||||
* @param clazz
|
* @param clazz
|
||||||
* @return The object or {@code null} if not found.
|
* @return The object or {@code null} if not found.
|
||||||
*/
|
*/
|
||||||
public static <T> T getContent(Iterable<Object> objects, Class<T> clazz) {
|
public static <T> T getContent(Iterable<?> objects, Class<T> clazz) {
|
||||||
if (objects == null) {
|
if (objects == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,6 +41,7 @@ import org.w3c.dom.NodeList;
|
||||||
import org.xml.sax.SAXException;
|
import org.xml.sax.SAXException;
|
||||||
|
|
||||||
import javax.xml.bind.JAXBException;
|
import javax.xml.bind.JAXBException;
|
||||||
|
import javax.xml.crypto.XMLStructure;
|
||||||
import javax.xml.crypto.MarshalException;
|
import javax.xml.crypto.MarshalException;
|
||||||
import javax.xml.crypto.dsig.CanonicalizationMethod;
|
import javax.xml.crypto.dsig.CanonicalizationMethod;
|
||||||
import javax.xml.crypto.dsig.DigestMethod;
|
import javax.xml.crypto.dsig.DigestMethod;
|
||||||
|
@ -740,7 +741,7 @@ public class XMLSignatureUtil {
|
||||||
private static KeyInfo createKeyInfo(String keyName, PublicKey publicKey, X509Certificate x509Certificate) throws KeyException {
|
private static KeyInfo createKeyInfo(String keyName, PublicKey publicKey, X509Certificate x509Certificate) throws KeyException {
|
||||||
KeyInfoFactory keyInfoFactory = fac.getKeyInfoFactory();
|
KeyInfoFactory keyInfoFactory = fac.getKeyInfoFactory();
|
||||||
|
|
||||||
List<Object> items = new LinkedList<>();
|
List<XMLStructure> items = new LinkedList<>();
|
||||||
|
|
||||||
if (keyName != null) {
|
if (keyName != null) {
|
||||||
items.add(keyInfoFactory.newKeyName(keyName));
|
items.add(keyInfoFactory.newKeyName(keyName));
|
||||||
|
|
|
@ -78,8 +78,7 @@
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
<version>2.5.5</version>
|
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -1724,8 +1724,8 @@ public class SAMLServletAdapterTest extends AbstractSAMLServletAdapterTest {
|
||||||
|
|
||||||
//printDocument(authnRequestMessage.getSOAPPart().getContent(), System.out);
|
//printDocument(authnRequestMessage.getSOAPPart().getContent(), System.out);
|
||||||
|
|
||||||
Iterator<SOAPHeaderElement> it = authnRequestMessage.getSOAPHeader().<SOAPHeaderElement>getChildElements(new QName("urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp", "Request"));
|
Iterator<javax.xml.soap.Node> it = authnRequestMessage.getSOAPHeader().<SOAPHeaderElement>getChildElements(new QName("urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp", "Request"));
|
||||||
SOAPHeaderElement ecpRequestHeader = it.next();
|
SOAPHeaderElement ecpRequestHeader = (SOAPHeaderElement)it.next();
|
||||||
NodeList idpList = ecpRequestHeader.getElementsByTagNameNS("urn:oasis:names:tc:SAML:2.0:protocol", "IDPList");
|
NodeList idpList = ecpRequestHeader.getElementsByTagNameNS("urn:oasis:names:tc:SAML:2.0:protocol", "IDPList");
|
||||||
|
|
||||||
Assert.assertThat("No IDPList returned from Service Provider", idpList.getLength(), is(1));
|
Assert.assertThat("No IDPList returned from Service Provider", idpList.getLength(), is(1));
|
||||||
|
@ -1811,13 +1811,13 @@ public class SAMLServletAdapterTest extends AbstractSAMLServletAdapterTest {
|
||||||
.get();
|
.get();
|
||||||
|
|
||||||
SOAPMessage authnRequestMessage = MessageFactory.newInstance().createMessage(null, new ByteArrayInputStream(authnRequestResponse.readEntity(byte[].class)));
|
SOAPMessage authnRequestMessage = MessageFactory.newInstance().createMessage(null, new ByteArrayInputStream(authnRequestResponse.readEntity(byte[].class)));
|
||||||
Iterator<SOAPHeaderElement> it = authnRequestMessage.getSOAPHeader().<SOAPHeaderElement>getChildElements(new QName("urn:liberty:paos:2003-08", "Request"));
|
Iterator<javax.xml.soap.Node> it = authnRequestMessage.getSOAPHeader().<SOAPHeaderElement>getChildElements(new QName("urn:liberty:paos:2003-08", "Request"));
|
||||||
|
|
||||||
it.next();
|
it.next();
|
||||||
|
|
||||||
it = authnRequestMessage.getSOAPHeader().<SOAPHeaderElement>getChildElements(new QName("urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp", "Request"));
|
it = authnRequestMessage.getSOAPHeader().<SOAPHeaderElement>getChildElements(new QName("urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp", "Request"));
|
||||||
SOAPHeaderElement ecpRequestHeader = it.next();
|
javax.xml.soap.Node ecpRequestHeader = it.next();
|
||||||
NodeList idpList = ecpRequestHeader.getElementsByTagNameNS("urn:oasis:names:tc:SAML:2.0:protocol", "IDPList");
|
NodeList idpList = ((SOAPHeaderElement)ecpRequestHeader).getElementsByTagNameNS("urn:oasis:names:tc:SAML:2.0:protocol", "IDPList");
|
||||||
|
|
||||||
Assert.assertThat("No IDPList returned from Service Provider", idpList.getLength(), is(1));
|
Assert.assertThat("No IDPList returned from Service Provider", idpList.getLength(), is(1));
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue