RT3 and LDAP-Auth: fix for a local problem

I suddenly experienced problems when trying to enable LDAP
authentication in RT3. After a long debugging session, the the problem
seems to be that $self->Name is not properly expanded in the search
query build process.

We changed the relevant code to do the following[1] unpleasant thing,
which fixes things for us over here. To be honest, we don’t know what’s
going on here, but the pack/unpack seems to fix our problem (User_Local
got stuck and never returned from the search).

Regards,
Harald

[1]
— /usr/src/RT3/User_Local.pm 2003-05-01 13:10:55.000000000 +0200
+++ /opt/rt3/lib/RT/User_Local.pm 2003-05-02 19:45:55.000000000
+0200
@@ -79,5 +79,9 @@
}

  •           my $filter = "(&(&(objectclass=person)(" . 
    

$RT::LdapUidAttr . “=” . $self->Name ."))$RT::LdapFilter)";

  •           # HW+TB 02MAY2003
    
  •                   my $uid= $self->Name;
    
  •                   $uid = pack "c30", (unpack "c30", $uid);
    
  •                   my $filter = "(&(&(objectclass=person)(" . 
    

$RT::LdapUidAttr . “=” . $uid ."))$RT::LdapFilter)";
$RT::Logger->debug(“GetExternalUserWithLDAP: First
search filter ‘$filter’\n”);
$mesg = $ldap->search(base => $RT::LdapBase,

Harald Wagener * FCB/Wilkens * An der Alster 42 * 20099 Hamburg