[rt-users] 3.8.6: WritableAttributes error in Web.pm's AttemptExternalAuth

Philip Shore pms52 at cam.ac.uk
Mon Nov 30 13:38:14 EST 2009


I am trying to upgrade our 3.6.5 RT instance to 3.8.6 and I am getting 
an error at the point of first log on.

There is new code in RT 3.8.6 that wasn't present in 3.8.5 that is 
throwing an error for me:


error:       Can't locate object method "WritableAttributes" via package 
"pms52" (perhaps you forgot to
load "pms52"?) at /opt/rt3/bin/../lib/RT/Interface/Web.pm line 367, 
<DATA> line 276.
context:      
...      
363:      # now get user specific information, to better create our user.
364:      my $new_user_info = 
RT::Interface::Web::WebExternalAutoInfo($user);
365:      
366:      # set the attributes that have been defined.
367:      foreach my $attribute ( $user->WritableAttributes ) {
368:      $m->callback(
369:      Attribute => $attribute,
370:      User => $user,
371:      UserInfo => $new_user_info,
...      
code stack:     
/opt/rt3/bin/../lib/RT/Interface/Web.pm:367
/opt/rt3/bin/../lib/RT/Interface/Web.pm:197
/opt/rt3/share/html/autohandler:53


I have RT configured to use WebExternalAuto, and so have an Apache 
module providing the userid via REMOTE_USER and user info collected via 
ldap.  I logon with username "pms52" which appears in the error. I can 
also see in the rt log that it has successfully retrieved my information 
from our ldap server.

I am not a perl programmer but it looks to me like the RT code at line 
367 is expecting a database object but has a String instead. 

The AttemptExternalAuth subrouting is new in RT 3.8.6.  Is there 
something I have not configured correctly or is there a bug ?  I have 
pasted what I think are the relevant parts of our RT_SiteConfig below.

Many thanks,
Philip Shore.


Set($AuthMethods, ['Internal']);

Set($WebExternalAuth , 1);
Set($WebExternalAuto , 1);
Set($AutoCreate, { Privileged => 0 } );

Set($LdapExternalInfo, 1);
Set($LdapAutoCreateNonLdapUsers, 1);
Set($LdapAttrMap, {'Name' => 'uid',
                   'EmailAddress' => 'mail',
                   'Organization' => 'instID',
                   'RealName' => 'displayName',
                   'NickName' => 'title',
                   'ExternalContactInfoId' => 'mailAlternative',
                   'ExternalAuthId' => 'uid',
                   'Gecos' => 'uid',
                   'WorkPhone' => 'telephoneNumber',
                   'Address1' => 'postalAddress',
                   'Address2' => 'postalAddress'}
);





More information about the rt-users mailing list