MT#65464 fix LDAP login 500 when user lookup fails

get_user_dn called ->dn on an undefined search result when LDAP
lookup failed, causing login_jwt to crash instead of returning 403.
Return early when no entry is found and log a clear message when the
LDAP URI is missing or the connection fails.

Change-Id: I5f00df840d304e4da2b35750c9c1f2e6972f1edb
(cherry picked from commit 3e1d3c09a5)
mr13.5
Rene Krenn 1 month ago
parent 0d888a3aa2
commit 6d8281f0f5

@ -35,7 +35,8 @@ sub get_user_dn {
my @args = @_;
my $user = shift;
my ($entry, $code, $message) = search_dn($c, $user, @args);
$user = $entry->dn() if $user;
return undef unless $entry;
$user = $entry->dn();
my $dn_format = $c->config->{ldap_admin}->{format} ||= '%s';
return sprintf($dn_format, $user, @args);
@ -100,7 +101,7 @@ sub search_dn {
}
} else {
$message = $@;
$message = $@ || ($ldap_uri ? 'failed to connect to ldap server' : 'ldap uri not configured');
$c->log->debug($label . $message);
return (undef, $ldapconnecterror, $message);
}

Loading…
Cancel
Save