mirror of
https://github.com/Telecominfraproject/wlan-cloud-ucentral-deploy.git
synced 2026-03-20 03:40:49 +00:00
69 lines
3.0 KiB
Bash
Executable File
69 lines
3.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# Constants
|
|
export DEFAULT_CHECK_RETRIES=10
|
|
|
|
# Usage function
|
|
usage () {
|
|
echo;
|
|
echo "- OWSEC - owsec endpoint to make requests to (i.e. openwifi.wlan.local:16001)";
|
|
echo "- OWSEC_DEFAULT_USERNAME - default owsec username from properties";
|
|
echo "- OWSEC_DEFAULT_PASSWORD - default owsec password (in cleartext) from properties";
|
|
echo "- OWSEC_NEW_PASSWORD - new owsec password (in cleartext) that should be set for login";
|
|
}
|
|
|
|
# Check if required environment variables were passed
|
|
## Login specifics
|
|
[ -z ${OWSEC+x} ] && echo "OWSEC is unset" && usage && exit 1
|
|
[ -z ${OWSEC_DEFAULT_USERNAME+x} ] && echo "OWSEC_DEFAULT_USERNAME is unset" && usage && exit 1
|
|
[ -z ${OWSEC_DEFAULT_PASSWORD+x} ] && echo "OWSEC_DEFAULT_PASSWORD is unset" && usage && exit 1
|
|
[ -z ${OWSEC_NEW_PASSWORD+x} ] && echo "OWSEC_NEW_PASSWORD is unset" && usage && exit 1
|
|
|
|
# Check credentials
|
|
export result_file=result.json
|
|
|
|
# Try logging in with default credentials
|
|
payload="{ \"userId\" : \"${OWSEC_DEFAULT_USERNAME}\" , \"password\" : \"${OWSEC_DEFAULT_PASSWORD}\" }"
|
|
curl ${FLAGS} -X POST "https://${OWSEC}/api/v1/oauth2" \
|
|
-H "Content-Type: application/json" \
|
|
-d "$payload" > ${result_file}
|
|
errorCode=$(cat ${result_file} | jq -r '.ErrorCode')
|
|
# If ErrorCode == 1, we must change password
|
|
if [[ "${errorCode}" == "1" ]]
|
|
then
|
|
payload="{ \"userId\" : \"${OWSEC_DEFAULT_USERNAME}\" , \"password\" : \"${OWSEC_DEFAULT_PASSWORD}\", \"newPassword\" : \"${OWSEC_NEW_PASSWORD}\" }"
|
|
curl ${FLAGS} -X POST "https://${OWSEC}/api/v1/oauth2" \
|
|
-H "Content-Type: application/json" \
|
|
-d "$payload" > ${result_file}
|
|
# Check if password was changed correctly
|
|
token=$(cat ${result_file} | jq -r '.access_token')
|
|
if [[ "${token}" == "null" ]] || [[ "${token}" == "" ]] || [[ ! -s ${result_file} ]]
|
|
then
|
|
echo "Could not change credentials:"
|
|
jq < ${result_file}
|
|
exit 1
|
|
else
|
|
echo "Login credentials were changed:"
|
|
fi
|
|
# If ErrorCode == 2 then new credentials were applied already OR user was deleted OR credentials are wrong
|
|
elif [[ "${errorCode}" == "2" ]]
|
|
then
|
|
# Let's try logging in using new credentials
|
|
payload="{ \"userId\" : \"${OWSEC_DEFAULT_USERNAME}\" , \"password\" : \"${OWSEC_NEW_PASSWORD}\" }"
|
|
curl ${FLAGS} -X POST "https://${OWSEC}/api/v1/oauth2" \
|
|
-H "Content-Type: application/json" \
|
|
-d "$payload" > ${result_file}
|
|
token=$(cat ${result_file} | jq -r '.access_token')
|
|
# TODO check if there are any response
|
|
if [[ "${token}" == "null" ]] || [[ "${token}" == "" ]] || [[ ! -s ${result_file} ]]
|
|
then
|
|
echo "Could not login with new credentials. Probably new login credentials are wrong OR user was deleted. Since we cannot check if user is really deleted, skipping this issue:"
|
|
else
|
|
echo "Logged in with new credentials:"
|
|
fi
|
|
else
|
|
echo "Credentials check failed with unexpected ErrorCode, please review the response body:"
|
|
jq < ${result_file}
|
|
exit 2
|
|
fi
|
|
jq < ${result_file}
|