diff --git a/testsuite/integration-arquillian/HOW-TO-RUN.md b/testsuite/integration-arquillian/HOW-TO-RUN.md
index 54be4e0499c..8cac65f732d 100644
--- a/testsuite/integration-arquillian/HOW-TO-RUN.md
+++ b/testsuite/integration-arquillian/HOW-TO-RUN.md
@@ -150,7 +150,6 @@ Assumed you downloaded `jboss-fuse-karaf-6.3.0.redhat-229.zip`
2) Install to your local maven repository and change the properties according to your env (This step can be likely avoided if you somehow configure your local maven settings to point directly to Fuse repo):
-
mvn install:install-file \
-DgroupId=org.jboss.fuse \
-DartifactId=jboss-fuse-karaf \
@@ -166,24 +165,22 @@ Assumed you downloaded `jboss-fuse-karaf-6.3.0.redhat-229.zip`
mvn -f testsuite/integration-arquillian/servers/pom.xml \
clean install \
-Papp-server-fuse63 \
- -Dfuse63.version=6.3.0.redhat-229 \
- -Dapp.server.karaf.update.config=true \
- -Dmaven.local.settings=$HOME/.m2/settings.xml \
- -Drepositories=,http://REPO-SERVER/brewroot/repos/sso-7.1-build/latest/maven/ \
- -Dmaven.repo.local=$HOME/.m2/repository
+ -Dfuse63.version=6.3.0.redhat-229
# Run the Fuse adapter tests
mvn -f testsuite/integration-arquillian/tests/base/pom.xml \
clean install \
-Pauth-server-wildfly \
-Papp-server-fuse63 \
- -Dtest=Fuse*AdapterTest
+ -Dauth.server.ssl.required=false \
+ -Dadditional.fuse.repos=,$REPO \
+ -Dtest=*.fuse.*
### JBoss Fuse 7.X
-1) Download JBoss Fuse 7 to your filesystem. It can be downloaded from http://origin-repository.jboss.org/nexus/content/groups/m2-proxy/org/jboss/fuse/fuse-karaf (Fuse 7.1 or higher is required)
-Assumed you downloaded `fuse-karaf-7.1.0.fuse-710029.zip`
+1) Download JBoss Fuse 7 to your filesystem. It can be downloaded from http://origin-repository.jboss.org/nexus/content/groups/m2-proxy/org/jboss/fuse/fuse-karaf (Fuse 7.3 or higher is required)
+Assumed you downloaded `fuse-karaf-7.3.0.fuse-730065-redhat-00002.zip`
2) Install to your local maven repository and change the properties according to your env (This step can be likely avoided if you somehow configure your local maven settings to point directly to Fuse repo):
@@ -191,9 +188,9 @@ Assumed you downloaded `fuse-karaf-7.1.0.fuse-710029.zip`
mvn install:install-file \
-DgroupId=org.jboss.fuse \
-DartifactId=fuse-karaf \
- -Dversion=7.1.0.fuse-710029 \
+ -Dversion=7.3.0.fuse-730065-redhat-00002 \
-Dpackaging=zip \
- -Dfile=/mydownloads/fuse-karaf-7.1.0.fuse-710029.zip
+ -Dfile=/mydownloads/fuse-karaf-7.3.0.fuse-730065-redhat-00002.zip
3) Prepare Fuse and run the tests (change props according to your environment, versions etc):
@@ -203,17 +200,15 @@ Assumed you downloaded `fuse-karaf-7.1.0.fuse-710029.zip`
mvn -f testsuite/integration-arquillian/servers/pom.xml \
clean install \
-Papp-server-fuse7x \
- -Dfuse7x.version=7.1.0.fuse-710029 \
- -Dapp.server.karaf.update.config=true \
- -Dmaven.local.settings=$HOME/.m2/settings.xml \
- -Drepositories=,http://REPO-SERVER/brewroot/repos/sso-7.1-build/latest/maven/ \
- -Dmaven.repo.local=$HOME/.m2/repository
+ -Dfuse7x.version=7.3.0.fuse-730065-redhat-00002
# Run the Fuse adapter tests
mvn -f testsuite/integration-arquillian/tests/base/pom.xml \
clean test \
-Papp-server-fuse7x \
- -Dtest=Fuse*AdapterTest
+ -Dauth.server.ssl.required=false \
+ -Dadditional.fuse.repos=,$REPO \
+ -Dtest=*.fuse.*
### EAP6 with Hawtio
@@ -797,4 +792,4 @@ When running the test, add the following arguments to the command line:
## Java 11 support
Java 11 requires some arguments to be passed to JVM. Those can be activated using `-Pjava11-auth-server` and
-`-Pjava11-app-server` profiles, respectively.
\ No newline at end of file
+`-Pjava11-app-server` profiles, respectively.
diff --git a/testsuite/integration-arquillian/servers/README.md b/testsuite/integration-arquillian/servers/README.md
index 748e5544b32..4042647f46a 100644
--- a/testsuite/integration-arquillian/servers/README.md
+++ b/testsuite/integration-arquillian/servers/README.md
@@ -25,9 +25,6 @@ The artifacts are used by the Arquillian TestSuite.
- Wildfly 8, 9, 10
- EAP 6, 7
- Relative (Wildfly 10 / EAP 7)
-- Karaf / Fuse
- - Karaf 3
- - Fuse 6.1, 6.2
- Tomcat
- Tomcat 7, 8, 9
diff --git a/testsuite/integration-arquillian/servers/app-server/README.md b/testsuite/integration-arquillian/servers/app-server/README.md
index dd52e8cf558..d3666eaeafe 100644
--- a/testsuite/integration-arquillian/servers/app-server/README.md
+++ b/testsuite/integration-arquillian/servers/app-server/README.md
@@ -31,14 +31,6 @@ Submodules are enabled with profiles: `-Papp-server-MODULE`
Configures SSL in `standalone.xml`. See profile `ssl`.
-
-## App Server - Karaf
-Submodules are enabled with profiles: `-Papp-server-MODULE`
-### Modules
-* __`karaf3` Karaf 3__
-* __`fuse61` JBoss Fuse 6.1__
-* __`fuse62` JBoss Fuse 6.2__
-
## App Server - Tomcat
Submodules are enabled with profiles: `-Papp-server-MODULE`
### Modules
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/common/install-features.bat b/testsuite/integration-arquillian/servers/app-server/karaf/common/install-features.bat
deleted file mode 100644
index 58d14edc613..00000000000
--- a/testsuite/integration-arquillian/servers/app-server/karaf/common/install-features.bat
+++ /dev/null
@@ -1,42 +0,0 @@
-set NOPAUSE=true
-echo "JAVA_HOME=%JAVA_HOME%"
-
-start "Karaf" /b cmd /c start.bat
-echo "Karaf container starting"
-ping 127.0.0.1 -n 5 > nul
-
-set ERROR=0
-set TIMEOUT=10
-set I=0
-
-:wait_for_karaf
-call client.bat %CLIENT_AUTH% info
-if %ERRORLEVEL% equ 0 goto install_features
-echo "Server is not reachable. Waiting."
-ping 127.0.0.1 -n 2 > nul
-set /a I=%I%+1
-if %I% gtr %TIMEOUT% (
- set ERROR=1
- goto shutdown_karaf
-)
-goto wait_for_karaf
-
-
-:install_features
-echo "Server is reachable. Installing features."
-if "%UNINSTALL_PAX%" == "true" (
- call client.bat %CLIENT_AUTH% -f uninstall-pax.cli
- if %ERRORLEVEL% neq 0 set ERROR=%ERRORLEVEL%
-)
-if "%UPDATE_CONFIG%" == "true" (
- call client.bat %CLIENT_AUTH% -f update-config.cli
- if %ERRORLEVEL% neq 0 set ERROR=%ERRORLEVEL%
-)
-call client.bat %CLIENT_AUTH% -f install-features.cli
-if %ERRORLEVEL% neq 0 set ERROR=%ERRORLEVEL%
-
-
-:shutdown_karaf
-call stop.bat
-ping 127.0.0.1 -n 5 > nul
-exit /b %ERROR%
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/common/install-features.sh b/testsuite/integration-arquillian/servers/app-server/karaf/common/install-features.sh
deleted file mode 100755
index 751219dd46c..00000000000
--- a/testsuite/integration-arquillian/servers/app-server/karaf/common/install-features.sh
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/bin/bash
-echo "JAVA_HOME=$JAVA_HOME"
-
-./start
-echo "Karaf container starting"
-sleep 5
-
-TIMEOUT=10
-DELAY=1
-T=0
-
-RESULT=0
-
-until [ $T -gt $TIMEOUT ]
-do
- if ./client $CLIENT_AUTH info; then
- echo "Server is reachable."
-
- if "$UNINSTALL_PAX" == "true"; then
- echo "Uninstalling PAX"
- ./client $CLIENT_AUTH -f uninstall-pax.cli
- if [ $? -ne 0 ]; then RESULT=1; fi
- fi
-
- if "$UPDATE_CONFIG" == "true"; then
- echo "Updating Config"
- ./client $CLIENT_AUTH -f update-config.cli
- if [ $? -ne 0 ]; then
- echo "Call update-config.cli failed!";
- RESULT=1;
- else
- ./client $CLIENT_AUTH config:list | grep org.ops4j.pax.url.mvn.
- fi
- fi
-
- echo "Installing features."
- ./client $CLIENT_AUTH -f install-features.cli
- if [ $? -ne 0 ]; then
- echo "Call install-features.cli failed!";
- RESULT=1;
- fi
-
- if "$UPDATE_CONFIG" == "true"; then
- echo "Updating Config - Keycloak authentication"
- ./client $CLIENT_AUTH -f update-config-auth.cli
- if [ $? -ne 0 ]; then
- echo "Call update-config-auth.cli failed!";
- RESULT=1;
- fi
- fi
-
- ./stop
- rm -rf ../data/log
- rm -rf ../data/tmp
-
- sleep 5
-
- exit $RESULT
- else
- echo "Server is not reachable. Waiting."
- sleep $DELAY
- let T=$T+$DELAY
- fi
-done
-
-./stop
-exit 1
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/fuse61/pom.xml b/testsuite/integration-arquillian/servers/app-server/karaf/fuse61/pom.xml
deleted file mode 100644
index b5fa6f5bb14..00000000000
--- a/testsuite/integration-arquillian/servers/app-server/karaf/fuse61/pom.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
-
- org.keycloak.testsuite
- integration-arquillian-servers-app-server-karaf
- 6.0.0-SNAPSHOT
-
- 4.0.0
-
- integration-arquillian-servers-app-server-fuse61
- pom
- App Server - Karaf - JBoss Fuse 6.1
-
-
- fuse61
- org.jboss.fuse
- jboss-fuse-full
- ${fuse61.version}
- jboss-fuse-${fuse61.version}
- -u admin -p admin
- true
-
-
-
-
-
- maven-enforcer-plugin
-
-
-
- enforce
-
-
-
-
- fuse61.version
-
-
-
-
-
-
-
-
-
-
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/fuse61/src/main/resources/install-features.cli b/testsuite/integration-arquillian/servers/app-server/karaf/fuse61/src/main/resources/install-features.cli
deleted file mode 100644
index 9ac9d776cdb..00000000000
--- a/testsuite/integration-arquillian/servers/app-server/karaf/fuse61/src/main/resources/install-features.cli
+++ /dev/null
@@ -1,6 +0,0 @@
-features:addurl mvn:org.ops4j.pax.web/pax-web-features/3.1.2/xml/features
-features:addurl mvn:org.keycloak/keycloak-osgi-features/${project.version}/xml/features
-features:addurl mvn:org.keycloak.example.demo/keycloak-fuse-example-features/${project.version}/xml/features
-features:install keycloak-pax-web-upgrade
-features:install pax-http-whiteboard/3.1.2
-features:install pax-war/3.1.2
\ No newline at end of file
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/fuse61/src/main/resources/uninstall-pax.cli b/testsuite/integration-arquillian/servers/app-server/karaf/fuse61/src/main/resources/uninstall-pax.cli
deleted file mode 100644
index a1106a71dde..00000000000
--- a/testsuite/integration-arquillian/servers/app-server/karaf/fuse61/src/main/resources/uninstall-pax.cli
+++ /dev/null
@@ -1,5 +0,0 @@
-features:uninstall pax-war
-features:uninstall pax-http-whiteboard
-features:uninstall pax-http
-features:uninstall pax-jetty
-features:removeurl mvn:org.ops4j.pax.web/pax-web-features/3.0.6/xml/features
\ No newline at end of file
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/fuse61/src/main/resources/users.properties b/testsuite/integration-arquillian/servers/app-server/karaf/fuse61/src/main/resources/users.properties
deleted file mode 100644
index e6ba6726376..00000000000
--- a/testsuite/integration-arquillian/servers/app-server/karaf/fuse61/src/main/resources/users.properties
+++ /dev/null
@@ -1 +0,0 @@
-admin=admin,admin
\ No newline at end of file
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/fuse61/src/saml-adapter-not-supported b/testsuite/integration-arquillian/servers/app-server/karaf/fuse61/src/saml-adapter-not-supported
deleted file mode 100644
index 8b137891791..00000000000
--- a/testsuite/integration-arquillian/servers/app-server/karaf/fuse61/src/saml-adapter-not-supported
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/fuse62/pom.xml b/testsuite/integration-arquillian/servers/app-server/karaf/fuse62/pom.xml
deleted file mode 100644
index 3303dbd3806..00000000000
--- a/testsuite/integration-arquillian/servers/app-server/karaf/fuse62/pom.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
-
- org.keycloak.testsuite
- integration-arquillian-servers-app-server-karaf
- 6.0.0-SNAPSHOT
-
- 4.0.0
-
- integration-arquillian-servers-app-server-fuse62
- pom
- App Server - Karaf - JBoss Fuse 6.2
-
-
- fuse62
- org.jboss.fuse
- jboss-fuse-full
- ${fuse62.version}
- jboss-fuse-${fuse62.version}
- -u admin -p admin
-
-
-
-
-
- maven-enforcer-plugin
-
-
-
- enforce
-
-
-
-
- fuse62.version
-
-
-
-
-
-
-
-
-
-
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/fuse62/src/main/resources/install-features.cli b/testsuite/integration-arquillian/servers/app-server/karaf/fuse62/src/main/resources/install-features.cli
deleted file mode 100644
index 3fd01bb7cbf..00000000000
--- a/testsuite/integration-arquillian/servers/app-server/karaf/fuse62/src/main/resources/install-features.cli
+++ /dev/null
@@ -1,3 +0,0 @@
-features:addurl mvn:org.keycloak/keycloak-osgi-features/${project.version}/xml/features
-features:addurl mvn:org.keycloak.testsuite/fuse-example-keycloak-features/${project.version}/xml/features
-features:install keycloak-fuse-6.2-example
\ No newline at end of file
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/fuse62/src/main/resources/update-config.cli b/testsuite/integration-arquillian/servers/app-server/karaf/fuse62/src/main/resources/update-config.cli
deleted file mode 100644
index d6a425a0f76..00000000000
--- a/testsuite/integration-arquillian/servers/app-server/karaf/fuse62/src/main/resources/update-config.cli
+++ /dev/null
@@ -1,5 +0,0 @@
-config:edit org.ops4j.pax.url.mvn
-config:propset org.ops4j.pax.url.mvn.localRepository ${maven.repo.local}
-config:propset org.ops4j.pax.url.mvn.settings ${maven.local.settings}
-config:propappend org.ops4j.pax.url.mvn.repositories ${repositories}
-config:update
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/fuse62/src/main/resources/users.properties b/testsuite/integration-arquillian/servers/app-server/karaf/fuse62/src/main/resources/users.properties
deleted file mode 100644
index 6c51920d23e..00000000000
--- a/testsuite/integration-arquillian/servers/app-server/karaf/fuse62/src/main/resources/users.properties
+++ /dev/null
@@ -1 +0,0 @@
-admin=admin,admin,manager,viewer,Monitor, Operator, Maintainer, Deployer, Auditor, Administrator, SuperUser
\ No newline at end of file
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/fuse62/src/saml-adapter-not-supported b/testsuite/integration-arquillian/servers/app-server/karaf/fuse62/src/saml-adapter-not-supported
deleted file mode 100644
index 8b137891791..00000000000
--- a/testsuite/integration-arquillian/servers/app-server/karaf/fuse62/src/saml-adapter-not-supported
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/fuse63/pom.xml b/testsuite/integration-arquillian/servers/app-server/karaf/fuse63/pom.xml
index db2ebca8be1..e5c856255a5 100644
--- a/testsuite/integration-arquillian/servers/app-server/karaf/fuse63/pom.xml
+++ b/testsuite/integration-arquillian/servers/app-server/karaf/fuse63/pom.xml
@@ -35,7 +35,6 @@
jboss-fuse-karaf
${fuse63.version}
jboss-fuse-${fuse63.version}
- -u admin -p admin
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/fuse63/src/main/resources/install-features.cli b/testsuite/integration-arquillian/servers/app-server/karaf/fuse63/src/main/resources/install-features.cli
deleted file mode 100644
index b23ee2b0277..00000000000
--- a/testsuite/integration-arquillian/servers/app-server/karaf/fuse63/src/main/resources/install-features.cli
+++ /dev/null
@@ -1,3 +0,0 @@
-features:addurl mvn:org.keycloak/keycloak-osgi-features/${project.version}/xml/features
-features:addurl mvn:org.keycloak.testsuite/fuse-example-keycloak-features/${project.version}/xml/features
-features:install keycloak-fuse-6.3-example
\ No newline at end of file
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/fuse63/src/main/resources/update-config-auth.cli b/testsuite/integration-arquillian/servers/app-server/karaf/fuse63/src/main/resources/update-config-auth.cli
deleted file mode 100644
index f343e283b56..00000000000
--- a/testsuite/integration-arquillian/servers/app-server/karaf/fuse63/src/main/resources/update-config-auth.cli
+++ /dev/null
@@ -1,8 +0,0 @@
-config:edit org.apache.karaf.shell
-config:propset sshRealm keycloak
-config:update
-system-property -p hawtio.roles admin,user
-system-property -p hawtio.keycloakEnabled true
-system-property -p hawtio.realm keycloak
-system-property -p hawtio.keycloakClientConfig file://\$\{karaf.base\}/etc/keycloak-hawtio-client.json
-system-property -p hawtio.rolePrincipalClasses org.keycloak.adapters.jaas.RolePrincipal,org.apache.karaf.jaas.boot.principal.RolePrincipal
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/fuse63/src/main/resources/update-config.cli b/testsuite/integration-arquillian/servers/app-server/karaf/fuse63/src/main/resources/update-config.cli
deleted file mode 100644
index 9a319403ba8..00000000000
--- a/testsuite/integration-arquillian/servers/app-server/karaf/fuse63/src/main/resources/update-config.cli
+++ /dev/null
@@ -1,10 +0,0 @@
-config:edit org.ops4j.pax.url.mvn
-config:propset org.ops4j.pax.url.mvn.localRepository ${maven.repo.local}
-config:propset org.ops4j.pax.url.mvn.settings ${maven.local.settings}
-config:propappend org.ops4j.pax.url.mvn.repositories ${repositories}
-config:update
-config:edit jmx.acl.org.apache.karaf.security.jmx
-config:propappend list* viewer
-config:propappend set* jmxAdmin
-config:propappend * jmxAdmin,admin
-config:update
\ No newline at end of file
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/fuse63/src/main/resources/users.properties b/testsuite/integration-arquillian/servers/app-server/karaf/fuse63/src/main/resources/users.properties
index 6c51920d23e..f2814f4a3c1 100644
--- a/testsuite/integration-arquillian/servers/app-server/karaf/fuse63/src/main/resources/users.properties
+++ b/testsuite/integration-arquillian/servers/app-server/karaf/fuse63/src/main/resources/users.properties
@@ -1 +1 @@
-admin=admin,admin,manager,viewer,Monitor, Operator, Maintainer, Deployer, Auditor, Administrator, SuperUser
\ No newline at end of file
+admin=password,admin,manager,viewer,Monitor, Operator, Maintainer, Deployer, Auditor, Administrator, SuperUser
\ No newline at end of file
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/fuse7x/pom.xml b/testsuite/integration-arquillian/servers/app-server/karaf/fuse7x/pom.xml
index 6ba17bd4c1e..2ba15097941 100644
--- a/testsuite/integration-arquillian/servers/app-server/karaf/fuse7x/pom.xml
+++ b/testsuite/integration-arquillian/servers/app-server/karaf/fuse7x/pom.xml
@@ -35,7 +35,6 @@
fuse-karaf
${fuse7x.version}
fuse-karaf-${fuse7x.version}
- -u admin -p admin
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/fuse7x/src/main/resources/install-features.cli b/testsuite/integration-arquillian/servers/app-server/karaf/fuse7x/src/main/resources/install-features.cli
deleted file mode 100644
index b6174cd7c62..00000000000
--- a/testsuite/integration-arquillian/servers/app-server/karaf/fuse7x/src/main/resources/install-features.cli
+++ /dev/null
@@ -1,7 +0,0 @@
-feature:repo-add mvn:org.keycloak/keycloak-osgi-features/${project.version}/xml/features
-feature:repo-add mvn:org.keycloak.testsuite/fuse-example-keycloak-features/${project.version}/xml/features
-
-feature:install pax-http-undertow
-
-feature:install keycloak-jaas keycloak-pax-http-undertow
-feature:install keycloak-fuse-7.0-example
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/fuse7x/src/main/resources/update-config-auth.cli b/testsuite/integration-arquillian/servers/app-server/karaf/fuse7x/src/main/resources/update-config-auth.cli
deleted file mode 100644
index 0c14aa3caf3..00000000000
--- a/testsuite/integration-arquillian/servers/app-server/karaf/fuse7x/src/main/resources/update-config-auth.cli
+++ /dev/null
@@ -1,27 +0,0 @@
-config:edit --factory --alias cxf org.ops4j.pax.web.context
-config:property-set bundle.symbolicName org.apache.cxf.cxf-rt-transports-http
-config:property-set context.id default
-config:property-set context.param.keycloak.config.resolver org.keycloak.adapters.osgi.HierarchicalPathBasedKeycloakConfigResolver
-config:property-set login.config.authMethod KEYCLOAK
-config:property-set security.cxf.url /cxf/customerservice/*
-config:property-set security.cxf.roles "admin, user"
-config:update
-
-config:edit org.apache.karaf.shell
-config:property-set sshRealm keycloak
-config:update
-
-# Running on Fuse 7.1?
-fuse71 = (system:version | grep --color never fuse-71) ;
-
-system:property -p hawtio.keycloakEnabled true
-system:property -p hawtio.realm keycloak
-if { ($fuse71 trim) isEmpty } {
- system:property -p hawtio.keycloakClientConfig '\${karaf.etc}/keycloak-hawtio-client.json'
- system:property -p hawtio.keycloakServerConfig '\${karaf.etc}/keycloak-bearer.json'
- system:property -p hawtio.roles admin,manager,viewer,ssh
-} {
- system:property -p hawtio.keycloakClientConfig 'file:\${karaf.etc}/keycloak-hawtio-client.json'
- system:property -p hawtio.keycloakServerConfig 'file:\${karaf.etc}/keycloak-bearer.json'
-}
-system:property -p hawtio.rolePrincipalClasses org.keycloak.adapters.jaas.RolePrincipal,org.apache.karaf.jaas.boot.principal.RolePrincipal
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/fuse7x/src/main/resources/update-config.cli b/testsuite/integration-arquillian/servers/app-server/karaf/fuse7x/src/main/resources/update-config.cli
deleted file mode 100644
index 53968ecc462..00000000000
--- a/testsuite/integration-arquillian/servers/app-server/karaf/fuse7x/src/main/resources/update-config.cli
+++ /dev/null
@@ -1,11 +0,0 @@
-config:edit org.ops4j.pax.url.mvn
-config:property-set org.ops4j.pax.url.mvn.localRepository ${maven.repo.local}
-config:property-set org.ops4j.pax.url.mvn.settings ${maven.local.settings}
-config:property-append org.ops4j.pax.url.mvn.repositories "${repositories}"
-config:update
-
-config:edit jmx.acl.org.apache.karaf.security.jmx
-config:property-append list* viewer
-config:property-append set* jmxAdmin
-config:property-append * jmxAdmin,admin
-config:update
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/fuse7x/src/main/resources/users.properties b/testsuite/integration-arquillian/servers/app-server/karaf/fuse7x/src/main/resources/users.properties
index 97e935c74e6..a71b022c9ef 100644
--- a/testsuite/integration-arquillian/servers/app-server/karaf/fuse7x/src/main/resources/users.properties
+++ b/testsuite/integration-arquillian/servers/app-server/karaf/fuse7x/src/main/resources/users.properties
@@ -1 +1 @@
-admin=admin,admin,manager,viewer,ssh,systembundles
+admin=password,admin,manager,viewer,ssh,systembundles
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/karaf3/pom.xml b/testsuite/integration-arquillian/servers/app-server/karaf/karaf3/pom.xml
deleted file mode 100644
index af5bd36dd81..00000000000
--- a/testsuite/integration-arquillian/servers/app-server/karaf/karaf3/pom.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
- org.keycloak.testsuite
- integration-arquillian-servers-app-server-karaf
- 6.0.0-SNAPSHOT
-
- 4.0.0
-
- integration-arquillian-servers-app-server-karaf3
- pom
- App Server - Karaf - Karaf 3
-
-
- karaf3
- org.apache.karaf
- apache-karaf-minimal
- ${karaf3.version}
- apache-karaf-minimal-${karaf3.version}
-
-
-
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/karaf3/src/main/resources/install-features.cli b/testsuite/integration-arquillian/servers/app-server/karaf/karaf3/src/main/resources/install-features.cli
deleted file mode 100644
index 1e011ea7d4f..00000000000
--- a/testsuite/integration-arquillian/servers/app-server/karaf/karaf3/src/main/resources/install-features.cli
+++ /dev/null
@@ -1,5 +0,0 @@
-feature:repo-add mvn:org.apache.camel.karaf/apache-camel/2.15.1/xml/features
-feature:repo-add mvn:org.apache.cxf.karaf/apache-cxf/3.0.4/xml/features
-feature:repo-add mvn:org.keycloak/keycloak-osgi-features/${project.version}/xml/features
-feature:repo-add mvn:org.keycloak.example.demo/keycloak-fuse-example-features/${project.version}/xml/features
-feature:install keycloak-fuse-example
\ No newline at end of file
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/karaf3/src/main/resources/update-config.cli b/testsuite/integration-arquillian/servers/app-server/karaf/karaf3/src/main/resources/update-config.cli
deleted file mode 100644
index 908bd0e7e46..00000000000
--- a/testsuite/integration-arquillian/servers/app-server/karaf/karaf3/src/main/resources/update-config.cli
+++ /dev/null
@@ -1,5 +0,0 @@
-config:edit org.ops4j.pax.url.mvn
-config:property-set org.ops4j.pax.url.mvn.localRepository ${maven.repo.local}
-config:property-set org.ops4j.pax.url.mvn.settings ${maven.local.settings}
-config:property-append org.ops4j.pax.url.mvn.repositories ${repositories}
-config:update
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/karaf3/src/main/resources/users.properties b/testsuite/integration-arquillian/servers/app-server/karaf/karaf3/src/main/resources/users.properties
deleted file mode 100644
index 61ad339274f..00000000000
--- a/testsuite/integration-arquillian/servers/app-server/karaf/karaf3/src/main/resources/users.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-karaf = karaf,_g_:admingroup
-_g_\:admingroup = group,admin,manager,viewer,webconsole
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/karaf3/src/saml-adapter-not-supported b/testsuite/integration-arquillian/servers/app-server/karaf/karaf3/src/saml-adapter-not-supported
deleted file mode 100644
index 8b137891791..00000000000
--- a/testsuite/integration-arquillian/servers/app-server/karaf/karaf3/src/saml-adapter-not-supported
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/testsuite/integration-arquillian/servers/app-server/karaf/pom.xml b/testsuite/integration-arquillian/servers/app-server/karaf/pom.xml
index 25be6650c6c..b3bd3e40d7c 100644
--- a/testsuite/integration-arquillian/servers/app-server/karaf/pom.xml
+++ b/testsuite/integration-arquillian/servers/app-server/karaf/pom.xml
@@ -33,9 +33,6 @@
${project.parent.basedir}/common
${project.parent.basedir}/assembly.xml
${containers.home}/${app.server.karaf.unpacked.folder.name}
- -u karaf
- false
- false
@@ -103,27 +100,6 @@
maven-resources-plugin
-
- copy-clis
- process-resources
-
- copy-resources
-
-
- ${app.server.karaf.home}/bin
-
-
- src/main/resources
-
- install-features.cli
- update-config.cli
- update-config-auth.cli
-
- true
-
-
-
-
copy-configs
process-resources
@@ -150,29 +126,6 @@
-
- org.codehaus.mojo
- exec-maven-plugin
-
-
- install-features
- process-test-resources
-
- exec
-
-
-
-
- ${common.resources}/install-features.${script.suffix}
- ${app.server.karaf.home}/bin
-
- ${app.server.java.home}
- ${app.server.karaf.client.auth}
- ${app.server.karaf.uninstall.pax}
- ${app.server.karaf.update.config}
-
-
-
maven-assembly-plugin
@@ -195,65 +148,6 @@
-
- enforce-props-when-update-config
-
-
- app.server.karaf.update.config
- true
-
-
-
-
-
- maven-enforcer-plugin
-
-
- enforce-props-when-update-config
-
- enforce
-
-
-
-
- When updating config maven.local.settings is expected to be explicitly set.
- maven.local.settings
-
-
- When updating config maven.repo.local is expected to be explicitly set.
- maven.repo.local
-
-
- When updating config repositories is expected to be set.
- repositories
-
-
-
-
-
-
-
-
-
-
-
- app-server-karaf3
-
- karaf3
-
-
-
- app-server-fuse61
-
- fuse61
-
-
-
- app-server-fuse62
-
- fuse62
-
-
app-server-fuse63
diff --git a/testsuite/integration-arquillian/tests/base/pom.xml b/testsuite/integration-arquillian/tests/base/pom.xml
index e73fcee2588..5ec84b21674 100644
--- a/testsuite/integration-arquillian/tests/base/pom.xml
+++ b/testsuite/integration-arquillian/tests/base/pom.xml
@@ -709,7 +709,7 @@
8181
admin
- admin
+ password
-agentlib:jdwp=transport=dt_socket,server=y,suspend=${app.server.debug.suspend},address=localhost:${app.server.debug.port}
@@ -733,6 +733,20 @@
+
+ maven-enforcer-plugin
+
+ enforce
+
+
+
+
+ When running fuse tests 'additional.fuse.repos' is expected to be set.
+ additional.fuse.repos
+
+
+
+
org.commonjava.maven.plugins
directory-maven-plugin
@@ -770,7 +784,7 @@
8181
admin
- admin
+ password
-agentlib:jdwp=transport=dt_socket,server=y,suspend=${app.server.debug.suspend},address=localhost:${app.server.debug.port}
@@ -794,6 +808,20 @@
+
+ maven-enforcer-plugin
+
+ enforce
+
+
+
+
+ When running fuse tests 'additional.fuse.repos' is expected to be set.
+ additional.fuse.repos
+
+
+
+
org.commonjava.maven.plugins
directory-maven-plugin
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/AppServerTestEnricher.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/AppServerTestEnricher.java
index 5ff5da82c4b..8571a47d75f 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/AppServerTestEnricher.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/AppServerTestEnricher.java
@@ -30,6 +30,8 @@ import org.jboss.logging.Logger;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainers;
import org.keycloak.testsuite.arquillian.containers.SelfManagedAppContainerLifecycle;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
+import org.keycloak.testsuite.utils.fuse.FuseUtils;
import org.wildfly.extras.creaper.core.ManagementClient;
import org.wildfly.extras.creaper.core.online.ManagementProtocol;
import org.wildfly.extras.creaper.core.online.OnlineManagementClient;
@@ -194,10 +196,17 @@ public class AppServerTestEnricher {
log.info("Starting app server: " + testContext.getAppServerInfo().getQualifier());
controller.start(testContext.getAppServerInfo().getQualifier());
}
+ if (isFuseAppServer()) {
+ FuseUtils.setUpFuse(ContainerConstants.APP_SERVER_PREFIX + CURRENT_APP_SERVER);
+ }
}
}
- public void stopAppServer(@Observes(precedence = 1) AfterClass event) {
+ /*
+ * For Fuse: precedence = 2 - app server has to be stopped
+ * before AuthServerTestEnricher.afterClass is executed
+ */
+ public void stopAppServer(@Observes(precedence = 2) AfterClass event) {
if (testContext.getAppServerInfo() == null) {
return; // no adapter test
}
@@ -286,8 +295,8 @@ public class AppServerTestEnricher {
return CURRENT_APP_SERVER.equals("wls");
}
- public static boolean isOSGiAppServer() {
- return CURRENT_APP_SERVER.contains("karaf") || CURRENT_APP_SERVER.contains("fuse");
+ public static boolean isFuseAppServer() {
+ return CURRENT_APP_SERVER.contains("fuse");
}
private boolean isJBossBased() {
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 95d2a11b294..fff390d6d24 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
@@ -468,7 +468,7 @@ public class AuthServerTestEnricher {
}
}
- public void afterClass(@Observes(precedence = 2) AfterClass event) {
+ public void afterClass(@Observes(precedence = 1) AfterClass event) {
//check if a test accidentally left the auth-server not running
ContainerController controller = containerConroller.get();
if (!controller.isStarted(suiteContext.getAuthServerInfo().getQualifier())) {
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/DeploymentTargetModifier.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/DeploymentTargetModifier.java
index ac0d5f0106e..39d5ab53c9e 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/DeploymentTargetModifier.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/DeploymentTargetModifier.java
@@ -28,7 +28,7 @@ import org.jboss.arquillian.container.test.impl.client.deployment.AnnotationDepl
import org.jboss.arquillian.test.spi.TestClass;
import org.jboss.logging.Logger;
import org.keycloak.common.util.StringPropertyReplacer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
import static org.keycloak.testsuite.arquillian.AppServerTestEnricher.getAppServerQualifiers;
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/ContainerAssume.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/ContainerAssume.java
index af4a38bf563..e9204cb6a9b 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/ContainerAssume.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/ContainerAssume.java
@@ -24,8 +24,6 @@ import org.keycloak.testsuite.arquillian.AuthServerTestEnricher;
public class ContainerAssume {
private static final Logger log = Logger.getLogger(ContainerAssume.class);
- private static final String fuse6 = "fuse63";
- private static final String fuse7 = "fuse7";
public static void assumeNotAuthServerUndertow() {
Assume.assumeFalse("Doesn't work on auth-server-undertow",
@@ -37,12 +35,4 @@ public class ContainerAssume {
String.format("Ignoring test since %s is set to false",
AuthServerTestEnricher.AUTH_SERVER_CLUSTER_PROPERTY), AuthServerTestEnricher.AUTH_SERVER_CLUSTER);
}
-
- public static void assumeNotAppServerFuse6() {
- Assume.assumeFalse("The test doesn't work on " + fuse6, fuse6.equals(System.getProperty("app.server")));
- }
-
- public static void assumeNotAppServerFuse7() {
- Assume.assumeFalse("The test doesn't work on " + fuse7, System.getProperty("app.server").contains(fuse7));
- }
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/DefaultAuthzConfigAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/DefaultAuthzConfigAdapterTest.java
index 0a11991b8a7..7002313f4f8 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/DefaultAuthzConfigAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/DefaultAuthzConfigAdapterTest.java
@@ -20,7 +20,6 @@ import org.jboss.arquillian.container.test.api.Deployer;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.jboss.shrinkwrap.api.spec.WebArchive;
-import org.junit.BeforeClass;
import org.junit.Test;
import org.keycloak.admin.client.resource.AuthorizationResource;
import org.keycloak.admin.client.resource.ClientResource;
@@ -28,10 +27,9 @@ import org.keycloak.admin.client.resource.ClientsResource;
import org.keycloak.representations.idm.ClientRepresentation;
import org.keycloak.representations.idm.RealmRepresentation;
import org.keycloak.representations.idm.authorization.PolicyRepresentation;
-import org.keycloak.testsuite.ProfileAssume;
import org.keycloak.testsuite.adapter.AbstractExampleAdapterTest;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
import java.io.File;
import java.io.FileNotFoundException;
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/PermissiveModeAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/PermissiveModeAdapterTest.java
index 311c28e80fb..db5785d87bd 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/PermissiveModeAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/PermissiveModeAdapterTest.java
@@ -24,7 +24,7 @@ import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Test;
import org.keycloak.testsuite.arquillian.AppServerTestEnricher;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
import static org.assertj.core.api.Java6Assertions.assertThat;
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/PhotozExampleLazyLoadPathsAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/PhotozExampleLazyLoadPathsAdapterTest.java
index f9c84269b2d..ee2b5e45ce4 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/PhotozExampleLazyLoadPathsAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/PhotozExampleLazyLoadPathsAdapterTest.java
@@ -22,9 +22,8 @@ import java.io.IOException;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.keycloak.testsuite.adapter.page.PhotozClientAuthzTestApp;
-import org.keycloak.testsuite.arquillian.AppServerTestEnricher;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
/**
* @author Pedro Igor
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/PhotozExampleNoLazyLoadPathsAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/PhotozExampleNoLazyLoadPathsAdapterTest.java
index 36443c0b6af..32d4b2552fd 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/PhotozExampleNoLazyLoadPathsAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/PhotozExampleNoLazyLoadPathsAdapterTest.java
@@ -21,9 +21,8 @@ import java.io.IOException;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.keycloak.testsuite.adapter.page.PhotozClientAuthzTestApp;
-import org.keycloak.testsuite.arquillian.AppServerTestEnricher;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
/**
* @author Pedro Igor
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzCIPAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzCIPAdapterTest.java
index c1c5f7d5471..c026399e9ff 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzCIPAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzCIPAdapterTest.java
@@ -23,7 +23,7 @@ import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Test;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
/**
* @author Pedro Igor
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzCacheDisabledAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzCacheDisabledAdapterTest.java
index 947d02273ce..defc42d78a9 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzCacheDisabledAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzCacheDisabledAdapterTest.java
@@ -25,7 +25,7 @@ import org.keycloak.representations.idm.authorization.ResourceRepresentation;
import java.io.File;
import java.io.IOException;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
/**
* @author Pedro Igor
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzCacheLifespanAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzCacheLifespanAdapterTest.java
index 80344b4ad54..a6ad1c3b1b5 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzCacheLifespanAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzCacheLifespanAdapterTest.java
@@ -24,7 +24,7 @@ import org.junit.Test;
import org.keycloak.representations.idm.authorization.ResourcePermissionRepresentation;
import org.keycloak.representations.idm.authorization.ResourceRepresentation;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
/**
* @author Pedro Igor
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzLazyLoadPathsAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzLazyLoadPathsAdapterTest.java
index 351db5f4449..705f1bf454f 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzLazyLoadPathsAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzLazyLoadPathsAdapterTest.java
@@ -23,7 +23,7 @@ import org.junit.Test;
import java.io.File;
import java.io.IOException;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
/**
* @author Pedro Igor
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzNoLazyLoadPathsAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzNoLazyLoadPathsAdapterTest.java
index ee8db4051e2..305f1a10420 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzNoLazyLoadPathsAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzNoLazyLoadPathsAdapterTest.java
@@ -21,7 +21,7 @@ import java.io.IOException;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
/**
* @author Pedro Igor
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletPolicyEnforcerTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletPolicyEnforcerTest.java
index e1542ceca3d..917be6aca69 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletPolicyEnforcerTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletPolicyEnforcerTest.java
@@ -32,7 +32,6 @@ import org.jboss.arquillian.container.test.api.Deployer;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.jboss.shrinkwrap.api.spec.WebArchive;
-import org.junit.BeforeClass;
import org.junit.Test;
import org.keycloak.admin.client.resource.AuthorizationResource;
import org.keycloak.admin.client.resource.ClientResource;
@@ -42,10 +41,9 @@ import org.keycloak.representations.idm.ClientRepresentation;
import org.keycloak.representations.idm.RealmRepresentation;
import org.keycloak.representations.idm.authorization.ResourcePermissionRepresentation;
import org.keycloak.representations.idm.authorization.ResourceRepresentation;
-import org.keycloak.testsuite.ProfileAssume;
import org.keycloak.testsuite.adapter.AbstractExampleAdapterTest;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
import org.keycloak.testsuite.util.UIUtils;
import org.openqa.selenium.By;
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/cors/CorsExampleAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/cors/CorsExampleAdapterTest.java
index e107f79a715..ab690a9ed4c 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/cors/CorsExampleAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/cors/CorsExampleAdapterTest.java
@@ -33,7 +33,7 @@ import org.keycloak.testsuite.adapter.AbstractExampleAdapterTest;
import org.keycloak.testsuite.adapter.page.AngularCorsProductTestApp;
import org.keycloak.testsuite.adapter.page.CorsDatabaseServiceTestApp;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
import org.keycloak.testsuite.auth.page.account.Account;
import org.keycloak.testsuite.auth.page.login.OIDCLogin;
import org.keycloak.testsuite.util.JavascriptBrowser;
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/fuse/EAP6Fuse6HawtioAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/fuse/EAP6Fuse6HawtioAdapterTest.java
index 90d74b7e72e..511c86e3e34 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/fuse/EAP6Fuse6HawtioAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/fuse/EAP6Fuse6HawtioAdapterTest.java
@@ -39,7 +39,7 @@ import org.keycloak.testsuite.adapter.AbstractExampleAdapterTest;
import org.keycloak.testsuite.adapter.page.HawtioPage;
import org.keycloak.testsuite.arquillian.AppServerTestEnricher;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
import org.keycloak.testsuite.arquillian.containers.SelfManagedAppContainerLifecycle;
import org.keycloak.testsuite.auth.page.login.OIDCLogin;
import org.keycloak.testsuite.util.DroneUtils;
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/fuse/FuseAdminAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/fuse/FuseAdapterTest.java
similarity index 52%
rename from testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/fuse/FuseAdminAdapterTest.java
rename to testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/fuse/FuseAdapterTest.java
index 98717cb931e..1d41ea6587a 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/fuse/FuseAdminAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/fuse/FuseAdapterTest.java
@@ -16,29 +16,25 @@
*/
package org.keycloak.testsuite.adapter.example.fuse;
-import static org.hamcrest.Matchers.anyOf;
-import static org.hamcrest.Matchers.allOf;
-import static org.hamcrest.Matchers.containsString;
-import static org.hamcrest.Matchers.not;
+import static org.hamcrest.Matchers.*;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.keycloak.testsuite.auth.page.AuthRealm.DEMO;
+import static org.keycloak.testsuite.utils.fuse.FuseUtils.assertCommand;
+import static org.keycloak.testsuite.utils.fuse.FuseUtils.getCommandOutput;
import static org.keycloak.testsuite.utils.io.IOUtil.loadRealm;
import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlDoesntStartWith;
import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlStartsWith;
+import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlStartsWithLoginUrlOf;
-import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.Collections;
-import java.util.EnumSet;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
-
import javax.management.InstanceNotFoundException;
import javax.management.MBeanException;
import javax.management.MBeanServerConnection;
@@ -47,14 +43,6 @@ import javax.management.ReflectionException;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;
-
-import org.apache.sshd.client.SshClient;
-import org.apache.sshd.client.future.ConnectFuture;
-import org.apache.sshd.client.channel.ChannelExec;
-import org.apache.sshd.client.channel.ClientChannelEvent;
-import org.apache.sshd.client.session.ClientSession;
-import org.apache.sshd.client.session.ClientSession.ClientSessionEvent;
-import org.hamcrest.Matchers;
import org.jboss.arquillian.drone.api.annotation.Drone;
import org.jboss.arquillian.graphene.page.Page;
import org.junit.Assert;
@@ -64,19 +52,24 @@ import org.keycloak.representations.idm.RealmRepresentation;
import org.keycloak.testsuite.adapter.AbstractExampleAdapterTest;
import org.keycloak.testsuite.adapter.page.Hawtio2Page;
import org.keycloak.testsuite.adapter.page.HawtioPage;
+import org.keycloak.testsuite.adapter.page.fuse.AdminInterface;
+import org.keycloak.testsuite.adapter.page.fuse.CustomerListing;
+import org.keycloak.testsuite.adapter.page.fuse.CustomerPortalFuseExample;
+import org.keycloak.testsuite.adapter.page.fuse.ProductPortalFuseExample;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.auth.page.account.Account;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
import org.keycloak.testsuite.auth.page.login.OIDCLogin;
-import org.keycloak.testsuite.util.ContainerAssume;
import org.keycloak.testsuite.util.DroneUtils;
import org.keycloak.testsuite.util.JavascriptBrowser;
import org.keycloak.testsuite.util.WaitUtils;
+import org.keycloak.testsuite.utils.fuse.FuseUtils.Result;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
@AppServerContainer(ContainerConstants.APP_SERVER_FUSE63)
@AppServerContainer(ContainerConstants.APP_SERVER_FUSE7X)
-public class FuseAdminAdapterTest extends AbstractExampleAdapterTest {
+public class FuseAdapterTest extends AbstractExampleAdapterTest {
@Drone
@JavascriptBrowser
@@ -85,19 +78,28 @@ public class FuseAdminAdapterTest extends AbstractExampleAdapterTest {
@Page
@JavascriptBrowser
private HawtioPage hawtioPage;
-
@Page
@JavascriptBrowser
private Hawtio2Page hawtio2Page;
-
@Page
@JavascriptBrowser
private OIDCLogin testRealmLoginPageFuse;
-
- private SshClient client;
-
- protected enum Result { OK, NOT_FOUND, NO_CREDENTIALS, NO_ROLES };
-
+ @Page
+ @JavascriptBrowser
+ protected CustomerPortalFuseExample customerPortal;
+ @Page
+ @JavascriptBrowser
+ protected CustomerListing customerListing;
+ @Page
+ @JavascriptBrowser
+ protected AdminInterface adminInterface;
+ @Page
+ @JavascriptBrowser
+ protected ProductPortalFuseExample productPortal;
+ @Page
+ @JavascriptBrowser
+ protected Account testRealmAccount;
+
@Override
public void addAdapterTestRealms(List testRealms) {
RealmRepresentation fuseRealm = loadRealm(new File(TEST_APPS_HOME_DIR + "/fuse/demorealm.json"));
@@ -108,6 +110,9 @@ public class FuseAdminAdapterTest extends AbstractExampleAdapterTest {
public void setDefaultPageUriParameters() {
super.setDefaultPageUriParameters();
testRealmLoginPageFuse.setAuthRealm(DEMO);
+ testRealmPage.setAuthRealm(DEMO);
+ testRealmLoginPage.setAuthRealm(DEMO);
+ testRealmAccount.setAuthRealm(DEMO);
}
@Before
@@ -115,12 +120,17 @@ public class FuseAdminAdapterTest extends AbstractExampleAdapterTest {
DroneUtils.addWebDriver(jsDriver);
}
- @Test
- public void hawtio1LoginTest() throws Exception {
- // Note that this does work only in Fuse 6 with Hawtio 1, Fuse 7 contains Hawtio 2
- ContainerAssume.assumeNotAppServerFuse7();
+ @Override
+ public boolean isImportAfterEachMethod() {
+ return false;
+ }
+ @Test
+ @AppServerContainer(value = ContainerConstants.APP_SERVER_FUSE7X, skip = true)
+ public void hawtio1LoginTest() throws Exception {
hawtioPage.navigateTo();
+ WaitUtils.waitForPageToLoad();
+ assertCurrentUrlDoesntStartWith(hawtioPage);
testRealmLoginPageFuse.form().login("user", "invalid-password");
assertCurrentUrlDoesntStartWith(hawtioPage);
@@ -145,13 +155,12 @@ public class FuseAdminAdapterTest extends AbstractExampleAdapterTest {
}
@Test
+ @AppServerContainer(value = ContainerConstants.APP_SERVER_FUSE63, skip = true)
public void hawtio2LoginTest() throws Exception {
- // Note that this does work only in Fuse 7 with Hawtio 2, Fuse 6 contains Hawtio 1
- ContainerAssume.assumeNotAppServerFuse6();
-
hawtio2Page.navigateTo();
WaitUtils.waitForPageToLoad();
+ assertCurrentUrlDoesntStartWith(hawtio2Page);
testRealmLoginPageFuse.form().login("user", "invalid-password");
assertCurrentUrlDoesntStartWith(hawtio2Page);
@@ -182,10 +191,8 @@ public class FuseAdminAdapterTest extends AbstractExampleAdapterTest {
}
@Test
+ @AppServerContainer(value = ContainerConstants.APP_SERVER_FUSE7X, skip = true)
public void sshLoginTestFuse6() throws Exception {
- // Note that this does not work for Fuse 7 since the error codes have changed
- ContainerAssume.assumeNotAppServerFuse7();
-
assertCommand("mary", "password", "shell:date", Result.NO_CREDENTIALS);
assertCommand("john", "password", "shell:info", Result.NO_CREDENTIALS);
assertCommand("john", "password", "shell:date", Result.OK);
@@ -193,10 +200,8 @@ public class FuseAdminAdapterTest extends AbstractExampleAdapterTest {
}
@Test
+ @AppServerContainer(value = ContainerConstants.APP_SERVER_FUSE63, skip = true)
public void sshLoginTestFuse7() throws Exception {
- // Note that this works for Fuse 7 and newer
- ContainerAssume.assumeNotAppServerFuse6();
-
assertCommand("mary", "password", "shell:date", Result.NOT_FOUND);
assertCommand("john", "password", "shell:info", Result.NOT_FOUND);
assertCommand("john", "password", "shell:date", Result.OK);
@@ -218,104 +223,39 @@ public class FuseAdminAdapterTest extends AbstractExampleAdapterTest {
private void assertRoles(String username, String... expectedRoles) throws Exception {
final String commandOutput = getCommandOutput(username, "password", "jaas:whoami -r --no-format");
final List parsedOutput = Arrays.asList(commandOutput.split("\\n+"));
- assertThat(parsedOutput, Matchers.containsInAnyOrder(expectedRoles));
+ assertThat(parsedOutput, containsInAnyOrder(expectedRoles));
}
@Test
public void jmxLoginTest() throws Exception {
- setJMXAuthentication("keycloak", "password");
ObjectName mbean = new ObjectName("org.apache.karaf:type=config,name=root");
- //invalid credentials
- try {
- getJMXConnector("mary", "password1").getMBeanServerConnection();
+ log.debug("jmxLoginTest - testing: invalid credentials");
+ try (JMXConnector jmxConnector = getJMXConnector(10, TimeUnit.SECONDS, "mary", "password1")) {
+ jmxConnector.getMBeanServerConnection();
Assert.fail();
- } catch (SecurityException se) {}
- //no role
- MBeanServerConnection connection = getJMXConnector("mary", "password").getMBeanServerConnection();
- assertJmxInvoke(false, connection, mbean, "listProperties", new Object [] {""}, new String [] {String.class.getName()});
- assertJmxInvoke(false, connection, mbean, "setProperty", new Object [] {"", "x", "y"}, new String [] {String.class.getName(), String.class.getName(), String.class.getName()});
- //read only role
- connection = getJMXConnector("john", "password").getMBeanServerConnection();
- assertJmxInvoke(true, connection, mbean, "listProperties", new Object [] {""}, new String [] {String.class.getName()});
- assertJmxInvoke(false, connection, mbean, "setProperty", new Object [] {"", "x", "y"}, new String [] {String.class.getName(), String.class.getName(), String.class.getName()});
- //read write role
- connection = getJMXConnector("root", "password").getMBeanServerConnection();
- assertJmxInvoke(true, connection, mbean, "listProperties", new Object [] {""}, new String [] {String.class.getName()});
- assertJmxInvoke(true, connection, mbean, "setProperty", new Object [] {"", "x", "y"}, new String [] {String.class.getName(), String.class.getName(), String.class.getName()});
- setJMXAuthentication("karaf", "admin");
- }
-
- protected String assertCommand(String user, String password, String command, Result result) throws Exception, IOException {
- if (!command.endsWith("\n"))
- command += "\n";
-
- String output = getCommandOutput(user, password, command);
-
- switch(result) {
- case OK:
- Assert.assertThat(output,
- not(anyOf(containsString("Insufficient credentials"), Matchers.containsString("Command not found"))));
- break;
- case NOT_FOUND:
- Assert.assertThat(output,
- containsString("Command not found"));
- break;
- case NO_CREDENTIALS:
- Assert.assertThat(output,
- containsString("Insufficient credentials"));
- break;
- case NO_ROLES:
- Assert.assertThat(output,
- containsString("Current user has no associated roles"));
- break;
- default:
- Assert.fail("Unexpected enum value: " + result);
+ } catch (TimeoutException expected) {
+ assertThat(expected.getCause().toString(), containsString("java.lang.SecurityException: Authentication failed"));
}
-
- return output;
- }
-
- protected String getCommandOutput(String user, String password, String command) throws Exception, IOException {
- if (!command.endsWith("\n"))
- command += "\n";
-
- try (ClientSession session = openSshChannel(user, password);
- ChannelExec channel = session.createExecChannel(command);
- ByteArrayOutputStream out = new ByteArrayOutputStream()) {
- channel.setOut(out);
- channel.setErr(out);
- channel.open();
- channel.waitFor(EnumSet.of(ClientChannelEvent.CLOSED, ClientChannelEvent.EOF), 0);
-
- return new String(out.toByteArray());
+ log.debug("jmxLoginTest - testing: no role");
+ try (JMXConnector jmxConnector = getJMXConnector("mary", "password")) {
+ MBeanServerConnection connection = jmxConnector.getMBeanServerConnection();
+ assertJmxInvoke(false, connection, mbean, "listProperties", new Object [] {""}, new String [] {String.class.getName()});
+ assertJmxInvoke(false, connection, mbean, "setProperty", new Object [] {"", "x", "y"}, new String [] {String.class.getName(), String.class.getName(), String.class.getName()});
+ }
+ log.debug("jmxLoginTest - testing: read only role");
+ try (JMXConnector jmxConnector = getJMXConnector("john", "password")) {
+ MBeanServerConnection connection = jmxConnector.getMBeanServerConnection();
+ assertJmxInvoke(true, connection, mbean, "listProperties", new Object [] {""}, new String [] {String.class.getName()});
+ assertJmxInvoke(false, connection, mbean, "setProperty", new Object [] {"", "x", "y"}, new String [] {String.class.getName(), String.class.getName(), String.class.getName()});
+ }
+ log.debug("jmxLoginTest - testing: read write role");
+ try (JMXConnector jmxConnector = getJMXConnector("root", "password")) {
+ MBeanServerConnection connection = jmxConnector.getMBeanServerConnection();
+ assertJmxInvoke(true, connection, mbean, "listProperties", new Object [] {""}, new String [] {String.class.getName()});
+ assertJmxInvoke(true, connection, mbean, "setProperty", new Object [] {"", "x", "y"}, new String [] {String.class.getName(), String.class.getName(), String.class.getName()});
}
}
- protected ClientSession openSshChannel(String username, String password) throws Exception {
- client = SshClient.setUpDefaultClient();
- client.start();
- ConnectFuture future = client.connect(username, "localhost", 8101);
- future.await();
- ClientSession session = future.getSession();
-
- Set ret = EnumSet.of(ClientSessionEvent.WAIT_AUTH);
- while (ret.contains(ClientSessionEvent.WAIT_AUTH)) {
- session.addPasswordIdentity(password);
- session.auth().verify();
- ret = session.waitFor(EnumSet.of(ClientSessionEvent.WAIT_AUTH, ClientSessionEvent.CLOSED, ClientSessionEvent.AUTHED), 0);
- }
- if (ret.contains(ClientSessionEvent.CLOSED)) {
- throw new Exception("Could not open SSH channel");
- }
-
- return session;
- }
-
- protected void setJMXAuthentication(String realm, String password) throws Exception {
- assertCommand("admin", "password", "config:edit org.apache.karaf.management; config:propset jmxRealm " + realm + "; config:update", Result.OK);
- getMBeanServerConnection(10000, TimeUnit.MILLISECONDS, "admin", password);
- }
-
private Object assertJmxInvoke(boolean expectSuccess, MBeanServerConnection connection, ObjectName mbean, String method,
Object[] params, String[] signature) throws InstanceNotFoundException, MBeanException, ReflectionException, IOException {
try {
@@ -327,34 +267,113 @@ public class FuseAdminAdapterTest extends AbstractExampleAdapterTest {
return null;
}
}
-
- private MBeanServerConnection getMBeanServerConnection(long timeout, final TimeUnit unit, String username, String password) throws Exception {
+
+ private JMXConnector getJMXConnector(String username, String password) throws Exception {
+ return getJMXConnector(2, TimeUnit.MINUTES, username, password);
+ }
+
+ private JMXConnector getJMXConnector(long timeout, TimeUnit unit, String username, String password) throws Exception {
Exception lastException = null;
long timeoutMillis = System.currentTimeMillis() + unit.toMillis(timeout);
while (System.currentTimeMillis() < timeoutMillis) {
try {
- return getJMXConnector(username, password).getMBeanServerConnection();
+ Map env = Collections.singletonMap(JMXConnector.CREDENTIALS, new String[] { username, password });
+ return JMXConnectorFactory.connect(new JMXServiceURL(getJmxServiceUrl()), env);
} catch (Exception ex) {
lastException = ex;
Thread.sleep(500);
- ex.printStackTrace();
+ log.debug("Loop: Getting MBean Server Connection: last caught exception: " + lastException.getClass().getName());
}
}
+ log.error("Failed to get MBean Server Connection within " + timeout + " " + unit.toString());
TimeoutException timeoutException = new TimeoutException();
timeoutException.initCause(lastException);
throw timeoutException;
}
-
- private JMXConnector getJMXConnector(String userName, String password) throws Exception {
- JMXServiceURL url = new JMXServiceURL(getJmxServiceUrl());
- String[] credentials = new String[] { userName, password };
- Map env = Collections.singletonMap(JMXConnector.CREDENTIALS, credentials);
- JMXConnector connector = JMXConnectorFactory.connect(url, env);
- return connector;
- }
private String getJmxServiceUrl() throws Exception {
return "service:jmx:rmi://localhost:44444/jndi/rmi://localhost:1099/karaf-root";
}
+ @Test
+ public void testCustomerListingAndAccountManagement() {
+ customerPortal.navigateTo();
+ assertCurrentUrlStartsWith(customerPortal);
+
+ customerPortal.clickCustomerListingLink();
+ assertCurrentUrlStartsWithLoginUrlOf(testRealmPage);
+
+ testRealmLoginPageFuse.form().login("bburke@redhat.com", "password");
+ assertCurrentUrlStartsWith(customerListing);
+
+ assertThat(DroneUtils.getCurrentDriver().getPageSource(), allOf(
+ containsString("Username: bburke@redhat.com"),
+ containsString("Bill Burke"),
+ containsString("Stian Thorgersen")
+ ));
+
+ // account mgmt
+ customerListing.clickAccountManagement();
+
+ assertCurrentUrlStartsWith(testRealmAccount);
+ assertThat(testRealmAccount.getUsername(), equalTo("bburke@redhat.com"));
+
+ DroneUtils.getCurrentDriver().navigate().back();
+ customerListing.clickLogOut();
+
+ // assert user not logged in
+ customerPortal.clickCustomerListingLink();
+ assertCurrentUrlStartsWithLoginUrlOf(testRealmPage);
+
+ }
+
+ @Test
+ public void testAdminInterface() {
+ customerPortal.navigateTo();
+ assertCurrentUrlStartsWith(customerPortal);
+
+ customerPortal.clickAdminInterfaceLink();
+ WaitUtils.waitForPageToLoad();
+ assertCurrentUrlStartsWithLoginUrlOf(testRealmPage);
+
+ testRealmLoginPageFuse.form().login("admin", "password");
+ assertCurrentUrlStartsWith(adminInterface);
+ assertThat(DroneUtils.getCurrentDriver().getPageSource(), containsString("Hello admin!"));
+ assertThat(DroneUtils.getCurrentDriver().getPageSource(), containsString("This second sentence is returned from a Camel RestDSL endpoint"));
+
+ customerListing.navigateTo();
+ WaitUtils.waitForPageToLoad();
+ customerListing.clickLogOut();
+ WaitUtils.waitForPageToLoad();
+
+ WaitUtils.pause(2500);
+ customerPortal.navigateTo();//needed for phantomjs
+ WaitUtils.waitForPageToLoad();
+ customerPortal.clickAdminInterfaceLink();
+ WaitUtils.waitForPageToLoad();
+ assertCurrentUrlStartsWithLoginUrlOf(testRealmPage);
+
+ testRealmLoginPageFuse.form().login("bburke@redhat.com", "password");
+ assertCurrentUrlStartsWith(adminInterface);
+ assertThat(DroneUtils.getCurrentDriver().getPageSource(), containsString("Status code is 403"));
+ }
+
+ @Test
+ public void testProductPortal() {
+ productPortal.navigateTo();
+ WaitUtils.waitForPageToLoad();
+
+ assertCurrentUrlStartsWithLoginUrlOf(testRealmPage);
+
+ testRealmLoginPageFuse.form().login("bburke@redhat.com", "password");
+ assertCurrentUrlStartsWith(productPortal);
+
+ assertThat(productPortal.getProduct1UnsecuredText(), containsString("401: Unauthorized"));
+ assertThat(productPortal.getProduct1SecuredText(), containsString("Product received: id=1"));
+ assertThat(productPortal.getProduct2SecuredText(), containsString("Product received: id=2"));
+
+ productPortal.clickLogOutLink();
+ WaitUtils.waitForPageToLoad();
+ assertCurrentUrlStartsWithLoginUrlOf(testRealmPage);
+ }
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/fuse/FuseExampleAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/fuse/FuseExampleAdapterTest.java
deleted file mode 100644
index 95b19c52ceb..00000000000
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/fuse/FuseExampleAdapterTest.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright 2016 Red Hat, Inc. and/or its affiliates
- * and other contributors as indicated by the @author tags.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.keycloak.testsuite.adapter.example.fuse;
-
-import static org.hamcrest.Matchers.containsString;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertThat;
-import static org.keycloak.testsuite.auth.page.AuthRealm.DEMO;
-import static org.keycloak.testsuite.utils.io.IOUtil.loadRealm;
-import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlStartsWith;
-import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlStartsWithLoginUrlOf;
-
-import java.io.File;
-import java.util.List;
-import org.jboss.arquillian.graphene.page.Page;
-import org.junit.Test;
-import org.keycloak.representations.idm.RealmRepresentation;
-import org.keycloak.testsuite.adapter.AbstractExampleAdapterTest;
-import org.keycloak.testsuite.adapter.page.fuse.AdminInterface;
-import org.keycloak.testsuite.adapter.page.fuse.CustomerListing;
-import org.keycloak.testsuite.adapter.page.fuse.CustomerPortalFuseExample;
-import org.keycloak.testsuite.adapter.page.fuse.ProductPortalFuseExample;
-import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
-import org.keycloak.testsuite.auth.page.account.Account;
-import org.keycloak.testsuite.util.WaitUtils;
-import org.hamcrest.Matchers;
-
-/**
- *
- * @author tkyjovsk
- */
-@AppServerContainer(ContainerConstants.APP_SERVER_FUSE63)
-@AppServerContainer(ContainerConstants.APP_SERVER_FUSE7X)
-public class FuseExampleAdapterTest extends AbstractExampleAdapterTest {
-
- @Page
- protected CustomerPortalFuseExample customerPortal;
- @Page
- protected CustomerListing customerListing;
- @Page
- protected AdminInterface adminInterface;
-
- @Page
- protected ProductPortalFuseExample productPortal;
-
- @Page
- protected Account testRealmAccount;
-
- @Override
- public void addAdapterTestRealms(List testRealms) {
- RealmRepresentation fuseRealm = loadRealm(new File(TEST_APPS_HOME_DIR + "/fuse/demorealm.json"));
- testRealms.add(fuseRealm);
- }
-
- @Override
- public void setDefaultPageUriParameters() {
- super.setDefaultPageUriParameters();
- testRealmPage.setAuthRealm(DEMO);
- testRealmLoginPage.setAuthRealm(DEMO);
- testRealmAccount.setAuthRealm(DEMO);
- }
-
- // no Arquillian deployments - examples already installed by maven
-
- @Test
- public void testCustomerListingAndAccountManagement() {
- customerPortal.navigateTo();
- assertCurrentUrlStartsWith(customerPortal);
-
- customerPortal.clickCustomerListingLink();
- assertCurrentUrlStartsWithLoginUrlOf(testRealmPage);
-
- testRealmLoginPage.form().login("bburke@redhat.com", "password");
- assertCurrentUrlStartsWith(customerListing);
-
- String src = driver.getPageSource();
- assertThat(src, Matchers.allOf(
- containsString("Username: bburke@redhat.com"),
- containsString("Bill Burke"),
- containsString("Stian Thorgersen")
- ));
-
- // account mgmt
- customerListing.clickAccountManagement();
-
- assertCurrentUrlStartsWith(testRealmAccount);
- assertEquals(testRealmAccount.getUsername(), "bburke@redhat.com");
-
- driver.navigate().back();
- customerListing.clickLogOut();
-
- // assert user not logged in
- customerPortal.clickCustomerListingLink();
- assertCurrentUrlStartsWithLoginUrlOf(testRealmPage);
-
- }
-
- @Test
- public void testAdminInterface() {
- customerPortal.navigateTo();
- assertCurrentUrlStartsWith(customerPortal);
-
- customerPortal.clickAdminInterfaceLink();
- WaitUtils.waitForPageToLoad();
- assertCurrentUrlStartsWithLoginUrlOf(testRealmPage);
-
- testRealmLoginPage.form().login("admin", "password");
- assertCurrentUrlStartsWith(adminInterface);
- assertThat(driver.getPageSource(), containsString("Hello admin!"));
- assertThat(driver.getPageSource(), containsString("This second sentence is returned from a Camel RestDSL endpoint"));
-
- customerListing.navigateTo();
- WaitUtils.waitForPageToLoad();
- customerListing.clickLogOut();
- WaitUtils.waitForPageToLoad();
-
- WaitUtils.pause(2500);
- customerPortal.navigateTo();//needed for phantomjs
- WaitUtils.waitForPageToLoad();
- customerPortal.clickAdminInterfaceLink();
- WaitUtils.waitForPageToLoad();
- assertCurrentUrlStartsWithLoginUrlOf(testRealmPage);
-
- testRealmLoginPage.form().login("bburke@redhat.com", "password");
- assertCurrentUrlStartsWith(adminInterface);
- assertThat(driver.getPageSource(), containsString("Status code is 403"));
- }
-
- @Test
- public void testProductPortal() {
- productPortal.navigateTo();
- WaitUtils.waitForPageToLoad();
-
- assertCurrentUrlStartsWithLoginUrlOf(testRealmPage);
-
- testRealmLoginPage.form().login("bburke@redhat.com", "password");
- assertCurrentUrlStartsWith(productPortal);
-
- assertThat(productPortal.getProduct1UnsecuredText(), containsString("401: Unauthorized"));
- assertThat(productPortal.getProduct1SecuredText(), containsString("Product received: id=1"));
- assertThat(productPortal.getProduct2SecuredText(), containsString("Product received: id=2"));
-
- productPortal.clickLogOutLink();
- WaitUtils.waitForPageToLoad();
- assertCurrentUrlStartsWithLoginUrlOf(testRealmPage);
- }
-
-}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/hal/ConsoleProtectionTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/hal/ConsoleProtectionTest.java
index f58eb4cc07b..bb5efd76711 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/hal/ConsoleProtectionTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/hal/ConsoleProtectionTest.java
@@ -32,7 +32,7 @@ import org.keycloak.representations.idm.RealmRepresentation;
import org.keycloak.testsuite.adapter.AbstractAdapterTest;
import org.keycloak.testsuite.arquillian.AppServerTestEnricher;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
import org.keycloak.testsuite.pages.AccountUpdateProfilePage;
import org.keycloak.testsuite.pages.AppServerWelcomePage;
import org.keycloak.testsuite.util.DroneUtils;
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/BrokerLinkAndTokenExchangeTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/BrokerLinkAndTokenExchangeTest.java
index f6ead24b768..3853d348636 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/BrokerLinkAndTokenExchangeTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/BrokerLinkAndTokenExchangeTest.java
@@ -59,7 +59,7 @@ import org.keycloak.testsuite.ProfileAssume;
import org.keycloak.testsuite.adapter.AbstractAdapterTest;
import org.keycloak.testsuite.adapter.AbstractServletsAdapterTest;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
import org.keycloak.testsuite.broker.BrokerTestTools;
import org.keycloak.testsuite.page.AbstractPageWithInjectedUrl;
import org.keycloak.testsuite.pages.AccountUpdateProfilePage;
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/ClientInitiatedAccountLinkTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/ClientInitiatedAccountLinkTest.java
index b5ef81d6422..c154eef39b5 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/ClientInitiatedAccountLinkTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/ClientInitiatedAccountLinkTest.java
@@ -43,7 +43,7 @@ import org.keycloak.testsuite.adapter.AbstractServletsAdapterTest;
import org.keycloak.testsuite.admin.ApiUtil;
import org.keycloak.testsuite.arquillian.AuthServerTestEnricher;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
import org.keycloak.testsuite.broker.BrokerTestTools;
import org.keycloak.testsuite.page.AbstractPageWithInjectedUrl;
import org.keycloak.testsuite.pages.AccountUpdateProfilePage;
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/DemoFilterServletAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/DemoFilterServletAdapterTest.java
index cc8cc24e87b..30ea5fecb4f 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/DemoFilterServletAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/DemoFilterServletAdapterTest.java
@@ -20,7 +20,7 @@ import org.junit.Ignore;
import org.junit.Test;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
import org.keycloak.testsuite.utils.annotation.UseServletFilter;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
@AppServerContainer(ContainerConstants.APP_SERVER_UNDERTOW)
@AppServerContainer(ContainerConstants.APP_SERVER_WILDFLY)
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/DemoServletsAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/DemoServletsAdapterTest.java
index 60923e12efc..17291a562e7 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/DemoServletsAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/DemoServletsAdapterTest.java
@@ -66,7 +66,7 @@ import org.keycloak.testsuite.adapter.page.SecurePortalWithCustomSessionConfig;
import org.keycloak.testsuite.adapter.page.TokenMinTTLPage;
import org.keycloak.testsuite.admin.ApiUtil;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
import org.keycloak.testsuite.auth.page.account.Applications;
import org.keycloak.testsuite.auth.page.login.OAuthGrant;
import org.keycloak.testsuite.auth.page.login.OIDCLogin;
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/MultiTenancyTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/MultiTenancyTest.java
index d84ed384e66..e504e9b739b 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/MultiTenancyTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/MultiTenancyTest.java
@@ -30,7 +30,7 @@ import org.keycloak.representations.idm.RealmRepresentation;
import org.keycloak.testsuite.adapter.AbstractServletsAdapterTest;
import org.keycloak.testsuite.adapter.page.MultiTenant;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
import org.keycloak.testsuite.util.URLAssert;
import org.keycloak.testsuite.util.WaitUtils;
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/OIDCPublicKeyRotationAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/OIDCPublicKeyRotationAdapterTest.java
index b865ab745cc..38c1ac79fe3 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/OIDCPublicKeyRotationAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/OIDCPublicKeyRotationAdapterTest.java
@@ -59,7 +59,7 @@ import org.keycloak.testsuite.adapter.page.SecurePortal;
import org.keycloak.testsuite.adapter.page.TokenMinTTLPage;
import org.keycloak.testsuite.admin.ApiUtil;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
import org.keycloak.testsuite.util.URLAssert;
import org.openqa.selenium.By;
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/OfflineServletsAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/OfflineServletsAdapterTest.java
index 58fca76f168..4b71b55ea48 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/OfflineServletsAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/OfflineServletsAdapterTest.java
@@ -17,7 +17,7 @@ import org.keycloak.testsuite.adapter.AbstractServletsAdapterTest;
import org.keycloak.testsuite.adapter.filter.AdapterActionsFilter;
import org.keycloak.testsuite.adapter.page.OfflineToken;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
import org.keycloak.testsuite.pages.AccountApplicationsPage;
import org.keycloak.testsuite.pages.LoginPage;
import org.keycloak.testsuite.pages.OAuthGrantPage;
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SAMLFilterServletAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SAMLFilterServletAdapterTest.java
index 2e67ee6bf98..121ae33837c 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SAMLFilterServletAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SAMLFilterServletAdapterTest.java
@@ -8,7 +8,7 @@ import org.junit.Ignore;
import org.junit.Test;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
import org.keycloak.testsuite.utils.annotation.UseServletFilter;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
/**
* @author mhajas
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SAMLServletAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SAMLServletAdapterTest.java
index 461ede31ea5..94b6d56b8be 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SAMLServletAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SAMLServletAdapterTest.java
@@ -137,7 +137,7 @@ import org.keycloak.testsuite.adapter.AbstractServletsAdapterTest;
import org.keycloak.testsuite.adapter.page.*;
import org.keycloak.testsuite.admin.ApiUtil;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
import org.keycloak.testsuite.auth.page.login.Login;
import org.keycloak.testsuite.auth.page.login.SAMLIDPInitiatedLogin;
import org.keycloak.testsuite.auth.page.login.SAMLPostLoginTenant1;
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SecuredDeploymentsAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SecuredDeploymentsAdapterTest.java
index a733c355ec8..e886125dd99 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SecuredDeploymentsAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SecuredDeploymentsAdapterTest.java
@@ -42,7 +42,7 @@ import org.keycloak.testsuite.adapter.page.CustomerPortalSubsystem;
import org.keycloak.testsuite.adapter.page.ProductPortalSubsystem;
import org.keycloak.testsuite.arquillian.AppServerTestEnricher;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
import org.keycloak.testsuite.arquillian.containers.SelfManagedAppContainerLifecycle;
@AppServerContainer(ContainerConstants.APP_SERVER_WILDFLY)
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SessionServletAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SessionServletAdapterTest.java
index 0442f9da7ef..f9875d7232c 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SessionServletAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SessionServletAdapterTest.java
@@ -34,7 +34,7 @@ import org.keycloak.testsuite.adapter.page.SessionPortal;
import org.keycloak.testsuite.auth.page.account.Sessions;
import org.keycloak.testsuite.auth.page.login.Login;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
import org.keycloak.testsuite.util.SecondBrowser;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/UserStorageConsentTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/UserStorageConsentTest.java
index ffdc0278233..a6a12ed0166 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/UserStorageConsentTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/UserStorageConsentTest.java
@@ -50,7 +50,7 @@ import org.keycloak.testsuite.adapter.AbstractServletsAdapterTest;
import org.keycloak.testsuite.adapter.page.ProductPortal;
import org.keycloak.testsuite.admin.ApiUtil;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
import org.keycloak.testsuite.auth.page.login.PageWithLoginUrl;
import org.keycloak.testsuite.federation.UserMapStorageFactory;
import org.keycloak.testsuite.pages.ConsentPage;
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/cluster/OIDCAdapterClusterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/cluster/OIDCAdapterClusterTest.java
index ec1d07b3361..db911502f0b 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/cluster/OIDCAdapterClusterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/cluster/OIDCAdapterClusterTest.java
@@ -43,7 +43,7 @@ import org.keycloak.testsuite.adapter.AbstractAdapterClusteredTest;
import org.keycloak.testsuite.adapter.page.SessionPortalDistributable;
import org.keycloak.testsuite.adapter.servlet.SessionServlet;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
import org.keycloak.testsuite.auth.page.AuthRealm;
import org.keycloak.testsuite.auth.page.login.OIDCLogin;
import org.keycloak.testsuite.util.DroneUtils;
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/cluster/SAMLAdapterClusterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/cluster/SAMLAdapterClusterTest.java
index 76649847a8b..720999b7a8e 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/cluster/SAMLAdapterClusterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/cluster/SAMLAdapterClusterTest.java
@@ -24,7 +24,7 @@ import org.keycloak.testsuite.adapter.AbstractSAMLAdapterClusteredTest;
import org.keycloak.testsuite.adapter.page.EmployeeServletDistributable;
import org.keycloak.testsuite.adapter.servlet.SendUsernameServlet;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
/**
*
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/crossdc/SAMLAdapterCrossDCTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/crossdc/SAMLAdapterCrossDCTest.java
index 5466922180c..5767265d144 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/crossdc/SAMLAdapterCrossDCTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/crossdc/SAMLAdapterCrossDCTest.java
@@ -27,7 +27,7 @@ import org.keycloak.testsuite.adapter.AbstractSAMLAdapterClusteredTest;
import org.keycloak.testsuite.adapter.servlet.SendUsernameServlet;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
import org.keycloak.testsuite.arquillian.annotation.InitialDcState;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
import org.keycloak.testsuite.crossdc.ServerSetup;
import static org.hamcrest.Matchers.is;
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/jetty/JettyDemoServletAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/jetty/JettyDemoServletAdapterTest.java
index a5a60fd94e4..c4ad2ab4e09 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/jetty/JettyDemoServletAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/jetty/JettyDemoServletAdapterTest.java
@@ -3,7 +3,7 @@ package org.keycloak.testsuite.adapter.servlet.jetty;
import org.junit.Ignore;
import org.keycloak.testsuite.adapter.servlet.DemoServletsAdapterTest;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
@AppServerContainer(ContainerConstants.APP_SERVER_JETTY94)
@AppServerContainer(ContainerConstants.APP_SERVER_JETTY93)
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/jetty/JettySAMLServletAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/jetty/JettySAMLServletAdapterTest.java
index 8d3039cdae8..68d74072428 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/jetty/JettySAMLServletAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/jetty/JettySAMLServletAdapterTest.java
@@ -3,7 +3,7 @@ package org.keycloak.testsuite.adapter.servlet.jetty;
import org.junit.Ignore;
import org.keycloak.testsuite.adapter.servlet.SAMLServletAdapterTest;
import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
-import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
@AppServerContainer(ContainerConstants.APP_SERVER_JETTY94)
@AppServerContainer(ContainerConstants.APP_SERVER_JETTY93)
diff --git a/testsuite/integration-arquillian/tests/pom.xml b/testsuite/integration-arquillian/tests/pom.xml
index 3e5e97b7bc1..225a8d4f359 100755
--- a/testsuite/integration-arquillian/tests/pom.xml
+++ b/testsuite/integration-arquillian/tests/pom.xml
@@ -1475,12 +1475,6 @@
compile
-
- org.apache.sshd
- sshd-core
- 1.2.0
-
-
com.icegreen
diff --git a/testsuite/integration-arquillian/util/pom.xml b/testsuite/integration-arquillian/util/pom.xml
index 449df712a0b..dded9e51e5e 100644
--- a/testsuite/integration-arquillian/util/pom.xml
+++ b/testsuite/integration-arquillian/util/pom.xml
@@ -87,5 +87,20 @@
jboss-jaxrs-api_2.1_spec
1.0.1.Final
+
+ junit
+ junit
+ compile
+
+
+ org.hamcrest
+ hamcrest-all
+ compile
+
+
+ org.apache.sshd
+ sshd-core
+ 2.2.0
+
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/containers/ContainerConstants.java b/testsuite/integration-arquillian/util/src/main/java/org/keycloak/testsuite/utils/arquillian/ContainerConstants.java
similarity index 97%
rename from testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/containers/ContainerConstants.java
rename to testsuite/integration-arquillian/util/src/main/java/org/keycloak/testsuite/utils/arquillian/ContainerConstants.java
index 54eb8a41a6c..58963177d8e 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/containers/ContainerConstants.java
+++ b/testsuite/integration-arquillian/util/src/main/java/org/keycloak/testsuite/utils/arquillian/ContainerConstants.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.keycloak.testsuite.arquillian.containers;
+package org.keycloak.testsuite.utils.arquillian;
public interface ContainerConstants {
public static final String APP_SERVER_PREFIX = "app-server-";
diff --git a/testsuite/integration-arquillian/util/src/main/java/org/keycloak/testsuite/utils/fuse/FuseUtils.java b/testsuite/integration-arquillian/util/src/main/java/org/keycloak/testsuite/utils/fuse/FuseUtils.java
new file mode 100644
index 00000000000..2dcb27d3797
--- /dev/null
+++ b/testsuite/integration-arquillian/util/src/main/java/org/keycloak/testsuite/utils/fuse/FuseUtils.java
@@ -0,0 +1,271 @@
+/*
+ * Copyright 2019 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.testsuite.utils.fuse;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.util.EnumSet;
+import java.util.Set;
+import org.apache.sshd.client.SshClient;
+import org.apache.sshd.client.channel.ChannelExec;
+import org.apache.sshd.client.channel.ClientChannelEvent;
+import org.apache.sshd.client.future.ConnectFuture;
+import org.apache.sshd.client.session.ClientSession;
+import org.jboss.arquillian.core.spi.Validate;
+import org.jboss.logging.Logger;
+import org.junit.Assert;
+
+import static org.hamcrest.Matchers.*;
+import org.keycloak.testsuite.utils.arquillian.ContainerConstants;
+
+public class FuseUtils {
+
+ private static final Logger log = Logger.getLogger(FuseUtils.class);
+ private static boolean initiated = false;
+
+ private static final String managementUser = System.getProperty("app.server.management.user", "admin");
+ private static final String managementPassword = System.getProperty("app.server.management.password", "password");
+ private static final String additionalFuseRepos = System.getProperty("additional.fuse.repos");
+ private static final String userHome = System.getProperty("user.home");
+ private static final String projectVersion = System.getProperty("project.version");
+ private static final String mvnRepoLocal;
+ private static final String mvnLocalSettings;
+
+ public enum Result { OK, NOT_FOUND, NO_CREDENTIALS, NO_ROLES, EMPTY };
+
+ static {
+ Validate.notNullOrEmpty(managementUser, "app.server.management.user is not set.");
+ Validate.notNullOrEmpty(managementPassword, "app.server.management.password is not set.");
+ Validate.notNullOrEmpty(additionalFuseRepos, "additional.fuse.repos is not set.");
+
+ mvnRepoLocal = System.getProperty("maven.repo.local", userHome + "/.m2/repository");
+ mvnLocalSettings = System.getProperty("maven.local.settings", userHome + "/.m2/settings.xml");
+ }
+
+ public static void setUpFuse(String appServer) throws IOException {
+ if (!initiated) {
+ switch (appServer) {
+ case ContainerConstants.APP_SERVER_FUSE7X :
+ setUpFuse7();
+ break;
+ case ContainerConstants.APP_SERVER_FUSE63 :
+ setUpFuse6();
+ break;
+ default:
+ throw new UnsupportedOperationException(appServer + " is not supported!");
+ }
+ initiated = true;
+ }
+ }
+
+ private static void setUpFuse7() throws IOException {
+ log.debug("Going to set up fuse server");
+
+ assertCommand(managementUser, managementPassword,
+ "config:edit org.ops4j.pax.url.mvn; " +
+ "config:property-set org.ops4j.pax.url.mvn.localRepository " + mvnRepoLocal + "; " +
+ "config:property-set org.ops4j.pax.url.mvn.settings " + mvnLocalSettings + "; " +
+ "config:property-append org.ops4j.pax.url.mvn.repositories " + additionalFuseRepos + "; " +
+ "config:update",
+ Result.EMPTY);
+
+ assertCommand(managementUser, managementPassword,
+ "config:edit jmx.acl.org.apache.karaf.security.jmx; " +
+ "config:property-append list* viewer; " +
+ "config:property-append set* jmxAdmin; " +
+ "config:property-append * jmxAdmin,admin; " +
+ "config:update",
+ Result.EMPTY);
+
+ assertCommand(managementUser, managementPassword,
+ "feature:repo-add mvn:org.keycloak/keycloak-osgi-features/" + projectVersion + "/xml/features; " +
+ "feature:repo-add mvn:org.keycloak.testsuite/fuse-example-keycloak-features/" + projectVersion + "/xml/features; " +
+ "feature:install pax-http-undertow; " +
+ "feature:install keycloak-jaas keycloak-pax-http-undertow; " +
+ "feature:install keycloak-fuse-7.0-example",
+ Result.OK);
+
+ assertCommand(managementUser, managementPassword,
+ "config:edit --factory --alias cxf org.ops4j.pax.web.context; " +
+ "config:property-set bundle.symbolicName org.apache.cxf.cxf-rt-transports-http; " +
+ "config:property-set context.id default; " +
+ "config:property-set context.param.keycloak.config.resolver org.keycloak.adapters.osgi.HierarchicalPathBasedKeycloakConfigResolver; " +
+ "config:property-set login.config.authMethod KEYCLOAK; " +
+ "config:property-set security.cxf.url /cxf/customerservice/*; " +
+ "config:property-set security.cxf.roles \"admin, user\"; " +
+ "config:update",
+ Result.EMPTY);
+
+ assertCommand(managementUser, managementPassword,
+ "system:property -p hawtio.keycloakEnabled true; " +
+ "system:property -p hawtio.realm keycloak; " +
+ "system:property -p hawtio.keycloakClientConfig ${karaf.etc}/keycloak-hawtio-client.json; " +
+ "system:property -p hawtio.keycloakServerConfig ${karaf.etc}/keycloak-bearer.json; " +
+ "system:property -p hawtio.roles admin,manager,viewer,ssh; " +
+ "system:property -p hawtio.rolePrincipalClasses org.keycloak.adapters.jaas.RolePrincipal,org.apache.karaf.jaas.boot.principal.RolePrincipal;" +
+ "restart io.hawt.hawtio-war",
+ Result.EMPTY);
+
+ assertCommand(managementUser, managementPassword,
+ "config:edit org.apache.karaf.management; " +
+ "config:property-set jmxRealm keycloak;" +
+ "config:update",
+ Result.EMPTY);
+
+ assertCommand(managementUser, managementPassword,
+ "config:edit org.apache.karaf.shell; " +
+ "config:property-set sshRealm keycloak; " +
+ "config:update",
+ Result.EMPTY);
+
+ log.debug("Fuse server should be ready");
+ }
+
+ private static void setUpFuse6() throws IOException {
+ log.debug("Going to set up fuse server");
+
+ assertCommand(managementUser, managementPassword,
+ "config:edit org.ops4j.pax.url.mvn; " +
+ "config:propset org.ops4j.pax.url.mvn.localRepository " + mvnRepoLocal + "; " +
+ "config:propset org.ops4j.pax.url.mvn.settings " + mvnLocalSettings + "; " +
+ "config:propappend org.ops4j.pax.url.mvn.repositories " + additionalFuseRepos + "; " +
+ "config:update",
+ Result.EMPTY);
+
+ assertCommand(managementUser, managementPassword,
+ "config:edit jmx.acl.org.apache.karaf.security.jmx; " +
+ "config:propappend list* viewer; " +
+ "config:propappend set* jmxAdmin; " +
+ "config:propappend * jmxAdmin,admin; " +
+ "config:update",
+ Result.EMPTY);
+
+ assertCommand(managementUser, managementPassword,
+ "features:addurl mvn:org.keycloak/keycloak-osgi-features/" + projectVersion + "/xml/features; " +
+ "features:addurl mvn:org.keycloak.testsuite/fuse-example-keycloak-features/" + projectVersion + "/xml/features; " +
+ "features:install keycloak-fuse-6.3-example",
+ Result.OK);
+
+ String appServerHome = System.getProperty("app.server.home");
+ Validate.notNullOrEmpty(appServerHome, "app.server.home is not set.");
+ assertCommand(managementUser, managementPassword,
+ "system-property -p hawtio.roles admin,user; " +
+ "system-property -p hawtio.keycloakEnabled true; " +
+ "system-property -p hawtio.realm keycloak; " +
+ "system-property -p hawtio.keycloakClientConfig file://" + appServerHome + "/etc/keycloak-hawtio-client.json; " +
+ "system-property -p hawtio.rolePrincipalClasses org.keycloak.adapters.jaas.RolePrincipal,org.apache.karaf.jaas.boot.principal.RolePrincipal; ",
+ Result.EMPTY);
+
+ String output = getCommandOutput(managementUser, managementPassword, "osgi:list | grep hawtio | grep web;");
+ Assert.assertThat(output, containsString("hawtio"));
+ String id = output.substring(output.indexOf("[") + 1, output.indexOf("]")).trim();
+ log.debug("osgi hawtio-web id: " + id);
+ assertCommand(managementUser, managementPassword,
+ "osgi:restart " + id,
+ Result.EMPTY);
+
+ assertCommand(managementUser, managementPassword,
+ "config:edit org.apache.karaf.management; " +
+ "config:propset jmxRealm keycloak;" +
+ "config:update",
+ Result.EMPTY);
+
+ assertCommand(managementUser, managementPassword,
+ "config:edit org.apache.karaf.shell; " +
+ "config:propset sshRealm keycloak; " +
+ "config:update",
+ Result.EMPTY);
+
+ log.debug("Fuse server should be ready");
+ }
+
+ public static String assertCommand(String user, String password, String command, Result result) throws IOException {
+ if (!command.endsWith("\n"))
+ command += "\n";
+
+ String output = getCommandOutput(user, password, command);
+
+ log.debug("Command: " + command + ", user: " + user + ", password: " + password + ", output: " + output);
+
+ switch(result) {
+ case EMPTY:
+ Assert.assertThat(output, isEmptyString());
+ break;
+ case OK:
+ Assert.assertThat(output,
+ not(anyOf(
+ containsString("Insufficient credentials"),
+ containsString("Command not found"),
+ containsString("Error executing command"),
+ containsString("Authentication failed"))
+ ));
+ break;
+ case NOT_FOUND:
+ Assert.assertThat(output,
+ containsString("Command not found"));
+ break;
+ case NO_CREDENTIALS:
+ Assert.assertThat(output,
+ containsString("Insufficient credentials"));
+ break;
+ case NO_ROLES:
+ Assert.assertThat(output,
+ containsString("Current user has no associated roles"));
+ break;
+ default:
+ Assert.fail("Unexpected enum value: " + result);
+ }
+
+ return output;
+ }
+
+ public static String getCommandOutput(String user, String password, String command) throws IOException {
+ if (!command.endsWith("\n"))
+ command += "\n";
+
+ try (ClientSession session = openSshChannel(user, password);
+ ChannelExec channel = session.createExecChannel(command);
+ ByteArrayOutputStream out = new ByteArrayOutputStream()) {
+ channel.setOut(out);
+ channel.setErr(out);
+ channel.open();
+ channel.waitFor(EnumSet.of(ClientChannelEvent.CLOSED, ClientChannelEvent.EOF), 0);
+
+ return new String(out.toByteArray());
+ }
+ }
+
+ private static ClientSession openSshChannel(String username, String password) throws IOException {
+ SshClient client = SshClient.setUpDefaultClient();
+ client.start();
+ ConnectFuture future = client.connect(username, "localhost", 8101);
+ future.await();
+ ClientSession session = future.getSession();
+
+ Set ret = EnumSet.of(ClientSession.ClientSessionEvent.WAIT_AUTH);
+ while (ret.contains(ClientSession.ClientSessionEvent.WAIT_AUTH)) {
+ session.addPasswordIdentity(password);
+ session.auth().verify();
+ ret = session.waitFor(EnumSet.of(ClientSession.ClientSessionEvent.WAIT_AUTH, ClientSession.ClientSessionEvent.CLOSED, ClientSession.ClientSessionEvent.AUTHED), 0);
+ }
+ if (ret.contains(ClientSession.ClientSessionEvent.CLOSED)) {
+ throw new RuntimeException("Could not open SSH channel");
+ }
+
+ return session;
+ }
+}