]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: db-oauth2 - Move db_oauth2_local_validation
authorAki Tuomi <aki.tuomi@open-xchange.com>
Mon, 25 May 2020 18:42:08 +0000 (21:42 +0300)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 27 May 2020 07:51:31 +0000 (10:51 +0300)
Simplifies next change

src/auth/db-oauth2.c

index 8b6d731fbc267d1092aaa1b16033d3ef294043f8..4c3af9742fae6b127d31697a5cad1de1efa188e9 100644 (file)
@@ -632,6 +632,26 @@ static void db_oauth2_lookup_introspect(struct db_oauth2_request *req)
                                              db_oauth2_introspect_continue, req);
 }
 
+static int db_oauth2_local_validation(struct db_oauth2_request *req)
+{
+       bool is_jwt;
+       const char *error = NULL;
+       enum passdb_result passdb_result;
+       ARRAY_TYPE(oauth2_field) fields;
+       t_array_init(&fields, 8);
+       if (oauth2_try_parse_jwt(&req->db->oauth2_set, req->auth_request->mech_password,
+                                &fields, &is_jwt, &error) < 0) {
+               if (!is_jwt)
+                       return -1;
+               passdb_result = PASSDB_RESULT_PASSWORD_MISMATCH;
+       } else {
+               db_oauth2_fields_merge(req, &fields);
+               db_oauth2_process_fields(req, &passdb_result, &error);
+       }
+       db_oauth2_callback(req, passdb_result, error);
+       return 0;
+}
+
 static void
 db_oauth2_lookup_continue(struct oauth2_request_result *result,
                          struct db_oauth2_request *req)
@@ -712,28 +732,6 @@ db_oauth2_lookup_passwd_grant(struct oauth2_request_result *result,
        db_oauth2_callback(req, passdb_result, error);
 }
 
-static int db_oauth2_local_validation(struct db_oauth2_request *req)
-{
-       bool is_jwt;
-       struct auth_request *request = req->auth_request;
-       const char *error = NULL;
-       enum passdb_result passdb_result;
-       ARRAY_TYPE(oauth2_field) fields;
-       t_array_init(&fields, 8);
-
-       if (oauth2_try_parse_jwt(&req->db->oauth2_set, request->mech_password,
-                                &fields, &is_jwt, &error) < 0) {
-               if (!is_jwt)
-                       return -1;
-               passdb_result = PASSDB_RESULT_PASSWORD_MISMATCH;
-       } else {
-               db_oauth2_fields_merge(req, &fields);
-               db_oauth2_process_fields(req, &passdb_result, &error);
-       }
-       db_oauth2_callback(req, passdb_result, error);
-       return 0;
-}
-
 #undef db_oauth2_lookup
 void db_oauth2_lookup(struct db_oauth2 *db, struct db_oauth2_request *req,
                      const char *token, struct auth_request *request,