challenger

OAuth 2.0-based authentication service that validates user can receive messages at a certain address
Log | Files | Refs | Submodules | README | LICENSE

commit 3b96a9805a59c33681484baeb5f8793362dd1669
parent 326b063a3f0c83de03a5c0f247e70e33415e0fdf
Author: Christian Grothoff <christian@grothoff.org>
Date:   Mon,  6 Jul 2026 11:20:31 +0200

properly support case where redirect_uri is omitted and only registered

Diffstat:
Msrc/challengerdb/authorize_start.c | 35++++++++++++++++++-----------------
1 file changed, 18 insertions(+), 17 deletions(-)

diff --git a/src/challengerdb/authorize_start.c b/src/challengerdb/authorize_start.c @@ -30,19 +30,19 @@ enum GNUNET_DB_QueryStatus CHALLENGERDB_authorize_start (struct CHALLENGERDB_PostgresContext *ctx, - const struct CHALLENGER_ValidationNonceP *nonce, - uint64_t client_id, - const char *client_scope, - const char *client_state, - const char *client_redirect_uri, - const char *code_challenge, - uint32_t code_challenge_method, - json_t **last_address, - uint32_t *address_attempts_left, - uint32_t *pin_transmissions_left, - uint32_t *auth_attempts_left, - bool *solved, - struct GNUNET_TIME_Absolute *last_tx_time) + const struct CHALLENGER_ValidationNonceP *nonce, + uint64_t client_id, + const char *client_scope, + const char *client_state, + const char *client_redirect_uri, + const char *code_challenge, + uint32_t code_challenge_method, + json_t **last_address, + uint32_t *address_attempts_left, + uint32_t *pin_transmissions_left, + uint32_t *auth_attempts_left, + bool *solved, + struct GNUNET_TIME_Absolute *last_tx_time) { struct GNUNET_PQ_QueryParam params[] = { GNUNET_PQ_query_param_auto_from_type (nonce), @@ -84,12 +84,14 @@ CHALLENGERDB_authorize_start (struct CHALLENGERDB_PostgresContext *ctx, "UPDATE validations SET" " client_scope=$3" " ,client_state=$4" - " ,client_redirect_uri=$5::VARCHAR" + " ,client_redirect_uri=COALESCE($5::VARCHAR,client_redirect_uri)" " ,code_challenge=$6" " ,code_challenge_method=$7" " WHERE nonce=$1" " AND client_serial_id=$2" - " AND ($5::VARCHAR=COALESCE(client_redirect_uri,$5::VARCHAR))" + " AND ( ($5::VARCHAR=client_redirect_uri)" + " OR ( ($5::VARCHAR IS NULL)" + " AND (client_redirect_uri IS NOT NULL) ) )" " RETURNING" " address" " ,address_attempts_left" @@ -101,4 +103,4 @@ CHALLENGERDB_authorize_start (struct CHALLENGERDB_PostgresContext *ctx, "authorize_start_validation", params, rs); -} -\ No newline at end of file +}