Testen!
Als de Keycloak server is opgestart en de applicatie beschikbaar is, kunnen we kijken hoe dit werkt.
Onderstaande requests kunnen ook gedaan worden met browser plugins als RESTED, Advanced REST client, of Postman. Zelf geef ik de voorkeur aan de commandline.
Het token dient eerst opgehaald te worden bij de Keycloak server.
export access_token=$(\
curl -s -X POST http://localhost:8180/auth/realms/quarkus/protocol/openid-connect/token \
--user backend-service:secret \
-H 'content-type: application/x-www-form-urlencoded' \
-d 'username=alice&password=alice&grant_type=password' | jq --raw-output '.access_token' \ ) | echo $access_token
In bovenstaand voorbeeld halen we het token voor de gebruiker alice op.
Probeer nu het volgende endpoint te benaderen.
curl -v -X GET \ http://localhost:8080/api/users/me \
-H "Authorization: Bearer "$access_token
In de header van het verzoek wordt de "Authorization: Bearer "$access_token" meegestuurd.
Probeer ook het /api/admin endpoint. Als het goed is krijg je een 403 response code van de server.
curl -v -X GET \ http://localhost:8080/api/admin \
-H "Authorization: Bearer "$access_token
Om toegang te krijgen tot het admin endpoint dient eerst een nieuw token opgehaald te worden.
export access_token=$(\
curl -s -X POST http://localhost:8180/auth/realms/quarkus/protocol/openid-connect/token \
--user backend-service:secret \
-H 'content-type: application/x-www-form-urlencoded' \
-d 'username=admin&password=admin&grant_type=password' | jq --raw-output '.access_token' \ ) | echo $access_token
Probeer nu nogmaals het /api/admin endpoint. Als het goed is krijg je een 200 response code van de server.
curl -v -X GET \ http://localhost:8080/api/admin \
-H "Authorization: Bearer "$access_token