@@ -, +, @@ invalid LDAP password was entered. --- C4/Auth.pm | 1 + C4/Auth_with_ldap.pm | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) --- a/C4/Auth.pm +++ a/C4/Auth.pm @@ -1544,6 +1544,7 @@ sub checkpw { if ($ldap) { $debug and print STDERR "## checkpw - checking LDAP\n"; my ($retval,$retcard,$retuserid) = checkpw_ldap(@_); # EXTERNAL AUTH + return 0 if $retval == -1; ($retval) and return ($retval,$retcard,$retuserid); } --- a/C4/Auth_with_ldap.pm +++ a/C4/Auth_with_ldap.pm @@ -88,7 +88,9 @@ sub search_method { base => $base, filter => $filter, # attrs => ['*'], - ) or die "LDAP search failed to return object."; + ); + die "LDAP search failed to return object : " . $search->error if $search->code; + my $count = $search->count; if ($search->code > 0) { warn sprintf("LDAP Auth rejected : %s gets %d hits\n", $filter->as_string, $count) . description($search); @@ -163,7 +165,7 @@ sub checkpw_ldap { my $cmpmesg = $db->compare( $userldapentry, attr=>'userpassword', value => $password ); if ($cmpmesg->code != 6) { warn "LDAP Auth rejected : invalid password for user '$userid'. " . description($cmpmesg); - return 0; + return -1; } } --