]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: auth-request - Add auth_request_db_log_unknown_user() and use it
authorStephan Bosch <stephan.bosch@open-xchange.com>
Sun, 22 Oct 2023 22:10:23 +0000 (00:10 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Wed, 29 Nov 2023 08:29:04 +0000 (08:29 +0000)
14 files changed:
src/auth/auth-request.c
src/auth/auth-request.h
src/auth/db-passwd-file.c
src/auth/passdb-bsdauth.c
src/auth/passdb-cache.c
src/auth/passdb-dict.c
src/auth/passdb-ldap.c
src/auth/passdb-pam.c
src/auth/passdb-passwd.c
src/auth/passdb-sql.c
src/auth/userdb-dict.c
src/auth/userdb-ldap.c
src/auth/userdb-passwd.c
src/auth/userdb-sql.c

index 26ca84c86834a5021f52a8f3dc03ac5c3bf29724..69369986cf5c08d27fc00d9c16b90fb68dc1cf98 100644 (file)
@@ -2457,6 +2457,12 @@ void auth_request_db_log_password_mismatch(struct auth_request *request)
                                       AUTH_LOG_MSG_PASSWORD_MISMATCH);
 }
 
+void auth_request_db_log_unknown_user(struct auth_request *request)
+{
+       auth_request_log_login_failure(request, authdb_event(request),
+                                      "unknown user");
+}
+
 void auth_request_db_log_login_failure(struct auth_request *request,
                                       const char *message)
 {
index 583d20d280caeba8a476fa98f74809f1d4fda522..5414535fd2732180d34df1e0469f6475dd5f75db 100644 (file)
@@ -386,6 +386,7 @@ void auth_request_log_unknown_user(struct auth_request *auth_request,
 void auth_request_log_login_failure(struct auth_request *request,
                                    struct event *event, const char *message);
 void auth_request_db_log_password_mismatch(struct auth_request *auth_request);
+void auth_request_db_log_unknown_user(struct auth_request *auth_request);
 void auth_request_db_log_login_failure(struct auth_request *request,
                                       const char *message);
 
index 057f7afe8f7ceb354101bbe099e399c4a874923a..25e6ce7cbfca47909a1041271e12129fbf701368 100644 (file)
@@ -484,7 +484,7 @@ int db_passwd_file_lookup(struct db_passwd_file *db,
 
        *user_r = hash_table_lookup(pw->users, str_c(username));
        if (*user_r == NULL) {
-               auth_request_log_unknown_user(request, authdb_event(request));
+               auth_request_db_log_unknown_user(request);
                return 0;
        }
        return 1;
index 0fe0c5be62da92ff1ce064b61e9bc2c59bc054bf..509487f3eaa780abf1c4fe9f10f5795bb6b49389 100644 (file)
@@ -30,7 +30,7 @@ bsdauth_verify_plain(struct auth_request *request, const char *password,
                callback(PASSDB_RESULT_INTERNAL_FAILURE, request);
                return;
        case 0:
-               auth_request_log_unknown_user(request, authdb_event(request));
+               auth_request_db_log_unknown_user(request);
                callback(PASSDB_RESULT_USER_UNKNOWN, request);
                return;
        }
index 0a696f4fef5bb532113e4a6421e6ab59bac2985b..269ce49248afc7a1ae526ef03b9b5e0f4c713812 100644 (file)
@@ -86,7 +86,7 @@ bool passdb_cache_verify_plain(struct auth_request *request, const char *key,
 
        if (*value == '\0') {
                /* negative cache entry */
-               auth_request_log_unknown_user(request, authdb_event(request));
+               auth_request_db_log_unknown_user(request);
                *result_r = PASSDB_RESULT_USER_UNKNOWN;
                auth_request_verify_plain_callback_finish(*result_r, request);
                return TRUE;
index dcdfc85771033ba30e78c9ea0623e216ef5c554c..fd8eb0775c4933a0bdfa2241f904db75b67c6878 100644 (file)
@@ -61,8 +61,7 @@ passdb_dict_lookup_key(struct auth_request *auth_request,
        if (ret < 0)
                return PASSDB_RESULT_INTERNAL_FAILURE;
        else if (ret == 0) {
-               auth_request_log_unknown_user(auth_request,
-                                             authdb_event(auth_request));
+               auth_request_db_log_unknown_user(auth_request);
                return PASSDB_RESULT_USER_UNKNOWN;
        } else {
                if (dict_query_save_results(auth_request, module->conn, iter) < 0)
index 2c14ff1597eba06b216f1d1945a4865b478d1cbf..331e7414c8c92d0dc019e16c5533733ff4e9e78b 100644 (file)
@@ -75,8 +75,7 @@ ldap_lookup_finish(struct auth_request *auth_request,
                passdb_result = PASSDB_RESULT_INTERNAL_FAILURE;
        } else if (ldap_request->entries == 0) {
                passdb_result = PASSDB_RESULT_USER_UNKNOWN;
-               auth_request_log_unknown_user(auth_request,
-                                             authdb_event(auth_request));
+               auth_request_db_log_unknown_user(auth_request);
        } else if (ldap_request->entries > 1) {
                e_error(authdb_event(auth_request),
                        "pass_filter matched multiple objects, aborting");
@@ -155,8 +154,7 @@ ldap_auth_bind_callback(struct ldap_connection *conn,
                        passdb_result = PASSDB_RESULT_PASSWORD_MISMATCH;
                } else if (ret == LDAP_NO_SUCH_OBJECT) {
                        passdb_result = PASSDB_RESULT_USER_UNKNOWN;
-                       auth_request_log_unknown_user(
-                               auth_request, authdb_event(auth_request));
+                       auth_request_db_log_unknown_user(auth_request);
                } else {
                        e_error(authdb_event(auth_request),
                                "ldap_bind() failed: %s",
@@ -217,8 +215,7 @@ ldap_bind_lookup_dn_fail(struct auth_request *auth_request,
                passdb_result = PASSDB_RESULT_INTERNAL_FAILURE;
        else if (request->entries == 0) {
                passdb_result = PASSDB_RESULT_USER_UNKNOWN;
-               auth_request_log_unknown_user(auth_request,
-                                             authdb_event(auth_request));
+               auth_request_db_log_unknown_user(auth_request);
        } else {
                i_assert(request->entries > 1);
                e_error(authdb_event(auth_request),
index d8ecf4bc762a594613cb65d5a11a33403e235bfd..822f3755f144ef0ee680fab5c71cd9ebc2e9f10c 100644 (file)
@@ -180,8 +180,7 @@ static int try_pam_auth(struct auth_request *request, pam_handle_t *pamh,
                        e_info(authdb_event(request), "%s", str);
                } else {
                        if (status == PAM_USER_UNKNOWN)
-                               auth_request_log_unknown_user(
-                                       request, authdb_event(request));
+                               auth_request_db_log_unknown_user(request);
                        else {
                                e_info(authdb_event(request),
                                       "%s", str);
index 2147b64e40ce87857ea961eaf97aa88f18b8c7a3..e52e7f93b8a615ec9f32db5d79ac6de34a4be292 100644 (file)
@@ -22,7 +22,7 @@ passwd_lookup(struct auth_request *request, struct passwd *pw_r)
                        "getpwnam() failed: %m");
                return PASSDB_RESULT_INTERNAL_FAILURE;
        case 0:
-               auth_request_log_unknown_user(request, authdb_event(request));
+               auth_request_db_log_unknown_user(request);
                return PASSDB_RESULT_USER_UNKNOWN;
        }
 
index 24d7ae86e3fc2459bfee00f51931c79164bcea04..120e54f4ec7914a79cba686f53311139c85d29fe 100644 (file)
@@ -82,8 +82,7 @@ static void sql_query_callback(struct sql_result *result,
                                module->conn->set.password_query);
                }
        } else if (ret == 0) {
-               auth_request_log_unknown_user(auth_request,
-                                             authdb_event(auth_request));
+               auth_request_db_log_unknown_user(auth_request);
                passdb_result = PASSDB_RESULT_USER_UNKNOWN;
        } else {
                sql_query_save_results(result, sql_request);
index a060af70101a86b678a88c95ba25b6dbfbfe70a6..b620c571fffcddb6b2bf5de1b6933fa59cb1b182 100644 (file)
@@ -68,8 +68,7 @@ static void userdb_dict_lookup(struct auth_request *auth_request,
        if (ret < 0)
                userdb_result = USERDB_RESULT_INTERNAL_FAILURE;
        else if (ret == 0) {
-               auth_request_log_unknown_user(auth_request,
-                                             authdb_event(auth_request));
+               auth_request_db_log_unknown_user(auth_request);
                userdb_result = USERDB_RESULT_USER_UNKNOWN;
        } else {
                if (dict_query_save_results(auth_request, iter) < 0)
index 20ecd9179e783431d78934461879417a388e9058..29d409ab573622f5aaeea85a03c659c2343b66e5 100644 (file)
@@ -67,8 +67,7 @@ userdb_ldap_lookup_finish(struct auth_request *auth_request,
                result = USERDB_RESULT_INTERNAL_FAILURE;
        } else if (urequest->entries == 0) {
                result = USERDB_RESULT_USER_UNKNOWN;
-               auth_request_log_unknown_user(auth_request,
-                                             authdb_event(auth_request));
+               auth_request_db_log_unknown_user(auth_request);
        } else if (urequest->entries > 1) {
                e_error(authdb_event(auth_request),
                        "user_filter matched multiple objects, aborting");
index 531dfa983ba8a1107fc31c8dc11392af39ebeb83..d94346a05b4e4e0dd45660081024024dab5a2133 100644 (file)
@@ -101,8 +101,7 @@ static void passwd_lookup(struct auth_request *auth_request,
                callback(USERDB_RESULT_INTERNAL_FAILURE, auth_request);
                return;
        case 0:
-               auth_request_log_unknown_user(auth_request,
-                                             authdb_event(auth_request));
+               auth_request_db_log_unknown_user(auth_request);
                callback(USERDB_RESULT_USER_UNKNOWN, auth_request);
                return;
        }
index 47d6b210e6a193ae6b40b1ee02c1b039d4665c3a..9a3beaf25305a6d4ab4074ed10ea8856737cdc59 100644 (file)
@@ -77,8 +77,7 @@ static void sql_query_callback(struct sql_result *sql_result,
                }
        } else if (ret == 0) {
                result = USERDB_RESULT_USER_UNKNOWN;
-               auth_request_log_unknown_user(auth_request,
-                                             authdb_event(auth_request));
+               auth_request_db_log_unknown_user(auth_request);
        } else {
                sql_query_get_result(sql_result, auth_request);
                result = USERDB_RESULT_OK;