From: Jean-Philippe Lang Date: Sun, 3 Jun 2012 08:49:46 +0000 (+0000) Subject: Fixed that Redmine.pm does not support "bind as user" ldap authentication (#11046). X-Git-Tag: 2.1.0~492 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=3142183b3052b520126645eaec01526810e2afff;p=redmine.git Fixed that Redmine.pm does not support "bind as user" ldap authentication (#11046). Patch contributed by Adi Kriegisch. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9755 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/extra/svn/Redmine.pm b/extra/svn/Redmine.pm index 3125d510e..fbaf177a3 100644 --- a/extra/svn/Redmine.pm +++ b/extra/svn/Redmine.pm @@ -366,12 +366,19 @@ sub is_member { ); $sthldap->execute($auth_source_id); while (my @rowldap = $sthldap->fetchrow_array) { + my $bind_as = $rowldap[3] ? $rowldap[3] : ""; + my $bind_pw = $rowldap[4] ? $rowldap[4] : ""; + if ($bind_as =~ m/\$login/) { + # replace $login with $redmine_user and use $redmine_pass + $bind_as =~ s/\$login/$redmine_user/g; + $bind_pw = $redmine_pass + } my $ldap = Authen::Simple::LDAP->new( host => ($rowldap[2] eq "1" || $rowldap[2] eq "t") ? "ldaps://$rowldap[0]:$rowldap[1]" : $rowldap[0], port => $rowldap[1], basedn => $rowldap[5], - binddn => $rowldap[3] ? $rowldap[3] : "", - bindpw => $rowldap[4] ? $rowldap[4] : "", + binddn => $bind_as, + bindpw => $bind_pw, filter => "(".$rowldap[6]."=%s)" ); my $method = $r->method;