[KEYCLOAK-17100] Testsuite Wildfly initialization error on Windows
[KEYCLOAK-17392] Java CLASSPATH is wrongly parsed on Windows Signed-off-by: Jan Lieskovsky <jlieskov@redhat.com> Co-Authored-By: Peter Zaoral <pzaoral@redhat.com>
This commit is contained in:
parent
e126969f82
commit
5fac80b05e
2 changed files with 34 additions and 31 deletions
|
@ -584,53 +584,56 @@ public class AuthServerTestEnricher {
|
|||
public static void setJsseSecurityProviderForOutboundSslConnectionsOfElytronClient(@Observes(precedence = 100) StartSuiteContainers event) {
|
||||
log.info(
|
||||
"Determining the JSSE security provider to use for outbound " +
|
||||
"SSL/TLS connections of the Elytron client..."
|
||||
"SSL/TLS connections of the Elytron client"
|
||||
);
|
||||
/** First locate the wildfly-config.xml to use. Per:
|
||||
* https://docs.wildfly.org/21/Client_Guide.html#wildfly-config-xml-discovery
|
||||
*
|
||||
* 1) try to load it from the 'wildfly.config.url' property
|
||||
*/
|
||||
String wildflyConfigXmlPath = System.getProperty("wildfly.config.url");
|
||||
|
||||
// 2) If not set, scan the classpath
|
||||
// Use path to wildfly-config.xml directly if specified
|
||||
String wildflyConfigXmlPath =
|
||||
System.getProperty("wildfly-client.config.path");
|
||||
|
||||
// Otherwise scan the classpath to determine its location
|
||||
if (wildflyConfigXmlPath == null) {
|
||||
log.debug("Scanning classpath to locate wildfly-config.xml...");
|
||||
log.debug("Scanning classpath to locate wildfly-config.xml");
|
||||
final String javaClassPath = System.getProperty("java.class.path");
|
||||
for (String dir : javaClassPath.split(":")) {
|
||||
for (String dir : javaClassPath.split(File.pathSeparator)) {
|
||||
if (!dir.isEmpty()) {
|
||||
String candidatePath = dir + File.separator +
|
||||
"wildfly-config.xml";
|
||||
if (new File(candidatePath).exists()) {
|
||||
wildflyConfigXmlPath = candidatePath;
|
||||
log.debugf(
|
||||
"Using wildfly-config.xml at '%s' location!",
|
||||
"Found wildfly-config.xml at '%s' location",
|
||||
wildflyConfigXmlPath
|
||||
);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final File wildflyConfigXml = ( wildflyConfigXmlPath != null ) ?
|
||||
new File(wildflyConfigXmlPath) :
|
||||
null;
|
||||
|
||||
// Throw an error if wildfly-config.xml path specified directly via the
|
||||
// 'wildfly-client.config.path' property doesn't represent a regular file
|
||||
// on the file system, or if it wasn't found by scanning the classpath
|
||||
if ( wildflyConfigXml == null || ! wildflyConfigXml.exists() ) {
|
||||
throw new RuntimeException(
|
||||
"Failed to locate the wildfly-config.xml to use for " +
|
||||
"the configuration of Elytron client"
|
||||
);
|
||||
} else {
|
||||
log.debugf(
|
||||
"Using wildfly-config.xml from 'wildfly.config.url' " +
|
||||
"property at '%s' location",
|
||||
"Using wildfly-config.xml from '%s' location",
|
||||
wildflyConfigXmlPath
|
||||
);
|
||||
}
|
||||
// If still not found, that's an error
|
||||
if (wildflyConfigXmlPath == null) {
|
||||
throw new RuntimeException(
|
||||
"Failed to locate the wildfly-config.xml to use for " +
|
||||
"the configuration of Elytron client!"
|
||||
);
|
||||
}
|
||||
|
||||
/** Determine the name of the system property from wildfly-config.xml
|
||||
* holding the name of the security provider which is used by Elytron
|
||||
* client to define its SSL context for outbound SSL connections.
|
||||
*/
|
||||
final File wildflyConfigXml = new File(wildflyConfigXmlPath);
|
||||
|
||||
String jsseSecurityProviderSystemProperty = null;
|
||||
try {
|
||||
DocumentBuilder documentBuilder = DocumentBuilderFactory
|
||||
|
@ -642,7 +645,7 @@ public class AuthServerTestEnricher {
|
|||
if (nodeList.getLength() != 1) {
|
||||
throw new RuntimeException(
|
||||
"Failed to locate the 'provider-name' element " +
|
||||
"in wildfly-config.xml XML file!"
|
||||
"in wildfly-config.xml XML file"
|
||||
);
|
||||
}
|
||||
String providerNameElement = nodeList.item(0).getAttributes()
|
||||
|
@ -655,12 +658,12 @@ public class AuthServerTestEnricher {
|
|||
} catch (IOException e) {
|
||||
throw new RuntimeException(String.format(
|
||||
"Error reading the '%s' file. Please make sure the provided " +
|
||||
"path is correct and retry!",
|
||||
"path is correct and retry",
|
||||
wildflyConfigXml.getAbsolutePath()
|
||||
));
|
||||
} catch (ParserConfigurationException|SAXException e) {
|
||||
throw new RuntimeException(String.format(
|
||||
"Failed to parse the '%s' XML file!",
|
||||
"Failed to parse the '%s' XML file",
|
||||
wildflyConfigXml.getAbsolutePath()
|
||||
));
|
||||
}
|
||||
|
@ -677,7 +680,7 @@ public class AuthServerTestEnricher {
|
|||
} else {
|
||||
throw new RuntimeException(
|
||||
"Failed to determine the name of system property " +
|
||||
"holding JSSE security provider's name for Elytron client!"
|
||||
"holding JSSE security provider's name for Elytron client"
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -725,7 +728,7 @@ public class AuthServerTestEnricher {
|
|||
} else {
|
||||
throw new RuntimeException(
|
||||
"The SunJSSE provider is not present " +
|
||||
"on the platform!"
|
||||
"on the platform"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -738,11 +741,11 @@ public class AuthServerTestEnricher {
|
|||
} else {
|
||||
throw new RuntimeException(
|
||||
"Cannot identify a security provider for Elytron client " +
|
||||
"offering the TLSv1.2 capability!"
|
||||
"offering the TLSv1.2 capability"
|
||||
);
|
||||
}
|
||||
log.infof(
|
||||
"Using the '%s' JSSE provider!", platformJsseProvider.getName()
|
||||
"Using the '%s' JSSE provider", platformJsseProvider.getName()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -780,7 +783,7 @@ public class AuthServerTestEnricher {
|
|||
|
||||
administration.reloadIfRequired();
|
||||
} else {
|
||||
log.info("## The Auth Server has already configured TLS. Skipping... ##");
|
||||
log.info("## The Auth Server has already configured TLS. Skipping ##");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -659,7 +659,7 @@
|
|||
~ Used for Wildfly Elytron 1.13.0.CR3+ RESTEasy client SSL truststore configuration.
|
||||
~ See KEYCLOAK-15692, ELY-1891 issues & PRs of EAP7-1219 issue for details.
|
||||
-->
|
||||
<wildfly.config.url>${project.build.directory}/dependency/wildfly-config.xml</wildfly.config.url>
|
||||
<wildfly-client.config.path>${project.build.directory}${file.separator}dependency${file.separator}wildfly-config.xml</wildfly-client.config.path>
|
||||
</systemPropertyVariables>
|
||||
<properties>
|
||||
<property>
|
||||
|
|
Loading…
Reference in a new issue