Access Envoy Admin http://localhost:8001/
.
Proxying MongoDB.
Access httpbin http://localhost:15001/
to view endpoints list.
Use image curlimages/curl
:
$ docker exec -it envoy-curl sh
Directly access envoy-httpbin
:
$ curl envoy-httpbin:8000/headers
{
"headers": {
"Accept": "*/*",
"Host": "envoy-httpbin:8000",
"User-Agent": "curl/8.6.0"
}
}
Use proxy envoy
to access envou-httpbin
:
$ curl envoy:15001/headers
{
"headers": {
"Accept": "*/*",
"Host": "envoy-httpbin",
"User-Agent": "curl/8.6.0",
"X-Envoy-Expected-Rq-Timeout-Ms": "15000",
"X-Request-Id": "3aa4bbdd-c413-4efe-bcfc-26f3d0e84b3a"
}
}
Cleanup:
$ docker compose down --rmi "all"
[+] Running 6/6
✔ Container envoy Removed
✔ Container envoy-httpbin Removed
✔ Container envoy-curl Removed
✔ Image envoyproxy/envoy:v1.28.0 Removed
✔ Image citizenstig/httpbin:latest Removed
✔ Image curlimages/curl:latest Removed
Provider: Keycloak
- Realm: envoy
- OpenID Endpoint Configuration: http://localhost:18080/realms/envoy/.well-known/openid-configuration
- User: envoy/envoy
- Client: envoy-service
$ curl -s -X POST http://localhost:18080/realms/envoy/protocol/openid-connect/token -d "client_id=envoy-service&username=envoy&password=envoy&grant_type=password"
{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJqU1lEV3VGWGhjcERQeEhNOUJUS3Q4c3JPNUYtaFNiMGhHdkRjTVRfZXYwIn0.eyJleHAiOjE3MTAzMjQ0OTQsImlhdCI6MTcxMDMyNDE5NCwianRpIjoiNTc5ZmVlMDgtZGIzNi00NDc2LWFhYmUtNWJhZTIyNmNjNmQ0IiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDoxODA4MC9yZWFsbXMvZW52b3kiLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiYjcwMTRhZWYtZGY0NC00MTk4LWFhNTItMDYwMGY0ZTg1MzBkIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiZW52b3ktc2VydmljZSIsInNlc3Npb25fc3RhdGUiOiJlMjM0MmU0NS1jYTI1LTQ4N2MtYWI4Yy1hZGQxZGU4NTQzYzIiLCJhY3IiOiIxIiwiYWxsb3dlZC1vcmlnaW5zIjpbIi8qIl0sInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsImRlZmF1bHQtcm9sZXMtZW52b3kiLCJ1bWFfYXV0aG9yaXphdGlvbiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsInNpZCI6ImUyMzQyZTQ1LWNhMjUtNDg3Yy1hYjhjLWFkZDFkZTg1NDNjMiIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwicHJlZmVycmVkX3VzZXJuYW1lIjoiZW52b3kifQ.2eZd8wBh1QKQZTjX2R3Lq6FTJosXNyhG3xnU3OrDu_sLVxdaSXrgGoJ5SFlodnBK2fzsBNcetHzO6wK2XnJck3x04QePtvzReF059Prgq1-nHONK9j1SPS_6mO-39LNj2qT-BfldsNDg6UViwFUGMJSFumFsNT5kL5t88t-96h52VoMHIrSUeyvBbQoWMv3JIP9SPBQ1-tSAlrUxu5HtYxshEovI1IYa3Pk8ltOmWEUxbRAJyNq63HnFNdVF65SnBX4JMpCGN7OOaMR8eZdcd2oNwW3DXtoxep-cPulqdRT1t55SkZiWouEL7KHFgdBUkvr6YaijA3jBkbslvkS10Q",
"expires_in": 300,
"refresh_expires_in": 1800,
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIyYzk4MzdmYi1lMTM4LTQ2NzgtOWYxMC04YjcyNWY5ZTU4NjkifQ.eyJleHAiOjE3MTAzMjU5OTQsImlhdCI6MTcxMDMyNDE5NCwianRpIjoiZjIxZWVmNDQtODRhMS00YTBkLTkxMzMtM2RhZDM3YmMwN2Q4IiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDoxODA4MC9yZWFsbXMvZW52b3kiLCJhdWQiOiJodHRwOi8vbG9jYWxob3N0OjE4MDgwL3JlYWxtcy9lbnZveSIsInN1YiI6ImI3MDE0YWVmLWRmNDQtNDE5OC1hYTUyLTA2MDBmNGU4NTMwZCIsInR5cCI6IlJlZnJlc2giLCJhenAiOiJlbnZveS1zZXJ2aWNlIiwic2Vzc2lvbl9zdGF0ZSI6ImUyMzQyZTQ1LWNhMjUtNDg3Yy1hYjhjLWFkZDFkZTg1NDNjMiIsInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsInNpZCI6ImUyMzQyZTQ1LWNhMjUtNDg3Yy1hYjhjLWFkZDFkZTg1NDNjMiJ9.r5ChuLL9tohV7UbadqAj_SkB0SCONXCc6z7b44Nt9oQ",
"token_type": "Bearer",
"not-before-policy": 0,
"session_state": "e2342e45-ca25-487c-ab8c-add1de8543c2",
"scope": "email profile"
}
$ curl http://localhost:15001/headers
Jwt is missing
$ curl http://localhost:15001/headers -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJqU1lEV3VGWGhjcERQeEhNOUJUS3Q4c3JPNUYtaFNiMGhHdkRjTVRfZXYwIn0.eyJleHAiOjE3MTAzMjQ0OTQsImlhdCI6MTcxMDMyNDE5NCwianRpIjoiNTc5ZmVlMDgtZGIzNi00NDc2LWFhYmUtNWJhZTIyNmNjNmQ0IiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDoxODA4MC9yZWFsbXMvZW52b3kiLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiYjcwMTRhZWYtZGY0NC00MTk4LWFhNTItMDYwMGY0ZTg1MzBkIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiZW52b3ktc2VydmljZSIsInNlc3Npb25fc3RhdGUiOiJlMjM0MmU0NS1jYTI1LTQ4N2MtYWI4Yy1hZGQxZGU4NTQzYzIiLCJhY3IiOiIxIiwiYWxsb3dlZC1vcmlnaW5zIjpbIi8qIl0sInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsImRlZmF1bHQtcm9sZXMtZW52b3kiLCJ1bWFfYXV0aG9yaXphdGlvbiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsInNpZCI6ImUyMzQyZTQ1LWNhMjUtNDg3Yy1hYjhjLWFkZDFkZTg1NDNjMiIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwicHJlZmVycmVkX3VzZXJuYW1lIjoiZW52b3kifQ.2eZd8wBh1QKQZTjX2R3Lq6FTJosXNyhG3xnU3OrDu_sLVxdaSXrgGoJ5SFlodnBK2fzsBNcetHzO6wK2XnJck3x04QePtvzReF059Prgq1-nHONK9j1SPS_6mO-39LNj2qT-BfldsNDg6UViwFUGMJSFumFsNT5kL5t88t-96h52VoMHIrSUeyvBbQoWMv3JIP9SPBQ1-tSAlrUxu5HtYxshEovI1IYa3Pk8ltOmWEUxbRAJyNq63HnFNdVF65SnBX4JMpCGN7OOaMR8eZdcd2oNwW3DXtoxep-cPulqdRT1t55SkZiWouEL7KHFgdBUkvr6YaijA3jBkbslvkS10Q"
Jwt is expired
$ curl -s -X POST http://localhost:18080/realms/envoy/protocol/openid-connect/token -d "client_id=en
voy-service&username=envoy&password=envoy&grant_type=password"
{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJqU1lEV3VGWGhjcERQeEhNOUJUS3Q4c3JPNUYtaFNiMGhHdkRjTVRfZXYwIn0.eyJleHAiOjE3MTAzMjczMDMsImlhdCI6MTcxMDMyNzAwMywianRpIjoiN2MyNmMxYTctMjQ4My00NWFiLTg3MmQtMzE3MjhmM2Y3M2IzIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDoxODA4MC9yZWFsbXMvZW52b3kiLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiYjcwMTRhZWYtZGY0NC00MTk4LWFhNTItMDYwMGY0ZTg1MzBkIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiZW52b3ktc2VydmljZSIsInNlc3Npb25fc3RhdGUiOiJmYmMyYTc0NS00YTlkLTQ2ODEtYjI4MS03MGQ4ZDUxNjdmNDMiLCJhY3IiOiIxIiwiYWxsb3dlZC1vcmlnaW5zIjpbIi8qIl0sInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsImRlZmF1bHQtcm9sZXMtZW52b3kiLCJ1bWFfYXV0aG9yaXphdGlvbiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsInNpZCI6ImZiYzJhNzQ1LTRhOWQtNDY4MS1iMjgxLTcwZDhkNTE2N2Y0MyIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwicHJlZmVycmVkX3VzZXJuYW1lIjoiZW52b3kifQ.UEia_1JBPhhlNBAd09Y_U5jGBs8Aj4FlU950vLqfHgrSHeXw2_2sZVUy-GzNTwwv_UyNQryoPhzJ2wbpiM4MgP6VmslfgOJDpVYVckB1BFUZDwnJAf-PmoxFE6ka-6iDG47sUQIhXOfpDrCs_ol5SiEXx_tnNCWv9a5Udc2fLTVFUSXOcBjWcrgz2cnNrCv-Y_qSv9IpThYnjVKu59i_KsjCr66RqIqMHFXeMc3GZdNg9X1MH957OdJJ3m7P9e99TI21zz6xSL0rRJzju9ERBNztVaQ2cLtS7CHM_pYH2aLORz2O8Kf6tLrBnvyJ1N3o8DbPS9DzmZ165efJqTHwtA",
"expires_in": 300,
"refresh_expires_in": 1800,
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIyYzk4MzdmYi1lMTM4LTQ2NzgtOWYxMC04YjcyNWY5ZTU4NjkifQ.eyJleHAiOjE3MTAzMjg4MDMsImlhdCI6MTcxMDMyNzAwMywianRpIjoiOGU1MjkyZGUtNzQwOC00OWY3LTkwMWQtODdkNmQzYTQwYzQ3IiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDoxODA4MC9yZWFsbXMvZW52b3kiLCJhdWQiOiJodHRwOi8vbG9jYWxob3N0OjE4MDgwL3JlYWxtcy9lbnZveSIsInN1YiI6ImI3MDE0YWVmLWRmNDQtNDE5OC1hYTUyLTA2MDBmNGU4NTMwZCIsInR5cCI6IlJlZnJlc2giLCJhenAiOiJlbnZveS1zZXJ2aWNlIiwic2Vzc2lvbl9zdGF0ZSI6ImZiYzJhNzQ1LTRhOWQtNDY4MS1iMjgxLTcwZDhkNTE2N2Y0MyIsInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsInNpZCI6ImZiYzJhNzQ1LTRhOWQtNDY4MS1iMjgxLTcwZDhkNTE2N2Y0MyJ9.JzV_y5V1PCiK6R0xS-I7zeZvd2PdSUC_gP-pFQLlPVc",
"token_type": "Bearer",
"not-before-policy": 0,
"session_state": "fbc2a745-4a9d-4681-b281-70d8d5167f43",
"scope": "email profile"
}
$ curl http://localhost:15001/headers -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJqU1lEV3VGWGhjcERQeEhNOUJUS3Q4c3JPNUYtaFNiMGhHdkRjTVRfZXYwIn0.eyJleHAiOjE3MTAzMjczMDMsImlhdCI6MTcxMDMyNzAwMywianRpIjoiN2MyNmMxYTctMjQ4My00NWFiLTg3MmQtMzE3MjhmM2Y3M2IzIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDoxODA4MC9yZWFsbXMvZW52b3kiLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiYjcwMTRhZWYtZGY0NC00MTk4LWFhNTItMDYwMGY0ZTg1MzBkIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiZW52b3ktc2VydmljZSIsInNlc3Npb25fc3RhdGUiOiJmYmMyYTc0NS00YTlkLTQ2ODEtYjI4MS03MGQ4ZDUxNjdmNDMiLCJhY3IiOiIxIiwiYWxsb3dlZC1vcmlnaW5zIjpbIi8qIl0sInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsImRlZmF1bHQtcm9sZXMtZW52b3kiLCJ1bWFfYXV0aG9yaXphdGlvbiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsInNpZCI6ImZiYzJhNzQ1LTRhOWQtNDY4MS1iMjgxLTcwZDhkNTE2N2Y0MyIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwicHJlZmVycmVkX3VzZXJuYW1lIjoiZW52b3kifQ.UEia_1JBPhhlNBAd09Y_U5jGBs8Aj4FlU950vLqfHgrSHeXw2_2sZVUy-GzNTwwv_UyNQryoPhzJ2wbpiM4MgP6VmslfgOJDpVYVckB1BFUZDwnJAf-PmoxFE6ka-6iDG47sUQIhXOfpDrCs_ol5SiEXx_tnNCWv9a5Udc2fLTVFUSXOcBjWcrgz2cnNrCv-Y_qSv9IpThYnjVKu59i_KsjCr66RqIqMHFXeMc3GZdNg9X1MH957OdJJ3m7P9e99TI21zz6xSL0rRJzju9ERBNztVaQ2cLtS7CHM_pYH2aLORz2O8Kf6tLrBnvyJ1N3o8DbPS9DzmZ165efJqTHwtA"
{
"headers": {
"Accept": "*/*",
"Host": "envoy-httpbin",
"User-Agent": "curl/8.4.0",
"X-Envoy-Expected-Rq-Timeout-Ms": "15000",
"X-Jwt-Payload": "eyJleHAiOjE3MTAzMjczMDMsImlhdCI6MTcxMDMyNzAwMywianRpIjoiN2MyNmMxYTctMjQ4My00NWFiLTg3MmQtMzE3MjhmM2Y3M2IzIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDoxODA4MC9yZWFsbXMvZW52b3kiLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiYjcwMTRhZWYtZGY0NC00MTk4LWFhNTItMDYwMGY0ZTg1MzBkIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiZW52b3ktc2VydmljZSIsInNlc3Npb25fc3RhdGUiOiJmYmMyYTc0NS00YTlkLTQ2ODEtYjI4MS03MGQ4ZDUxNjdmNDMiLCJhY3IiOiIxIiwiYWxsb3dlZC1vcmlnaW5zIjpbIi8qIl0sInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsImRlZmF1bHQtcm9sZXMtZW52b3kiLCJ1bWFfYXV0aG9yaXphdGlvbiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsInNpZCI6ImZiYzJhNzQ1LTRhOWQtNDY4MS1iMjgxLTcwZDhkNTE2N2Y0MyIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwicHJlZmVycmVkX3VzZXJuYW1lIjoiZW52b3kifQ",
"X-Request-Id": "0028a186-b9c9-4fe8-b705-beef13610846"
}
}