diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 9aa1bda288..7987fac8e2 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -102,7 +102,8 @@ jobs:
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
- - name: Docker test
+
+ - name: Docker test with a dedicated OpenDJ container
shell: bash
run: |
docker network create test-openam
@@ -153,3 +154,153 @@ jobs:
http://openam.example.org:8080/openam/json/authenticate | grep tokenId'
docker inspect --format="{{json .State.Health.Status}}" test-openam | grep -q \"healthy\"
+
+ echo "Stopping containers and removing the network"
+ docker stop test-opendj test-openam
+ docker network rm test-openam
+
+ - name: Docker multi-server test
+ shell: bash
+ run: |
+
+ docker network create test-openam
+
+ echo "Starting OpenAM-1 container"
+ docker run --rm -it -d -h openam1.example.org --name=test-openam1 --network test-openam localhost:5000/${GITHUB_REPOSITORY,,}:${{ env.release_version }}
+
+ echo "Waiting for OpenAM-1 to be alive..."
+ timeout 3m bash -c 'until docker inspect --format="{{json .State.Health.Status}}" test-openam1 | grep -q \"healthy\"; do sleep 10; done'
+
+ docker exec -w '/usr/openam/ssoconfiguratortools' test-openam1 bash -c \
+ 'echo "ACCEPT_LICENSES=true
+ SERVER_URL=http://openam1.example.org:8080
+ DEPLOYMENT_URI=/$OPENAM_PATH
+ BASE_DIR=$OPENAM_DATA_DIR
+ locale=en_US
+ PLATFORM_LOCALE=en_US
+ AM_ENC_KEY=O6QWwHPO4os+zEz3Nqn/2daAYWyiFE32
+ ADMIN_PWD=ampassword
+ AMLDAPUSERPASSWD=password
+ COOKIE_DOMAIN=example.org
+ ACCEPT_LICENSES=true
+ DATA_STORE=embedded
+ DIRECTORY_SSL=SIMPLE
+ DIRECTORY_SERVER=openam1.example.org
+ DIRECTORY_PORT=50389
+ DIRECTORY_ADMIN_PORT=4444
+ DIRECTORY_JMX_PORT=1689
+ ROOT_SUFFIX=dc=openam,dc=example,dc=org
+ DS_DIRMGRDN=cn=Directory Manager
+ DS_DIRMGRPASSWD=password
+ LB_SITE_NAME=lb
+ LB_PRIMARY_URL=http://lb.example.org:80/openam
+ " > conf.file && java -jar openam-configurator-tool*.jar --file conf.file'
+
+ docker exec test-openam1 bash -c \
+ 'curl \
+ --request POST \
+ --header "Content-Type: application/json" \
+ --header "X-OpenAM-Username: amadmin" \
+ --header "X-OpenAM-Password: ampassword" \
+ --data "{}" \
+ http://openam1.example.org:8080/openam/json/authenticate | grep tokenId'
+
+ docker inspect --format="{{json .State.Health.Status}}" test-openam1 | grep -q \"healthy\"
+
+ echo "Add another two OpenAM servers to the cluster"
+
+ echo "Starting OpenAM-2 container..."
+ docker run --rm -it -d -h openam2.example.org --name=test-openam2 --network test-openam localhost:5000/${GITHUB_REPOSITORY,,}:${{ env.release_version }}
+
+ echo "waiting for OpenAM-2 to be alive..."
+ timeout 3m bash -c 'until docker inspect --format="{{json .State.Health.Status}}" test-openam2 | grep -q \"healthy\"; do sleep 10; done'
+
+ docker exec -w '/usr/openam/ssoconfiguratortools' test-openam2 bash -c \
+ 'echo "ACCEPT_LICENSES=true
+ SERVER_URL=http://openam2.example.org:8080
+ DEPLOYMENT_URI=/$OPENAM_PATH
+ BASE_DIR=$OPENAM_DATA_DIR
+ locale=en_US
+ PLATFORM_LOCALE=en_US
+ AM_ENC_KEY=O6QWwHPO4os+zEz3Nqn/2daAYWyiFE32
+ ADMIN_PWD=ampassword
+ AMLDAPUSERPASSWD=password
+ COOKIE_DOMAIN=example.org
+ ACCEPT_LICENSES=true
+ DATA_STORE=embedded
+ DIRECTORY_SSL=SIMPLE
+ DIRECTORY_SERVER=openam2.example.org
+ DIRECTORY_PORT=50389
+ DIRECTORY_ADMIN_PORT=4444
+ DIRECTORY_JMX_PORT=1689
+ ROOT_SUFFIX=dc=openam,dc=example,dc=org
+ DS_DIRMGRDN=cn=Directory Manager
+ DS_DIRMGRPASSWD=password
+ DS_EMB_REPL_FLAG=embReplFlag
+ DS_EMB_REPL_REPLPORT1=8989
+ DS_EMB_REPL_HOST2=openam1.example.com
+ DS_EMB_REPL_ADMINPORT2=4444
+ DS_EMB_REPL_REPLPORT2=8989
+ existingserverid=http://openam1.example.org:8080
+ LB_SITE_NAME=lb
+ LB_PRIMARY_URL=http://lb.example.org:80/openam
+ " > conf.file && java -jar openam-configurator-tool*.jar --file conf.file'
+
+ docker exec test-openam2 bash -c \
+ 'curl \
+ --request POST \
+ --header "Content-Type: application/json" \
+ --header "X-OpenAM-Username: amadmin" \
+ --header "X-OpenAM-Password: ampassword" \
+ --data "{}" \
+ http://openam2.example.org:8080/openam/json/authenticate | grep tokenId'
+
+ docker inspect --format="{{json .State.Health.Status}}" test-openam2 | grep -q \"healthy\"
+
+ echo "Starting OpenAM-3 container..."
+ docker run --rm -it -d -h openam3.example.org --name=test-openam3 --network test-openam localhost:5000/${GITHUB_REPOSITORY,,}:${{ env.release_version }}
+
+ echo "waiting for OpenAM-3 to be alive..."
+ timeout 3m bash -c 'until docker inspect --format="{{json .State.Health.Status}}" test-openam3 | grep -q \"healthy\"; do sleep 10; done'
+
+ docker exec -w '/usr/openam/ssoconfiguratortools' test-openam2 bash -c \
+ 'echo "ACCEPT_LICENSES=true
+ SERVER_URL=http://openam3.example.org:8080
+ DEPLOYMENT_URI=/$OPENAM_PATH
+ BASE_DIR=$OPENAM_DATA_DIR
+ locale=en_US
+ PLATFORM_LOCALE=en_US
+ AM_ENC_KEY=O6QWwHPO4os+zEz3Nqn/2daAYWyiFE32
+ ADMIN_PWD=ampassword
+ AMLDAPUSERPASSWD=password
+ COOKIE_DOMAIN=example.org
+ ACCEPT_LICENSES=true
+ DATA_STORE=embedded
+ DIRECTORY_SSL=SIMPLE
+ DIRECTORY_SERVER=openam3.example.org
+ DIRECTORY_PORT=50389
+ DIRECTORY_ADMIN_PORT=4444
+ DIRECTORY_JMX_PORT=1689
+ ROOT_SUFFIX=dc=openam,dc=example,dc=org
+ DS_DIRMGRDN=cn=Directory Manager
+ DS_DIRMGRPASSWD=password
+ DS_EMB_REPL_FLAG=embReplFlag
+ DS_EMB_REPL_REPLPORT1=8989
+ DS_EMB_REPL_HOST2=openam2.example.com
+ DS_EMB_REPL_ADMINPORT2=4444
+ DS_EMB_REPL_REPLPORT2=9989
+ existingserverid=http://openam2.example.org:8080
+ LB_SITE_NAME=lb
+ LB_PRIMARY_URL=http://lb.example.org:80/openam
+ " > conf.file && java -jar openam-configurator-tool*.jar --file conf.file'
+
+ docker exec test-openam3 bash -c \
+ 'curl \
+ --request POST \
+ --header "Content-Type: application/json" \
+ --header "X-OpenAM-Username: amadmin" \
+ --header "X-OpenAM-Password: ampassword" \
+ --data "{}" \
+ http://openam3.example.org:8080/openam/json/authenticate | grep tokenId'
+
+ docker inspect --format="{{json .State.Health.Status}}" test-openam3 | grep -q \"healthy\"
diff --git a/pom.xml b/pom.xml
index 5b3c5fdf50..0259b9fc55 100644
--- a/pom.xml
+++ b/pom.xml
@@ -79,7 +79,7 @@
11
checkstyle/suppressions.xml
- 5.0.2
+ 5.0.3-SNAPSHOT
1.0.0
1.0b3
7.0.0