keycloak-aplcache
Changes
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/ContainersTestEnricher.java 76(+43 -33)
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/SuiteContext.java 10(+0 -10)
Details
diff --git a/testsuite/integration-arquillian/servers/wildfly/pom.xml b/testsuite/integration-arquillian/servers/wildfly/pom.xml
index 3610737..634688b 100644
--- a/testsuite/integration-arquillian/servers/wildfly/pom.xml
+++ b/testsuite/integration-arquillian/servers/wildfly/pom.xml
@@ -209,31 +209,6 @@
</execution>
</executions>
</plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>xml-maven-plugin</artifactId>
- <executions>
- <execution>
- <id>configure-adapter-subsystem</id>
- <phase>process-resources</phase>
- <goals>
- <goal>transform</goal>
- </goals>
- <configuration>
- <transformationSets>
- <transformationSet>
- <dir>${keycloak.server.home}/standalone/configuration</dir>
- <includes>
- <include>standalone.xml</include>
- </includes>
- <stylesheet>src/main/xslt/standalone.xsl</stylesheet>
- <outputDir>${keycloak.server.home}/standalone/configuration</outputDir>
- </transformationSet>
- </transformationSets>
- </configuration>
- </execution>
- </executions>
- </plugin>
</plugins>
</build>
</profile>
diff --git a/testsuite/integration-arquillian/tests/adapters/as7/pom.xml b/testsuite/integration-arquillian/tests/adapters/as7/pom.xml
index 135c1bf..b63ae88 100644
--- a/testsuite/integration-arquillian/tests/adapters/as7/pom.xml
+++ b/testsuite/integration-arquillian/tests/adapters/as7/pom.xml
@@ -40,6 +40,11 @@
<artifactId>keycloak-as7-adapter-dist</artifactId>
<type>zip</type>
</dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-as7-adapter-dist</artifactId>
+ <type>zip</type>
+ </dependency>
</dependencies>
<build>
@@ -77,6 +82,13 @@
<type>zip</type>
<outputDirectory>${adapter.libs.as7}</outputDirectory>
</artifactItem>
+ <artifactItem>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-as7-adapter-dist</artifactId>
+ <version>${project.version}</version>
+ <type>zip</type>
+ <outputDirectory>${adapter.libs.as7}</outputDirectory>
+ </artifactItem>
</artifactItems>
</configuration>
</execution>
diff --git a/testsuite/integration-arquillian/tests/adapters/eap6/pom.xml b/testsuite/integration-arquillian/tests/adapters/eap6/pom.xml
index b9075cf..cc82d36 100644
--- a/testsuite/integration-arquillian/tests/adapters/eap6/pom.xml
+++ b/testsuite/integration-arquillian/tests/adapters/eap6/pom.xml
@@ -40,6 +40,11 @@
<artifactId>keycloak-eap6-adapter-dist</artifactId>
<type>zip</type>
</dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-eap6-adapter-dist</artifactId>
+ <type>zip</type>
+ </dependency>
</dependencies>
<build>
@@ -67,7 +72,7 @@
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
- <id>unpack-eap6-with-adapter</id>
+ <id>unpack-eap6-with-adapters</id>
<phase>generate-resources</phase>
<goals>
<goal>unpack</goal>
@@ -88,6 +93,13 @@
<type>zip</type>
<outputDirectory>${adapter.libs.eap6}</outputDirectory>
</artifactItem>
+ <artifactItem>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-eap6-adapter-dist</artifactId>
+ <version>${version.adapter.dist}</version>
+ <type>zip</type>
+ <outputDirectory>${adapter.libs.eap6}</outputDirectory>
+ </artifactItem>
</artifactItems>
</configuration>
</execution>
diff --git a/testsuite/integration-arquillian/tests/adapters/pom.xml b/testsuite/integration-arquillian/tests/adapters/pom.xml
index 5e215fb..c5f2f7b 100644
--- a/testsuite/integration-arquillian/tests/adapters/pom.xml
+++ b/testsuite/integration-arquillian/tests/adapters/pom.xml
@@ -23,6 +23,7 @@
<exclude.adapters>-</exclude.adapters>
<arquillian.xml.stylesheet>src/main/xslt/arquillian.xsl</arquillian.xml.stylesheet>
+ <skip.install.adapters>false</skip.install.adapters>
</properties>
<build>
@@ -50,6 +51,24 @@
</artifactItems>
</configuration>
</execution>
+ <execution>
+ <id>unpack-add-user-json</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.keycloak.testsuite</groupId>
+ <artifactId>integration-arquillian-tests-base</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ <includes>**/keycloak-add-user.json</includes>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
</executions>
</plugin>
<plugin>
@@ -108,6 +127,31 @@
</excludes>
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-resources-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-admin-user-json-file</id>
+ <phase>process-test-resources</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${jboss.server.config.dir}</outputDirectory>
+ <resources>
+ <resource>
+ <directory>${project.build.directory}/dependency</directory>
+ <includes>
+ <include>keycloak-add-user.json</include>
+ </includes>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</pluginManagement>
</build>
diff --git a/testsuite/integration-arquillian/tests/adapters/wildfly/pom.xml b/testsuite/integration-arquillian/tests/adapters/wildfly/pom.xml
index 4622489..7551f65 100644
--- a/testsuite/integration-arquillian/tests/adapters/wildfly/pom.xml
+++ b/testsuite/integration-arquillian/tests/adapters/wildfly/pom.xml
@@ -31,6 +31,11 @@
<artifactId>keycloak-wildfly-adapter-dist</artifactId>
<type>zip</type>
</dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-wildfly-adapter-dist</artifactId>
+ <type>zip</type>
+ </dependency>
</dependencies>
<build>
@@ -68,6 +73,13 @@
<type>zip</type>
<outputDirectory>${adapter.libs.wildfly}</outputDirectory>
</artifactItem>
+ <artifactItem>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-wildfly-adapter-dist</artifactId>
+ <version>${project.version}</version>
+ <type>zip</type>
+ <outputDirectory>${adapter.libs.wildfly}</outputDirectory>
+ </artifactItem>
</artifactItems>
</configuration>
</execution>
@@ -77,7 +89,6 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
- <version>2.18.1</version>
<configuration>
<systemPropertyVariables>
<app.server.wildfly>true</app.server.wildfly>
@@ -145,20 +156,20 @@
<goal>copy-resources</goal>
</goals>
<configuration>
- <outputDirectory>${app.server.wildfly.home}/standalone/configuration</outputDirectory>
- <resources>
- <resource>
- <directory>src/main/keystore</directory>
- <includes>
- <include>adapter.jks</include>
- <include>keycloak.truststore</include>
- </includes>
- </resource>
- </resources>
- <nonFilteredFileExtensions>
+ <outputDirectory>${app.server.wildfly.home}/standalone/configuration</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/keystore</directory>
+ <includes>
+ <include>adapter.jks</include>
+ <include>keycloak.truststore</include>
+ </includes>
+ </resource>
+ </resources>
+ <nonFilteredFileExtensions>
<nonFilteredFileExtension>jks</nonFilteredFileExtension>
<nonFilteredFileExtension>truststore</nonFilteredFileExtension>
- </nonFilteredFileExtensions>
+ </nonFilteredFileExtensions>
</configuration>
</execution>
</executions>
diff --git a/testsuite/integration-arquillian/tests/base/pom.xml b/testsuite/integration-arquillian/tests/base/pom.xml
index c1e5e9c..c0ed48b 100644
--- a/testsuite/integration-arquillian/tests/base/pom.xml
+++ b/testsuite/integration-arquillian/tests/base/pom.xml
@@ -74,6 +74,13 @@
</properties>
</profile>
<profile>
+ <id>no-client</id>
+ <properties>
+ <!-- Exclude all account management tests. -->
+ <exclude.account>**/client/**/*Test.java</exclude.account>
+ </properties>
+ </profile>
+ <profile>
<id>adapters-only</id>
<properties>
<exclude.console>**/console/**/*Test.java</exclude.console>
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/ContainersTestEnricher.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/ContainersTestEnricher.java
index e6f3c15..2512d1c 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/ContainersTestEnricher.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/ContainersTestEnricher.java
@@ -23,7 +23,6 @@ import org.jboss.arquillian.core.api.annotation.Observes;
import org.jboss.arquillian.test.spi.annotation.ClassScoped;
import org.jboss.arquillian.test.spi.annotation.SuiteScoped;
import org.jboss.arquillian.container.spi.event.container.AfterStart;
-import org.jboss.arquillian.container.spi.event.container.BeforeStart;
import org.jboss.arquillian.test.spi.event.suite.BeforeClass;
import org.jboss.arquillian.test.spi.event.suite.BeforeSuite;
import org.jboss.logging.Logger;
@@ -35,6 +34,7 @@ import org.keycloak.testsuite.util.OAuthClient;
import static org.keycloak.testsuite.auth.page.AuthRealm.ADMIN;
import static org.keycloak.testsuite.auth.page.AuthRealm.MASTER;
+import static org.keycloak.testsuite.util.WaitUtils.pause;
/**
*
@@ -78,7 +78,10 @@ public class ContainersTestEnricher {
private ContainerController controller;
private LinkedList<Container> containers;
+ private String jbossHomePath;
private final boolean migrationTests = System.getProperty("migration", "false").equals("true");
+ private final boolean skipInstallAdapters = System.getProperty("skip.install.adapters", "false").equals("true");
+ private boolean alreadyInstalled = false;
private boolean alreadyStopped = false;
private boolean init = false;
@@ -110,16 +113,12 @@ public class ContainersTestEnricher {
*/
public void afterStart(@Observes AfterStart event) throws IOException, InterruptedException {
Container container = containers.pollFirst();
- String jbossHomePath = null;
if (isJBossBased(container)) {
jbossHomePath = container.getContainerConfiguration().getContainerProperties().get("jbossHome");
log.debug("jbossHome: " + jbossHomePath + "\n");
-
- if (System.getProperty("check.server.log", "true").equals("true")) {
- checkServerLog(jbossHomePath);
- }
}
+ checkServerLog(jbossHomePath);
if (migrationTests && !alreadyStopped) {
log.info("\n\n### Stopping keycloak " + System.getProperty("version", "- previous") + " ###\n");
@@ -127,44 +126,52 @@ public class ContainersTestEnricher {
log.info("\n\n### Starting keycloak current version ###\n");
alreadyStopped = true;
}
-
- if (isJBossBased(container) && container.getName().startsWith("app-server")) {
- log.info("Installing adapter to app server via cli script");
+
+ if (!alreadyInstalled && !skipInstallAdapters && isJBossBased(container)) {
String jbossCliPath = jbossHomePath + "/bin/jboss-cli.sh";
- String scriptPathArg = "--file=" + jbossHomePath + "/bin/adapter-install.cli";
+ String adapterScriptPathArg = "--file=" + jbossHomePath + "/bin/adapter-install.cli";
+ String samlAdapterScriptPathArg = "--file=" + jbossHomePath + "/bin/adapter-install-saml.cli";
String managementPort = container.getContainerConfiguration().getContainerProperties().get("managementPort");
String controllerArg = "--controller=localhost:" + managementPort;
- execCommand(new String[]{"/bin/sh", jbossCliPath, "--connect", scriptPathArg, controllerArg});
- log.debug("Restarting container");
+ log.info("Installing adapter to app server via cli script");
+ execCommand(new String[]{"/bin/sh", jbossCliPath, "--connect", adapterScriptPathArg, controllerArg});
+ log.info("Installing saml adapter to app server via cli script");
+ execCommand(new String[]{"/bin/sh", jbossCliPath, "--connect", samlAdapterScriptPathArg, controllerArg});
+ log.info("Restarting container");
execCommand(new String[]{"/bin/sh", jbossCliPath, "--connect", "--command=:reload", controllerArg});
+ pause(5000);
+ log.info("Container restarted");
+ checkServerLog(jbossHomePath);
+ if (container.getName().startsWith("app-server")) {
+ alreadyInstalled = true;
+ }
}
}
private void execCommand(String... command) throws IOException, InterruptedException {
Process process = Runtime.getRuntime().exec(command);
- printOutput(process.getInputStream());
-
if (process.waitFor(10, TimeUnit.SECONDS)) {
if (process.exitValue() != 0) {
- log.error("Std Error:");
- printOutput(process.getErrorStream());
- throw new RuntimeException("Adapter installation failed.");
+ throw new RuntimeException("Adapter installation failed. Process exitValue: "
+ + process.exitValue() + "; <error output>\n" + getOutput(process.getErrorStream())
+ + "</error output>");
}
+ log.debug("process.isAlive(): " + process.isAlive());
} else {
- process.destroy();
+ process.destroyForcibly();
throw new RuntimeException("Timeout after 10 seconds.");
}
}
- private void printOutput(InputStream is) throws IOException {
+ private String getOutput(InputStream is) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder builder = new StringBuilder();
while (reader.ready()) {
builder.append(reader.readLine());
}
- log.info(builder);
+ return builder.toString();
}
private boolean isJBossBased(Container container) {
@@ -182,19 +189,22 @@ public class ContainersTestEnricher {
* check server logs whether there are no ERRORs or SEVEREs
*/
private void checkServerLog(String jbossHomePath) throws IOException {
- File serverLog = new File(jbossHomePath + "/standalone/log/server.log");
- String serverLogContent = FileUtils.readFileToString(serverLog);
-
- boolean containsError
- = serverLogContent.contains("ERROR")
- || serverLogContent.contains("SEVERE")
- || serverLogContent.contains("Exception ");
- //There is expected string "Exception" in server log: Adding provider
- //singleton org.keycloak.services.resources.ModelExceptionMapper
-
- if (containsError) {
- throw new RuntimeException(serverLog.getPath() + " contains ERROR.");
- }
+ if (jbossHomePath != null && System.getProperty("check.server.log", "true").equals("true")) {
+ File serverLog = new File(jbossHomePath + "/standalone/log/server.log");
+ String serverLogContent = FileUtils.readFileToString(serverLog);
+
+ boolean containsError
+ = serverLogContent.contains("ERROR")
+ || serverLogContent.contains("SEVERE")
+ || serverLogContent.contains("Exception ");
+ //There is expected string "Exception" in server log: Adding provider
+ //singleton org.keycloak.services.resources.ModelExceptionMapper
+
+ if (containsError) {
+ throw new RuntimeException(serverLog.getPath() + " contains ERROR.");
+ }
+ log.info(serverLog.getPath() + " doesn't contain Error");
+ }
}
public void beforeSuite(@Observes BeforeSuite event) {
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/SuiteContext.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/SuiteContext.java
index 589c316..b99d6b3 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/SuiteContext.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/SuiteContext.java
@@ -10,24 +10,14 @@ import static org.keycloak.testsuite.util.MailServerConfiguration.*;
*/
public final class SuiteContext {
- private boolean adminPasswordUpdated;
private final Map<String, String> smtpServer = new HashMap<>();
public SuiteContext() {
- this.adminPasswordUpdated = false;
smtpServer.put("from", FROM);
smtpServer.put("host", HOST);
smtpServer.put("port", PORT);
}
- public boolean isAdminPasswordUpdated() {
- return adminPasswordUpdated;
- }
-
- public void setAdminPasswordUpdated(boolean adminPasswordUpdated) {
- this.adminPasswordUpdated = adminPasswordUpdated;
- }
-
public Map<String, String> getSmtpServer() {
return smtpServer;
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/AbstractKeycloakTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/AbstractKeycloakTest.java
index 13ec96e..9400f77 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/AbstractKeycloakTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/AbstractKeycloakTest.java
@@ -25,7 +25,6 @@ import org.keycloak.testsuite.util.OAuthClient;
import org.openqa.selenium.WebDriver;
import org.keycloak.testsuite.auth.page.AuthServer;
import org.keycloak.testsuite.auth.page.AuthServerContextRoot;
-import static org.keycloak.testsuite.util.URLAssert.*;
import org.keycloak.testsuite.auth.page.AuthRealm;
import static org.keycloak.testsuite.auth.page.AuthRealm.ADMIN;
import static org.keycloak.testsuite.auth.page.AuthRealm.MASTER;
@@ -90,12 +89,6 @@ public abstract class AbstractKeycloakTest {
driverSettings();
- if (!suiteContext.isAdminPasswordUpdated()) {
- log.debug("updating admin password");
- updateMasterAdminPassword();
- suiteContext.setAdminPasswordUpdated(true);
- }
-
importTestRealms();
}
@@ -106,13 +99,6 @@ public abstract class AbstractKeycloakTest {
Timer.printStats();
}
- private void updateMasterAdminPassword() {
- welcomePage.navigateTo();
- if (!welcomePage.isPasswordSet()) {
- welcomePage.setPassword("admin", "admin");
- }
- }
-
public void deleteAllCookiesForMasterRealm() {
masterRealmPage.navigateTo();
log.debug("deleting cookies in master realm");
diff --git a/testsuite/integration-arquillian/tests/base/src/test/resources/keycloak-add-user.json b/testsuite/integration-arquillian/tests/base/src/test/resources/keycloak-add-user.json
index 635f144..60c0f09 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/resources/keycloak-add-user.json
+++ b/testsuite/integration-arquillian/tests/base/src/test/resources/keycloak-add-user.json
@@ -5,12 +5,11 @@
"enabled" : true,
"credentials" : [ {
"type" : "password",
- "hashedSaltedValue" : "6K5rvcPu3dXndZOhpzLAVbFtcdlUhbGCrUyV0NNzeS61IdhMpjH8Mf4y/Ag/vHZkw4Ayvtvb9/1iMNOzxR0M6g==",
- "salt" : "/6M1jTMUB0uR8EOkksFn/A==",
+ "hashedSaltedValue" : "dqalJHLkWhUJZO/q6+z1fvXOohTcGCXcvoU8xCEyvTxGN4wmLx7DtyhKuefggh6Bkx1I2eBTEX4tiWggwyXMDw==",
+ "salt" : "3fBAt5GAGGxFrV9fznpZHQ==",
"hashIterations" : 100000,
"algorithm" : "pbkdf2"
} ],
"realmRoles" : [ "admin" ]
- } ],
- "identityFederationEnabled" : false
+ } ]
} ]
\ No newline at end of file
diff --git a/testsuite/integration-arquillian/tests/pom.xml b/testsuite/integration-arquillian/tests/pom.xml
index fbc4914..d40218b 100644
--- a/testsuite/integration-arquillian/tests/pom.xml
+++ b/testsuite/integration-arquillian/tests/pom.xml
@@ -41,6 +41,7 @@
<version.shrinkwrap.resolvers>2.1.1</version.shrinkwrap.resolvers>
<skip.unpack.server>true</skip.unpack.server>
<skip.unpack.previous>true</skip.unpack.previous>
+ <skip.install.adapters>true</skip.install.adapters>
</properties>
<dependencyManagement>
@@ -95,6 +96,7 @@
<auth.server.ssl.required>${auth.server.ssl.required}</auth.server.ssl.required>
<startup.timeout.sec>${startup.timeout.sec}</startup.timeout.sec>
<jboss.server.config.dir>${project.build.directory}/undertow-configuration</jboss.server.config.dir>
+ <skip.install.adapters>${skip.install.adapters}</skip.install.adapters>
</systemPropertyVariables>
<properties>
<property>
@@ -152,6 +154,7 @@
</executions>
</plugin>
<plugin>
+ <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
@@ -416,6 +419,7 @@
<startup.timeout.sec>300</startup.timeout.sec>
<adapter.test.props/>
<keycloak.home>${containers.home}/keycloak-${project.version}</keycloak.home>
+ <jboss.server.config.dir>${keycloak.home}/standalone/configuration</jboss.server.config.dir>
</properties>
<dependencies>
<dependency>
@@ -448,7 +452,7 @@
<goal>copy-resources</goal>
</goals>
<configuration>
- <outputDirectory>${keycloak.home}/standalone/configuration</outputDirectory>
+ <outputDirectory>${jboss.server.config.dir}</outputDirectory>
<resources>
<resource>
<directory>src/test/resources</directory>
@@ -512,6 +516,7 @@
<startup.timeout.sec>300</startup.timeout.sec>
<adapter.test.props/>
<keycloak.home>${containers.home}/keycloak-${version.eap6.server.dist}</keycloak.home>
+ <jboss.server.config.dir>${keycloak.home}/standalone/configuration</jboss.server.config.dir>
</properties>
<dependencies>
<dependency>
@@ -570,7 +575,7 @@
<goal>copy-resources</goal>
</goals>
<configuration>
- <outputDirectory>${keycloak.home}/standalone/configuration</outputDirectory>
+ <outputDirectory>${jboss.server.config.dir}</outputDirectory>
<resources>
<resource>
<directory>src/test/resources</directory>