Skip to content

Commit 9a3a794

Browse files
committed
Enable jwt fetching from Query String
1 parent 891467e commit 9a3a794

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

src/ngx_http_auth_jwt_module.c

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -416,8 +416,24 @@ static char * getJwt(ngx_http_request_t *r, ngx_str_t auth_jwt_validation_type)
416416
ngx_str_t authorizationHeaderStr;
417417

418418
ngx_log_error(NGX_LOG_DEBUG, r->connection->log, 0, "auth_jwt_validation_type.len %d", auth_jwt_validation_type.len);
419-
420-
if (auth_jwt_validation_type.len == 0 || (auth_jwt_validation_type.len == sizeof("AUTHORIZATION") - 1 && ngx_strncmp(auth_jwt_validation_type.data, "AUTHORIZATION", sizeof("AUTHORIZATION") - 1)==0))
419+
if (r->args_start != 0 && r->args.len > 5) {
420+
char *f = strdup ((const char *) r->args.data);
421+
char *query = strtok(f, " "),
422+
*tokens = query,
423+
*p = query;
424+
while ((p = strsep (&tokens, "&\n"))) {
425+
char *var = strtok (p, "="),
426+
*val = NULL;
427+
if (var && (val = strtok (NULL, "="))) {
428+
if (strcmp(var, "jwt") == 0) {
429+
jwtCookieValChrPtr = strdup(val);
430+
break;
431+
}
432+
}
433+
}
434+
free(f);
435+
}
436+
else if (auth_jwt_validation_type.len == 0 || (auth_jwt_validation_type.len == sizeof("AUTHORIZATION") - 1 && ngx_strncmp(auth_jwt_validation_type.data, "AUTHORIZATION", sizeof("AUTHORIZATION") - 1)==0))
421437
{
422438
// using authorization header
423439
authorizationHeader = search_headers_in(r, authorizationHeaderName.data, authorizationHeaderName.len);

0 commit comments

Comments
 (0)