[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