aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/security/jwt_verifier.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/security/jwt_verifier.c')
-rw-r--r--src/core/security/jwt_verifier.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/core/security/jwt_verifier.c b/src/core/security/jwt_verifier.c
index 790f2178db..a6736c922c 100644
--- a/src/core/security/jwt_verifier.c
+++ b/src/core/security/jwt_verifier.c
@@ -570,7 +570,8 @@ end:
}
static void on_keys_retrieved(void *user_data,
- const grpc_httpcli_response *response) {
+ const grpc_httpcli_response *response,
+ grpc_call_list *call_list) {
grpc_json *json = json_from_http(response);
verifier_cb_ctx *ctx = (verifier_cb_ctx *)user_data;
EVP_PKEY *verification_key = NULL;
@@ -611,7 +612,8 @@ end:
}
static void on_openid_config_retrieved(void *user_data,
- const grpc_httpcli_response *response) {
+ const grpc_httpcli_response *response,
+ grpc_call_list *call_list) {
const grpc_json *cur;
grpc_json *json = json_from_http(response);
verifier_cb_ctx *ctx = (verifier_cb_ctx *)user_data;
@@ -643,7 +645,7 @@ static void on_openid_config_retrieved(void *user_data,
grpc_httpcli_get(
&ctx->verifier->http_ctx, ctx->pollset, &req,
gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), grpc_jwt_verifier_max_delay),
- on_keys_retrieved, ctx);
+ on_keys_retrieved, ctx, call_list);
grpc_json_destroy(json);
gpr_free(req.host);
return;
@@ -682,7 +684,8 @@ static void verifier_put_mapping(grpc_jwt_verifier *v, const char *email_domain,
}
/* Takes ownership of ctx. */
-static void retrieve_key_and_verify(verifier_cb_ctx *ctx) {
+static void retrieve_key_and_verify(verifier_cb_ctx *ctx,
+ grpc_call_list *call_list) {
const char *at_sign;
grpc_httpcli_response_cb http_cb;
char *path_prefix = NULL;
@@ -745,7 +748,7 @@ static void retrieve_key_and_verify(verifier_cb_ctx *ctx) {
grpc_httpcli_get(
&ctx->verifier->http_ctx, ctx->pollset, &req,
gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), grpc_jwt_verifier_max_delay),
- http_cb, ctx);
+ http_cb, ctx, call_list);
gpr_free(req.host);
gpr_free(req.path);
return;
@@ -758,8 +761,8 @@ error:
void grpc_jwt_verifier_verify(grpc_jwt_verifier *verifier,
grpc_pollset *pollset, const char *jwt,
const char *audience,
- grpc_jwt_verification_done_cb cb,
- void *user_data) {
+ grpc_jwt_verification_done_cb cb, void *user_data,
+ grpc_call_list *call_list) {
const char *dot = NULL;
grpc_json *json;
jose_header *header = NULL;
@@ -792,7 +795,8 @@ void grpc_jwt_verifier_verify(grpc_jwt_verifier *verifier,
if (GPR_SLICE_IS_EMPTY(signature)) goto error;
retrieve_key_and_verify(
verifier_cb_ctx_create(verifier, pollset, header, claims, audience,
- signature, jwt, signed_jwt_len, user_data, cb));
+ signature, jwt, signed_jwt_len, user_data, cb),
+ call_list);
return;
error: