]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-sasl: Allow passing scope for failures
authorAki Tuomi <aki.tuomi@open-xchange.com>
Mon, 16 Mar 2026 06:48:54 +0000 (08:48 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Mon, 30 Mar 2026 09:04:00 +0000 (09:04 +0000)
src/lib-sasl/sasl-server-mech-oauth2.c
src/lib-sasl/sasl-server-oauth2.h

index 8d67094fd1b8d6bd336de1131698c2839ba26b07..7937ff37cc9a41ac1614e21256bd28bc78896def 100644 (file)
@@ -83,8 +83,13 @@ oauth2_fail(struct oauth2_auth_request *oauth2_req,
 static void
 oauth2_fail_status(struct oauth2_auth_request *oauth2_req, const char *status)
 {
+       /* need to get the configured scopes */
+       const struct oauth2_auth_mech *oauth2_mech =
+               container_of(oauth2_req->request.mech,
+                            const struct oauth2_auth_mech, mech);
        const struct sasl_server_oauth2_failure failure = {
                .status = status,
+               .scope = oauth2_mech->set.scope,
        };
 
        oauth2_fail(oauth2_req, &failure);
@@ -484,6 +489,7 @@ mech_oauth2_register(struct sasl_server_instance *sinst,
        if (set != NULL) {
                oauth2_mech->set.openid_configuration_url =
                        p_strdup(mech->pool, set->openid_configuration_url);
+               oauth2_mech->set.scope = p_strdup(mech->pool, set->scope);
        }
 }
 
index cf396accb2ddf035f4b3b8ead20eb1e1a18aa2a7..440b3c8f234634899a8febeadad36d68225e28ad 100644 (file)
@@ -15,6 +15,7 @@ struct sasl_server_oauth2_request {
 
 struct sasl_server_oauth2_settings {
        const char *openid_configuration_url;
+       const char *scope;
 };
 
 struct sasl_server_oauth2_funcs {