Skip to content

Commit 090e212

Browse files
committed
add support for introspect.params
- see OpenIDC/mod_oauth2#44 - bump to 1.4.5.5rc1 Signed-off-by: Hans Zandbelt <[email protected]>
1 parent 61b04a1 commit 090e212

File tree

4 files changed

+26
-6
lines changed

4 files changed

+26
-6
lines changed

ChangeLog

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
01/22/2024
1+
03/01/2023
2+
- add support for introspect.params; see https://github.com/zmartzone/mod_oauth2/discussions/44
3+
- bump to 1.4.5.5rc1
4+
5+
01/22/2023
26
- hack for el7/x86 where openssl 1.0.2 and openssl 1.1.1 are installed for respectively Apache and NGINX 1.20.1
37
- bump to 1.4.5.5rc0
48

configure.ac

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
AC_INIT([liboauth2],[1.4.5.5rc0],[[email protected]])
1+
AC_INIT([liboauth2],[1.4.5.5rc1],[[email protected]])
22

33
AM_INIT_AUTOMAKE([foreign no-define subdir-objects])
44
AC_CONFIG_MACRO_DIR([m4])

src/oauth2.c

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,19 +274,24 @@ bool oauth2_http_ctx_auth_add(oauth2_log_t *log, oauth2_http_call_ctx_t *ctx,
274274

275275
_OAUTH2_CFG_CTX_TYPE_START(oauth2_introspect_ctx)
276276
oauth2_cfg_endpoint_t *endpoint;
277+
oauth2_nv_list_t *params;
277278
_OAUTH2_CFG_CTX_TYPE_END(oauth2_introspect_ctx)
278279

279280
_OAUTH2_CFG_CTX_INIT_START(oauth2_introspect_ctx)
280281
ctx->endpoint = NULL;
282+
ctx->params = NULL;
281283
_OAUTH2_CFG_CTX_INIT_END
282284

283285
_OAUTH2_CFG_CTX_CLONE_START(oauth2_introspect_ctx)
284286
dst->endpoint = oauth2_cfg_endpoint_clone(log, src->endpoint);
287+
dst->params = oauth2_nv_list_clone(log, src->params);
285288
_OAUTH2_CFG_CTX_CLONE_END
286289

287290
_OAUTH2_CFG_CTX_FREE_START(oauth2_introspect_ctx)
288291
if (ctx->endpoint)
289292
oauth2_cfg_endpoint_free(log, ctx->endpoint);
293+
if (ctx->params)
294+
oauth2_nv_list_free(log, ctx->params);
290295
_OAUTH2_CFG_CTX_FREE_END
291296

292297
_OAUTH2_CFG_CTX_FUNCS(oauth2_introspect_ctx)
@@ -331,7 +336,7 @@ static bool _oauth2_introspect_verify(oauth2_log_t *log,
331336
oauth2_nv_list_add(log, params, OAUTH2_INTROSPECT_TOKEN_TYPE_HINT,
332337
OAUTH2_INTROSPECT_TOKEN_TYPE_HINT_ACCESS_TOKEN);
333338

334-
// TODO: add configurable extra POST params
339+
oauth2_nv_list_merge_into(log, ctx->params, params);
335340

336341
if (oauth2_http_ctx_auth_add(
337342
log, http_ctx, oauth2_cfg_endpoint_get_auth(ctx->endpoint),
@@ -429,6 +434,11 @@ static char *_oauth2_verify_options_set_introspect_url_ctx(
429434
rv = oauth2_cfg_set_endpoint(log, ctx->endpoint, url, params,
430435
"introspect");
431436

437+
if (oauth2_parse_form_encoded_params(
438+
log, oauth2_nv_list_get(log, params, "introspect.params"),
439+
&ctx->params) == false)
440+
rv = oauth2_strdup("oauth2_parse_form_encoded_params failed");
441+
432442
oauth2_debug(log, "leave: %s", rv);
433443

434444
return rv;

test/check_oauth2.c

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -556,6 +556,9 @@ static char *oauth2_check_oauth2_serve_post(const char *request)
556556
if (oauth2_parse_form_encoded_params(_log, data, &params) ==
557557
false)
558558
goto error;
559+
token = oauth2_nv_list_get(_log, params, "key2");
560+
if ((token == NULL) || (strcmp(token, "two") != 0))
561+
goto error;
559562
token = oauth2_nv_list_get(_log, params, "token");
560563
if (token == NULL)
561564
goto error;
@@ -788,7 +791,9 @@ START_TEST(test_oauth2_verify_token_introspection)
788791
post_introspection_path, NULL);
789792

790793
rv = oauth2_cfg_token_verify_add_options(
791-
_log, &verify, "introspect", url, "introspect.ssl_verify=false");
794+
_log, &verify, "introspect", url,
795+
"introspect.ssl_verify=false&introspect.params=key1%3Done%26key2%"
796+
"3Dtwo");
792797
ck_assert_ptr_eq(rv, NULL);
793798

794799
rc = oauth2_token_verify(_log, NULL, verify, "bogus", &json_payload);
@@ -1002,8 +1007,9 @@ START_TEST(test_oauth2_verify_token_metadata)
10021007
url = oauth2_stradd(NULL, oauth2_check_http_base_url(), metadata_path,
10031008
NULL);
10041009

1005-
rv = oauth2_cfg_token_verify_add_options(_log, &verify, "metadata", url,
1006-
"&verify.exp=skip");
1010+
rv = oauth2_cfg_token_verify_add_options(
1011+
_log, &verify, "metadata", url,
1012+
"&verify.exp=skip&&introspect.params=key2%3Dtwo");
10071013
ck_assert_ptr_eq(rv, NULL);
10081014

10091015
// reference token

0 commit comments

Comments
 (0)