Skip to content

Commit 31c1018

Browse files
Merge pull request #12845 from rabbitmq/fix-selenium-issues-on-v4.0.x
Fix selenium issues on v4.0.x
2 parents 3da59e0 + a64f245 commit 31c1018

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+271
-175
lines changed

selenium/.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,10 @@ suites/screens/*
77
test/oauth/*/h2/*.trace.db
88
test/oauth/*/h2/*.lock.db
99
*/target/*
10+
tls-gen
11+
test/*/certs/*.pem
12+
test/*/certs/*.p12
13+
test/*/certs/*.jks
14+
test/*/*/*.pem
15+
test/*/*/*.p12
16+
test/*/*/*.jks

selenium/bin/components/devkeycloak

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ init_devkeycloak() {
99
print "> DEVKEYCLOAK_CONFIG_DIR: ${DEVKEYCLOAK_CONFIG_DIR}"
1010
print "> DEVKEYCLOAK_URL: ${DEVKEYCLOAK_URL}"
1111
print "> DEVKEYCLOAK_DOCKER_IMAGE: ${KEYCLOAK_DOCKER_IMAGE}"
12+
13+
generate-ca-server-client-kpi devkeycloak $DEVKEYCLOAK_CONFIG_DIR
14+
1215
}
1316
ensure_devkeycloak() {
1417
if docker ps | grep devkeycloak &> /dev/null; then
@@ -45,7 +48,7 @@ start_devkeycloak() {
4548
--https-certificate-key-file=/opt/keycloak/data/import/server_devkeycloak_key.pem \
4649
--hostname=devkeycloak --hostname-admin=devkeycloak --https-port=8442
4750

48-
wait_for_oidc_endpoint devkeycloak $DEVKEYCLOAK_URL $MOUNT_DEVKEYCLOAK_CONF_DIR/ca_certificate.pem
51+
wait_for_oidc_endpoint devkeycloak $DEVKEYCLOAK_URL $MOUNT_DEVKEYCLOAK_CONF_DIR/ca_devkeycloak_certificate.pem
4952
end "devkeycloak is ready"
5053
print " Note: If you modify devkeycloak configuration, make sure to run the following command to export the configuration."
5154
print " docker exec -it devkeycloak /opt/keycloak/bin/kc.sh export --users realm_file --realm test --dir /opt/keycloak/data/import/"

selenium/bin/components/keycloak

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ init_keycloak() {
1717
print "> KEYCLOAK_CONFIG_DIR: ${KEYCLOAK_CONFIG_DIR}"
1818
print "> KEYCLOAK_URL: ${KEYCLOAK_URL}"
1919
print "> KEYCLOAK_DOCKER_IMAGE: ${KEYCLOAK_DOCKER_IMAGE}"
20+
21+
generate-ca-server-client-kpi keycloak $KEYCLOAK_CONFIG_DIR
22+
2023
}
2124
start_keycloak() {
2225
begin "Starting keycloak ..."
@@ -44,7 +47,7 @@ start_keycloak() {
4447
--https-certificate-file=/opt/keycloak/data/import/server_keycloak_certificate.pem \
4548
--https-certificate-key-file=/opt/keycloak/data/import/server_keycloak_key.pem
4649

47-
wait_for_oidc_endpoint keycloak $KEYCLOAK_URL $MOUNT_KEYCLOAK_CONF_DIR/ca_certificate.pem
50+
wait_for_oidc_endpoint keycloak $KEYCLOAK_URL $MOUNT_KEYCLOAK_CONF_DIR/ca_keycloak_certificate.pem
4851
end "Keycloak is ready"
4952

5053
print " Note: If you modify keycloak configuration. Make sure to run the following command to export the configuration."

selenium/bin/components/prodkeycloak

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ init_prodkeycloak() {
1616
print "> PRODKEYCLOAK_CONFIG_DIR: ${PRODKEYCLOAK_CONFIG_DIR}"
1717
print "> PRODKEYCLOAK_URL: ${PRODKEYCLOAK_URL}"
1818
print "> KEYCLOAK_DOCKER_IMAGE: ${KEYCLOAK_DOCKER_IMAGE}"
19+
20+
generate-ca-server-client-kpi prodkeycloak $PRODKEYCLOAK_CONFIG_DIR
1921
}
2022
start_prodkeycloak() {
2123
begin "Starting prodkeycloak ..."
@@ -44,7 +46,7 @@ start_prodkeycloak() {
4446
--https-certificate-key-file=/opt/keycloak/data/import/server_prodkeycloak_key.pem \
4547
--hostname=prodkeycloak --hostname-admin=prodkeycloak --https-port=8443
4648

47-
wait_for_oidc_endpoint prodkeycloak $PRODKEYCLOAK_URL $MOUNT_PRODKEYCLOAK_CONF_DIR/ca_certificate.pem
49+
wait_for_oidc_endpoint prodkeycloak $PRODKEYCLOAK_URL $MOUNT_PRODKEYCLOAK_CONF_DIR/ca_prodkeycloak_certificate.pem
4850
end "prodkeycloak is ready"
4951
print " Note: If you modify prodkeycloak configuration, make sure to run the following command to export the configuration."
5052
print " docker exec -it prodkeycloak /opt/keycloak/bin/kc.sh export --users realm_file --realm test --dir /opt/keycloak/data/import/"

selenium/bin/components/rabbitmq

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,13 @@ init_rabbitmq() {
1010
[[ -z "${OAUTH_SERVER_CONFIG_BASEDIR}" ]] || print "> OAUTH_SERVER_CONFIG_BASEDIR: ${OAUTH_SERVER_CONFIG_BASEDIR}"
1111
[[ -z "${OAUTH_SERVER_CONFIG_DIR}" ]] || print "> OAUTH_SERVER_CONFIG_DIR: ${OAUTH_SERVER_CONFIG_DIR}"
1212

13+
if [[ ! -d "${RABBITMQ_CONFIG_DIR}/certs" ]]; then
14+
mkdir ${RABBITMQ_CONFIG_DIR}/certs
15+
fi
16+
generate-ca-server-client-kpi rabbitmq $RABBITMQ_CONFIG_DIR/certs
17+
generate-server-keystore-if-required rabbitmq $RABBITMQ_CONFIG_DIR/certs
18+
generate-client-keystore-if-required rabbitmq $RABBITMQ_CONFIG_DIR/certs
19+
generate-truststore-if-required rabbitmq $RABBITMQ_CONFIG_DIR/certs
1320
}
1421

1522
start_rabbitmq() {

selenium/bin/components/uaa

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ init_uaa() {
1616
print "> UAA_CONFIG_DIR: ${UAA_CONFIG_DIR}"
1717
print "> UAA_URL: ${UAA_URL}"
1818
print "> UAA_DOCKER_IMAGE: ${UAA_DOCKER_IMAGE}"
19+
20+
generate-ca-server-client-kpi uaa $UAA_CONFIG_DIR
21+
generate-server-keystore-if-required uaa $UAA_CONFIG_DIR
1922
}
2023
start_uaa() {
2124
begin "Starting UAA ..."

selenium/bin/suite_template

Lines changed: 96 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,99 @@ generate_env_file() {
375375
source $ENV_FILE
376376
end "Finished generating env file."
377377
}
378+
generate-ca-server-client-kpi() {
379+
NAME=$1
380+
FOLDER=$2
381+
if [[ ! -f "${FOLDER}/server_${NAME}_key.pem" ]]; then
382+
do_generate-ca-server-client-kpi $1 $2
383+
fi
384+
}
385+
do_generate-ca-server-client-kpi() {
386+
NAME=$1
387+
FOLDER=$2
388+
ROOT=$SELENIUM_ROOT_FOLDER
389+
390+
begin "Generate certs for $NAME"
391+
392+
if [ ! -d "$ROOT/tls-gen" ]; then
393+
git clone https://github.com/michaelklishin/tls-gen $ROOT/tls-gen
394+
fi
395+
396+
print "Generating CA and Server (localhost and $NAME) PKI under $FOLDER ..."
397+
mkdir -p $FOLDER
398+
399+
CUR_DIR=$(pwd)
400+
cd $ROOT/tls-gen/basic
401+
cp openssl.cnf openssl.cnf.bak
402+
if [ -f "$FOLDER/openssl.cnf.in" ]; then
403+
cp $FOLDER/openssl.cnf.in >> openssl.cnf
404+
fi
405+
if [[ ! -z "${DEBUG}" ]]; then
406+
print "Used this openssl.conf"
407+
cat openssl.cnf
408+
fi
409+
make CN=$NAME CLIENT_ALT_NAME=internaluser
410+
cp openssl.cnf.bak openssl.cnf
411+
cd $CUR_DIR
412+
413+
cp $ROOT/tls-gen/basic/result/ca_certificate.pem $FOLDER/ca_${NAME}_certificate.pem
414+
cp $ROOT/tls-gen/basic/result/server_${NAME}_certificate.pem $FOLDER
415+
cp $ROOT/tls-gen/basic/result/server_${NAME}_key.pem $FOLDER
416+
cp $ROOT/tls-gen/basic/result/server_${NAME}.p12 $FOLDER
417+
cp $ROOT/tls-gen/basic/result/client_${NAME}_certificate.pem $FOLDER
418+
cp $ROOT/tls-gen/basic/result/client_${NAME}_key.pem $FOLDER
419+
cp $ROOT/tls-gen/basic/result/client_${NAME}.p12 $FOLDER
420+
chmod ugo+r $FOLDER/*.pem
421+
end "SSL Certificates generated for $NAME under $FOLDER"
422+
}
423+
generate-truststore-if-required() {
424+
NAME=$1
425+
FOLDER=$2
426+
if [[ ! -f "${FOLDER}/truststore.jks" ]]; then
427+
keytool -import \
428+
-trustcacerts \
429+
-file ${FOLDER}/ca_${NAME}_certificate.pem \
430+
-keystore ${FOLDER}/truststore.jks \
431+
-storepass foobar \
432+
-noprompt
433+
fi
434+
}
435+
generate-server-keystore-if-required() {
436+
NAME=$1
437+
FOLDER=$2
438+
if [ ! -f "${FOLDER}/server_${NAME}.jks" ]; then
439+
keytool -importkeystore \
440+
-destkeystore ${FOLDER}/server_${NAME}.jks \
441+
-srckeystore ${FOLDER}/server_${NAME}.p12 \
442+
-deststoretype pkcs12 \
443+
-srcstoretype pkcs12 \
444+
-alias 1 \
445+
-destalias server-${NAME}-tls \
446+
-deststorepass foobar \
447+
-destkeypass foobar \
448+
-srcstorepass "" \
449+
-srckeypass "" \
450+
-noprompt
451+
fi
452+
}
453+
generate-client-keystore-if-required() {
454+
NAME=$1
455+
FOLDER=$2
456+
if [ ! -f "${FOLDER}/client_${NAME}.jks" ]; then
457+
keytool -importkeystore \
458+
-destkeystore ${FOLDER}/client_${NAME}.jks \
459+
-srckeystore ${FOLDER}/client_${NAME}.p12 \
460+
-deststoretype pkcs12 \
461+
-srcstoretype pkcs12 \
462+
-alias 1 \
463+
-destalias client-${NAME}-tls \
464+
-deststorepass foobar \
465+
-destkeypass foobar \
466+
-srcstorepass "" \
467+
-srckeypass "" \
468+
-noprompt
469+
fi
470+
}
378471
run() {
379472
runWith rabbitmq
380473
}
@@ -420,13 +513,13 @@ elif [[ "$COMMAND" == "stop-rabbitmq" ]]
420513
fi
421514
}
422515
determine_required_components_including_rabbitmq() {
423-
if [[ "$@" != *"rabbitmq"* ]]; then
424-
REQUIRED_COMPONENTS+=("rabbitmq")
425-
fi
426516
for (( i=1; i<=$#; i++)) {
427517
eval val='$'$i
428518
REQUIRED_COMPONENTS+=( "$val" )
429519
}
520+
if [[ "$@" != *"rabbitmq"* ]]; then
521+
REQUIRED_COMPONENTS+=("rabbitmq")
522+
fi
430523
}
431524
determine_required_components_excluding_rabbitmq() {
432525
for (( i=1; i<=$#; i++)) {

selenium/full-suite-management-ui

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
authnz-mgt/basic-auth-behind-proxy.sh
22
authnz-mgt/basic-auth.sh
33
authnz-mgt/basic-auth-with-mgt-prefix.sh
4-
authnz-mgt/multi-oauth-with-basic-auth-when-idps-down.sh
54
authnz-mgt/multi-oauth-with-basic-auth.sh
65
authnz-mgt/multi-oauth-without-basic-auth-and-resource-label-and-scopes.sh
76
authnz-mgt/multi-oauth-without-basic-auth.sh
7+
authnz-mgt/multi-oauth-with-basic-auth-when-idps-down.sh
88
authnz-mgt/oauth-and-basic-auth.sh
99
authnz-mgt/oauth-idp-initiated-with-uaa-and-prefix-via-proxy.sh
1010
authnz-mgt/oauth-idp-initiated-with-uaa-and-prefix.sh

selenium/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
"mqtt": "^5.3.3",
2121
"path": "^0.12.7",
2222
"proxy": "^1.0.2",
23+
"rhea": "^3.0.3",
2324
"selenium-webdriver": "^4.19.0",
2425
"xmlhttprequest": "^1.8.0"
2526
},

selenium/run-suites.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ do
3030
fi
3131
echo -e "=== $TEST_STATUS $SUITE ==========================================="
3232
echo " "
33-
done <<< "$(cat $SCRIPT/$SUITE_FILE | sort)"
33+
done <<< "$(cat $SCRIPT/$SUITE_FILE)"
3434

3535
echo -e "=== Summary (${TOTAL_SUITES}/${GREEN}${#SUCCESSFUL_SUITES[@]}/${RED}${#FAILED_SUITES[@]}${NC}) ============================================"
3636
if [ ${#SUCCESSFUL_SUITES[@]} -gt 0 ]; then echo -e " > ${GREEN}Successful suites ${NC}"; fi

0 commit comments

Comments
 (0)