From: Stephan Bosch Date: Sun, 22 Oct 2023 22:10:23 +0000 (+0200) Subject: auth: auth-request - Add auth_request_db_log_unknown_user() and use it X-Git-Tag: 2.4.0~1880 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8bd0cacf97cd0da6533a3bd7dec5942b17a10812;p=thirdparty%2Fdovecot%2Fcore.git auth: auth-request - Add auth_request_db_log_unknown_user() and use it --- diff --git a/src/auth/auth-request.c b/src/auth/auth-request.c index 26ca84c868..69369986cf 100644 --- a/src/auth/auth-request.c +++ b/src/auth/auth-request.c @@ -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) { diff --git a/src/auth/auth-request.h b/src/auth/auth-request.h index 583d20d280..5414535fd2 100644 --- a/src/auth/auth-request.h +++ b/src/auth/auth-request.h @@ -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); diff --git a/src/auth/db-passwd-file.c b/src/auth/db-passwd-file.c index 057f7afe8f..25e6ce7cbf 100644 --- a/src/auth/db-passwd-file.c +++ b/src/auth/db-passwd-file.c @@ -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; diff --git a/src/auth/passdb-bsdauth.c b/src/auth/passdb-bsdauth.c index 0fe0c5be62..509487f3ea 100644 --- a/src/auth/passdb-bsdauth.c +++ b/src/auth/passdb-bsdauth.c @@ -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; } diff --git a/src/auth/passdb-cache.c b/src/auth/passdb-cache.c index 0a696f4fef..269ce49248 100644 --- a/src/auth/passdb-cache.c +++ b/src/auth/passdb-cache.c @@ -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; diff --git a/src/auth/passdb-dict.c b/src/auth/passdb-dict.c index dcdfc85771..fd8eb0775c 100644 --- a/src/auth/passdb-dict.c +++ b/src/auth/passdb-dict.c @@ -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) diff --git a/src/auth/passdb-ldap.c b/src/auth/passdb-ldap.c index 2c14ff1597..331e7414c8 100644 --- a/src/auth/passdb-ldap.c +++ b/src/auth/passdb-ldap.c @@ -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), diff --git a/src/auth/passdb-pam.c b/src/auth/passdb-pam.c index d8ecf4bc76..822f3755f1 100644 --- a/src/auth/passdb-pam.c +++ b/src/auth/passdb-pam.c @@ -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); diff --git a/src/auth/passdb-passwd.c b/src/auth/passdb-passwd.c index 2147b64e40..e52e7f93b8 100644 --- a/src/auth/passdb-passwd.c +++ b/src/auth/passdb-passwd.c @@ -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; } diff --git a/src/auth/passdb-sql.c b/src/auth/passdb-sql.c index 24d7ae86e3..120e54f4ec 100644 --- a/src/auth/passdb-sql.c +++ b/src/auth/passdb-sql.c @@ -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); diff --git a/src/auth/userdb-dict.c b/src/auth/userdb-dict.c index a060af7010..b620c571ff 100644 --- a/src/auth/userdb-dict.c +++ b/src/auth/userdb-dict.c @@ -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) diff --git a/src/auth/userdb-ldap.c b/src/auth/userdb-ldap.c index 20ecd9179e..29d409ab57 100644 --- a/src/auth/userdb-ldap.c +++ b/src/auth/userdb-ldap.c @@ -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"); diff --git a/src/auth/userdb-passwd.c b/src/auth/userdb-passwd.c index 531dfa983b..d94346a05b 100644 --- a/src/auth/userdb-passwd.c +++ b/src/auth/userdb-passwd.c @@ -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; } diff --git a/src/auth/userdb-sql.c b/src/auth/userdb-sql.c index 47d6b210e6..9a3beaf253 100644 --- a/src/auth/userdb-sql.c +++ b/src/auth/userdb-sql.c @@ -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;