]> granicus.if.org Git - postgresql/commitdiff
Improve some LDAP authentication error messages
authorPeter Eisentraut <peter_e@gmx.net>
Wed, 3 Oct 2012 03:25:05 +0000 (23:25 -0400)
committerPeter Eisentraut <peter_e@gmx.net>
Wed, 3 Oct 2012 03:25:05 +0000 (23:25 -0400)
src/backend/libpq/auth.c

index 74036e2493b4ad9e3304b19bd78d3753ed9519ca..ca470e18835b531817673d656ae5b5fe8c293f3d 100644 (file)
@@ -2161,6 +2161,7 @@ CheckLDAPAuth(Port *port)
                char       *attributes[2];
                char       *dn;
                char       *c;
+               int                     count;
 
                /*
                 * Disallow any characters that we would otherwise need to escape,
@@ -2223,17 +2224,21 @@ CheckLDAPAuth(Port *port)
                        return STATUS_ERROR;
                }
 
-               if (ldap_count_entries(ldap, search_message) != 1)
+               count = ldap_count_entries(ldap, search_message);
+               if (count != 1)
                {
-                       if (ldap_count_entries(ldap, search_message) == 0)
+                       if (count == 0)
                                ereport(LOG,
-                                               (errmsg("LDAP search failed for filter \"%s\" on server \"%s\": no such user",
-                                                               filter, port->hba->ldapserver)));
+                                               (errmsg("LDAP user \"%s\" does not exist", port->user_name),
+                                                errdetail("LDAP search for filter \"%s\" on server \"%s\" returned no entries.",
+                                                                  filter, port->hba->ldapserver)));
                        else
                                ereport(LOG,
-                                               (errmsg("LDAP search failed for filter \"%s\" on server \"%s\": user is not unique (%ld matches)",
-                                                               filter, port->hba->ldapserver,
-                                                 (long) ldap_count_entries(ldap, search_message))));
+                                               (errmsg("LDAP user \"%s\" is not unique", port->user_name),
+                                                errdetail_plural("LDAP search for filter \"%s\" on server \"%s\" returned %d entry.",
+                                                                                 "LDAP search for filter \"%s\" on server \"%s\" returned %d entries.",
+                                                                                 count,
+                                                                                 filter, port->hba->ldapserver, count)));
 
                        pfree(filter);
                        ldap_msgfree(search_message);