52 lines
1.4 KiB
Plaintext
Raw Normal View History

2022-07-07 13:06:51 -04:00
#!/usr/bin/env bash
function error_handler() {
>&2 echo "Exited with BAD EXIT CODE '${2}' in ${0} script at line: ${1}."
exit "$2"
}
trap 'error_handler ${LINENO} $?' ERR
set -o errtrace -o errexit -o nounset -o pipefail
2022-07-07 13:55:23 -04:00
# originally from https://medium.com/keycloak/keycloak-jwt-token-using-curl-post-72c9e791ba8c
2022-07-08 11:15:11 -04:00
# btw, meta config endpoint: http://localhost:7002/realms/spiffworkflow/.well-known/openid-configuration
2022-07-07 13:55:23 -04:00
2022-07-07 13:06:51 -04:00
HOSTNAME=localhost:7002
REALM_NAME=spiffworkflow
USERNAME=${1-ciuser1}
PASSWORD=${2-ciuser1}
CLIENT_ID=spiffworkflow-frontend
SECURE=false
KEYCLOAK_URL=http://$HOSTNAME/realms/$REALM_NAME/protocol/openid-connect/token
echo "Using Keycloak: $KEYCLOAK_URL"
echo "realm: $REALM_NAME"
echo "client-id: $CLIENT_ID"
echo "username: $USERNAME"
echo "password: $PASSWORD"
echo "secure: $SECURE"
if [[ $SECURE = 'y' ]]; then
INSECURE=
else
INSECURE=--insecure
fi
result=$(curl -s -X POST "$KEYCLOAK_URL" "$INSECURE" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "username=$USERNAME" \
-d "password=$PASSWORD" \
-d 'grant_type=password' \
-d "client_id=$CLIENT_ID")
2022-07-07 13:08:55 -04:00
token=$(jq -r '.access_token' <<< "$result")
2022-07-07 13:06:51 -04:00
2022-07-07 13:08:55 -04:00
if [[ "$token" != 'null' ]]; then
echo "token: $token"
2022-07-08 11:15:11 -04:00
echo "getting user info"
curl -s "http://localhost:7002/realms/spiffworkflow/protocol/openid-connect/userinfo" -H "Authorization: Bearer $token"
2022-07-07 13:08:55 -04:00
else
echo "Failed auth result: $result"
2022-07-07 13:06:51 -04:00
fi