|
|
|
#!/bin/bash
|
|
|
|
die() { echo >&2 "$@" ; exit 1 ; }
|
|
|
|
|
|
|
|
DIRNAME="$(dirname $0)"
|
|
|
|
cd "$DIRNAME"
|
|
|
|
|
|
|
|
source ../env.production || die "no top levle env?"
|
|
|
|
source env.production || die "no local env?"
|
|
|
|
source "../data/keycloak/env.secrets" || die "no local secrets?"
|
|
|
|
|
|
|
|
# try to get the clients by name
|
|
|
|
CLIENT_NAME="$1"
|
|
|
|
if [ -z "$CLIENT_NAME" ]; then
|
|
|
|
die "usage: $0 clientName"
|
|
|
|
fi
|
|
|
|
|
|
|
|
CLIENT_ID="$(docker-compose exec -T keycloak \
|
|
|
|
/opt/keycloak/bin/kcadm.sh \
|
|
|
|
get clients \
|
|
|
|
--server http://localhost:8080/ \
|
|
|
|
--user admin \
|
|
|
|
--password "$KEYCLOAK_ADMIN_PASSWORD" \
|
|
|
|
--realm master \
|
|
|
|
-r "$REALM" \
|
|
|
|
| jq -r ".[] | select( .clientId == \"$CLIENT_NAME\" ).id")"
|
|
|
|
|
|
|
|
if [ -z "$CLIENT_ID" ]; then
|
|
|
|
die "$CLIENT_NAME: no such client"
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$0: $CLIENT_NAME = $CLIENT_ID"
|
|
|
|
docker-compose exec -T keycloak \
|
|
|
|
/opt/keycloak/bin/kcadm.sh \
|
|
|
|
delete "clients/$CLIENT_ID" \
|
|
|
|
--server http://localhost:8080/ \
|
|
|
|
--user admin \
|
|
|
|
--realm master \
|
|
|
|
--password "$KEYCLOAK_ADMIN_PASSWORD" \
|
|
|
|
-r "$REALM" \
|
|
|
|
|| die "$CLIENT_NAME($CLIENT_ID): unable to remove"
|