Undefined subroutine&RT::Authen::ExternalAuth::UserExists - Probably Resolved

Ripped out everything, including perl, apache2, rt, and the equine
companions they ambulated towards me with. Obliterated any file that
looked like it was even thinking of the string “authen”. Put it all
back very slowly.

While i’ve made some mistakes in my LDAP config and I’m not successfully
authenticating, I get a proper “Your username or password is incorrect”
on the login page, not the horrible perl error from before.

Not really sure what could’ve done it. At some point when 06 was out, I
think I tried using the CPAN version of that: I thought I blew all those
files away, but at this point I’m betting I missed one.

I hope this info is useful to someone at some point. Now I go back to
trying to sweet-talk my AD server.

Rob Munsch
IT Administrator
http://www.PhillyCarShare.org
Our wheels. Your freedom.
215-730-0988 x138

-----Original Message-----
From: rt-users-bounces@lists.bestpractical.com [mailto:rt-users-
bounces@lists.bestpractical.com] On Behalf Of Robert Munsch
Sent: Tuesday, November 18, 2008 8:28 AM
To: RT Users
Subject: [rt-users] Undefined
subroutine&RT::Authen::ExternalAuth::UserExists

Hello,

I’m sorry I don’t know more about this, but I never will at this rate.
I don’t know where to begin. I still get

Undefined subroutine &RT::Authen::ExternalAuth::UserExists

Despite multiple reinstalls and following various flavors of install
instructions and HOWTOs.

I see the sub UserExists is defined in

/opt/rt3/local/plugins/RT-Authen-ExternalAuth/lib/RT/Authen/ExternalAuth

.pm
Which is readable by the webserver user and group. So:

  • is this a perl problem, it not seeing that sub?
  • is it the webserver, not finding the file?
  • is it something else entirely?

Hours of searching generic ‘undef sub’ perl issues are too varied to
be
useful (tho I’ve checked over a few things), and the only results for
this particular issue are my own messages on this list. If you think
I
should be bugging someone else about this, that’s fine with me: any
idea
who…?

Thanks,


Rob Munsch
IT Administrator
http://www.PhillyCarShare.org
Our wheels. Your freedom.
215-730-0988 x138

-----Original Message-----
From: rt-users-bounces@lists.bestpractical.com [mailto:rt-users-
bounces@lists.bestpractical.com] On Behalf Of Robert Munsch
Sent: Friday, November 14, 2008 4:50 PM
To: mike.peachey@jennic.com
Cc: RT Users
Subject: Re: [rt-users] Undefined Subroutine (was: CALLING
EXTERNALAUTHTESTERS - v0.07_01 nowavailable.)

I’ve checked and I’m not sure what’s going wrong, still. Basic
config
seems OK. ExternalAuth is in place and fully (re-)installed.
LDAP.pm
exists and is properly readable by the webserver:

root@data:/opt/rt3/var/log# ls -lah

/opt/rt3/local/plugins/RT-Authen-
ExternalAuth/lib/RT/Authen/ExternalAuth/
total 44K
drwxr-xr-x 2 www-data www-data 4.0K 2008-11-14 16:37 .
drwxr-xr-x 3 www-data www-data 4.0K 2008-11-14 16:37 …
-r–r–r-- 1 www-data www-data 13K 2008-11-06 13:20 DBI.pm
-r–r–r-- 1 www-data www-data 18K 2008-11-06 13:36 LDAP.pm

And yet I still get

Undefined subroutine &RT::Authen::ExternalAuth::UserExists called at

/opt/rt3/local/plugins/RT-Authen-ExternalAuth/html/Callbacks/ExternalAut

h/autohandler/Auth line 39.

When I attempt any kind of login. Line 39 is the last line in this
block:

    # Unless we have loaded a valid user with a UserID
    # check if user exists externally and autocreate if it does
    unless ($session{'CurrentUser'}->Id) {
        if(RT::Authen::ExternalAuth::UserExists($user)){

and my debug-level logs for this show the following (password is
bogus

what I actually typed, just not a real password):


[Fri Nov 14 21:37:54 2008] [error]: Working around bug in RT and
reloading RT::User

(/opt/rt3/local/plugins/RT-Authen-ExternalAuth/html/Callbacks/ExternalAu

th/autohandler/Auth:12)
Trace begun at /opt/rt3/bin/…/lib/RT.pm line 289
Log::Dispatch::ANON(‘Log::Dispatch=HASH(0xc010f90)’, ‘Working
around
bug in RT and reloading RT::User’) called at

/opt/rt3/local/plugins/RT-Authen-ExternalAuth/html/Callbacks/ExternalAut

h/autohandler/Auth line 12
HTML::Mason::Commands::ANON(‘pass’, ‘65dfg’, ‘user’, ‘munsch’)
called at /usr/local/share/perl/5.8.8/HTML/Mason/Component.pm line
135

HTML::Mason::Component::run('HTML::Mason::Component::FileBased=HASH(0xc8

e2c60)', ‘pass’, ‘65dfg’, ‘user’, ‘munsch’) called at
/usr/local/share/perl/5.8.8/HTML/Mason/Request.pm line 1279
eval {…} at /usr/local/share/perl/5.8.8/HTML/Mason/Request.pm line
1274
HTML::Mason::Request::comp(undef, undef, ‘pass’, ‘65dfg’, ‘user’,
‘munsch’) called at /opt/rt3/bin/…/lib/RT/Interface/Web/Request.pm
line
176

RT::Interface::Web::Request::callback('RT::Interface::Web::Request=HASH(

0xc9081e0)', ‘pass’, ‘65dfg’, ‘user’, ‘munsch’, ‘CallbackName’,
‘Auth’)
called at /opt/rt3/share/html/autohandler line 253
HTML::Mason::Commands::ANON(‘pass’, ‘65dfg’, ‘user’, ‘munsch’)
called at /usr/local/share/perl/5.8.8/HTML/Mason/Component.pm line
135

HTML::Mason::Component::run('HTML::Mason::Component::FileBased=HASH(0xc7

dc4d0)', ‘pass’, ‘65dfg’, ‘user’, ‘munsch’) called at
/usr/local/share/perl/5.8.8/HTML/Mason/Request.pm line 1279
eval {…} at /usr/local/share/perl/5.8.8/HTML/Mason/Request.pm line
1274
HTML::Mason::Request::comp(undef, undef, undef, ‘pass’, ‘65dfg’,
‘user’,
‘munsch’) called at
/usr/local/share/perl/5.8.8/HTML/Mason/Request.pm
line 473
eval {…} at /usr/local/share/perl/5.8.8/HTML/Mason/Request.pm line
473
eval {…} at /usr/local/share/perl/5.8.8/HTML/Mason/Request.pm line
425

HTML::Mason::Request::exec(‘RT::Interface::Web::Request=HASH(0xc9081e0)’

) called at /usr/local/share/perl/5.8.8/HTML/Mason/ApacheHandler.pm
line
168

HTML::Mason::Request::ApacheHandler::exec('RT::Interface::Web::Request=H

ASH(0xc9081e0)') called at
/usr/local/share/perl/5.8.8/HTML/Mason/ApacheHandler.pm line 825

HTML::Mason::ApacheHandler::handle_request('HTML::Mason::ApacheHandler=H

ASH(0x1171890)', ‘Apache2::RequestRec=SCALAR(0xc923dd0)’) called at
/opt/rt3/bin/webmux.pl line 148
eval {…} at /opt/rt3/bin/webmux.pl line 148
RT::Mason::handler(‘Apache2::RequestRec=SCALAR(0xc923dd0)’) called
at
-e
line 0
eval {…} at -e line 0


Any help or pointing in any kind of direction at all would be
appreciated. I don’t understand what the logs are trying to tell
me.
LDAP.pm is there, ::UserExists is called by the code, but it
complains
there’s no such animal. This is a 5-minute-old fresh install of
7_01.

Clearly it’s working for most people - what’s so special about my
::UserExists call…?

Halp!,

Rob

-----Original Message-----
From: mpeac@jennic.com [mailto:mpeac@jennic.com] On Behalf Of Mike
Peachey
Sent: Thursday, November 13, 2008 4:39 AM
To: Robert Munsch
Cc: RT Users
Subject: Re: [rt-users] CALLING EXTERNALAUTH TESTERS - v0.07_01
nowavailable.

Robert Munsch wrote:

Still experiencing this. Not sure what’s going on. Any attempt
at
login for any user - root or otherwise - gets this:

Undefined subroutine &RT::Authen::ExternalAuth::UserExists called
at

/opt/rt3/local/plugins/RT-Authen-ExternalAuth/html/Callbacks/ExternalAut

h/autohandler/Auth line 39.

The difference being only that if I tried logging in as a user
that
doesn’t exist yet and should be looked up in AD, refreshing the
page
gives me the login screen again: and if I tried logging in as
root,
it
says line 89 instead of 39 and refreshing the page gives me RT at
a
glance successfully.

Very confused.

I would really like to help, but I’m having difficulty seeing where
the
problem might be. It’s very much a perl/systemconfiguration/rt-core
problem - I’m much better on ExternalAuth issues.

You might want to try, as the user your web server runs as,
not root:
perl -I/opt/rt3/local/plugins/RT-Authen-ExternalAuth/lib -
MRT::Authen::ExternalAuth -e1

Did that. No apparent output: just hangs until I ctrl-C.

This could be telling… though I’m not sure what of.

I know this has probably been mentioned before, but just in case
it’s

Robert Munsch.vcf (141 Bytes)

Robert Munsch wrote:

Ripped out everything, including perl, apache2, rt, and the equine
companions they ambulated towards me with. Obliterated any file that
looked like it was even thinking of the string “authen”. Put it all
back very slowly.

While i’ve made some mistakes in my LDAP config and I’m not successfully
authenticating, I get a proper “Your username or password is incorrect”
on the login page, not the horrible perl error from before.

Glad to hear it.
Kind Regards,

Mike Peachey, IT
Tel: +44 114 281 2655
Fax: +44 114 281 2951
Jennic Ltd, Furnival Street, Sheffield, S1 4QT, UK
Comp Reg No: 3191371 - Registered In England