Jump to content
EduGeek EdSec 2026 is Go! 27th Oct in Derby! Join us for a day of EdTech security focused talks, networking, and an evening social ×

Recommended Posts

Posted (edited)

I am trying to make use of RT and the ExternalAuth module for it. However I am getting this error:

 

error: Can't coerce array into hash at /usr/local/share/request-tracker3.6/lib/RT/User_Vendor.pm line 176.

context:

...

172: # Now let's get connected

173: my $ldap = $self->_GetBoundLdapObj($config);

174: next unless ($ldap);

175:

176: $filter = Net::LDAP::Filter->new( '(&(' .

177: $attr_map->{'Name'} .

178: '=' .

179: $self->Name .

180: ')' .

...

code stack: /usr/local/share/request-tracker3.6/lib/RT/User_Vendor.pm:176

/usr/local/share/request-tracker3.6/lib/RT/User_Vendor.pm:359

/usr/share/request-tracker3.6/html/Callbacks/ExternalAuth/autohandler/Auth:35

/usr/share/request-tracker3.6/html/Elements/Callback:83

/usr/share/request-tracker3.6/html/autohandler:227

 

The corresponding chunk of code in the User_Vendor.pm file is below:

 

my $base            = $config->{'base'};
           my $filter          = $config->{'filter'};
           my $group           = $config->{'group'};
           my $group_attr      = $config->{'group_attr'};
           my $attr_map        = $config->{'attr_map'};
           my @attrs           = ('dn');

           # Empty parentheses as filters cause Net::LDAP to barf.
           # We take care of this by using Net::LDAP::Filter, but
           # there's no harm in fixing this right now.
           if ($filter eq "()") { undef($filter) };

           # Now let's get connected
           my $ldap = $self->_GetBoundLdapObj($config);
           next unless ($ldap);

           $filter = Net::LDAP::Filter->new(   '(&(' .
                                               $attr_map->{'Name'} .
                                               '=' .
                                               $self->Name .
                                               ')' .
                                               $filter .
                                               ')'
                                           );

 

I'm not a perl guru, so can anyone give me any clues as to what the problem is? Net::LDAP is installed as it should be.

Edited by localzuk
Posted
error: Can't coerce array into hash at /usr/local/share/request-tracker3.6/lib/RT/User_Vendor.pm line 176.

 

Check the obvious bits first - are you trying to pass an array to a function in User_Vendor.pm instead of a hash?

 

--

David Hicks

Posted
Check the obvious bits first - are you trying to pass an array to a function in User_Vendor.pm instead of a hash?

 

--

David Hicks

 

It's not my code, so I haven't the foggiest... And I think it is complaining that a hash is being sent instead of an array.

 

However, I can safely say I don't need to know about this any more, as I now have external authentication working using Apache PAM, SAMBA/Winbind and WebExternalAuth in RT.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...