diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/AuthServerTestEnricher.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/AuthServerTestEnricher.java
index b8e0760c76..93af89a142 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/AuthServerTestEnricher.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/AuthServerTestEnricher.java
@@ -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 ##");
}
}
diff --git a/testsuite/integration-arquillian/tests/pom.xml b/testsuite/integration-arquillian/tests/pom.xml
index a506ee104e..9857c5fdaa 100755
--- a/testsuite/integration-arquillian/tests/pom.xml
+++ b/testsuite/integration-arquillian/tests/pom.xml
@@ -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.
-->
- ${project.build.directory}/dependency/wildfly-config.xml
+ ${project.build.directory}${file.separator}dependency${file.separator}wildfly-config.xml