@@ -43,25 +43,44 @@ if [ $RETRY_COUNT -eq $MAX_RETRIES ]; then
4343 exit 1
4444fi
4545
46- # Get admin token
46+ # Additional wait for admin user to be fully initialized
47+ echo " ⏳ Waiting for admin user to be ready..."
48+ sleep 3
49+
50+ # Get admin token with retries
4751echo " 🔑 Obtaining admin token..."
48- TOKEN_RESPONSE=$( curl -s -X POST " $KEYCLOAK_URL /realms/master/protocol/openid-connect/token" \
49- -H " Content-Type: application/x-www-form-urlencoded" \
50- -d " username=$ADMIN_USER " \
51- -d " password=$ADMIN_PASSWORD " \
52- -d " grant_type=password" \
53- -d " client_id=admin-cli" )
52+ TOKEN_RETRIES=10
53+ TOKEN_RETRY_COUNT=0
54+ ACCESS_TOKEN=" "
55+
56+ while [ $TOKEN_RETRY_COUNT -lt $TOKEN_RETRIES ]; do
57+ TOKEN_RESPONSE=$( curl -s -X POST " $KEYCLOAK_URL /realms/master/protocol/openid-connect/token" \
58+ -H " Content-Type: application/x-www-form-urlencoded" \
59+ -d " username=$ADMIN_USER " \
60+ -d " password=$ADMIN_PASSWORD " \
61+ -d " grant_type=password" \
62+ -d " client_id=admin-cli" )
63+
64+ ACCESS_TOKEN=$( echo " $TOKEN_RESPONSE " | grep -o ' "access_token":"[^"]*' | cut -d' "' -f4)
65+
66+ if [ -n " $ACCESS_TOKEN " ]; then
67+ echo " ✓ Admin token obtained"
68+ break
69+ fi
5470
55- ACCESS_TOKEN=$( echo " $TOKEN_RESPONSE " | grep -o ' "access_token":"[^"]*' | cut -d' "' -f4)
71+ TOKEN_RETRY_COUNT=$(( TOKEN_RETRY_COUNT + 1 ))
72+ if [ $TOKEN_RETRY_COUNT -lt $TOKEN_RETRIES ]; then
73+ echo " Retrying token request... ($TOKEN_RETRY_COUNT /$TOKEN_RETRIES )"
74+ sleep 2
75+ fi
76+ done
5677
5778if [ -z " $ACCESS_TOKEN " ]; then
58- echo " ❌ Failed to obtain admin token"
79+ echo " ❌ Failed to obtain admin token after $TOKEN_RETRIES attempts "
5980 echo " Response: $TOKEN_RESPONSE "
6081 exit 1
6182fi
6283
63- echo " ✓ Admin token obtained"
64-
6584# Check if realm already exists
6685echo " 🔍 Checking if realm '$REALM_NAME ' exists..."
6786REALM_EXISTS=$( curl -s -o /dev/null -w " %{http_code}" " $KEYCLOAK_URL /admin/realms/$REALM_NAME " \
0 commit comments