Write a test script using Authen::Smb and run it from the commandline.
You can copy-paste the synopsis portion of the Authen::Smb documentation
(i.e. perldoc Authen::Smb).
If (you can connect and and authenticate from the commandline) {
the problem resides in your mod_perl installation,
# either an @INC problem, or re-install mod_perl.
}
else {
problem with your Perl installation
# re-install Perl
}
-Carlos
Andrew Afliatunov wrote:
>
> Carlos Ramirez wrote:
>
> > Here are some fixes I incorporated into my private copy of
> > Authen::Smb and Apache::AuthenSmb modules. These changes
> > are based on some discussion I found in the modperl
> > mailing list posted on Thu, 16 Sep 1999 by Matt Arnold. I
> > basically copied Matt's suggestions and added them in.
> > I was getting the same error messages but after I
> > incorporated theses changes, it to fixed the problem on
> > SUN Sparc Solaris 2.5.1..2.8.
> >
> > =Begin Snippet from mailing list
> >
> > The resulting additions to Authen::Smb look like this:
> >
> > use Fcntl qw(:flock);
> > ...
> > open S, "> /full/path/to/AuthenSmb.lck" or die "Can't open
> > AuthenSmb.lck: $!\n";
> > flock S, LOCK_EX;
> > my $res = Valid_User($username, $password, $server, $backup, $domain);
> >
> > close S;
> >
> > In short, I ended up adding
> > the following two lines to Apache::AuthenSmb.
> >
> > use Memoize;
> > memoize('Authen::Smb::authen');
> >
> > =End of Snippet
> >
> > I contacted the author of Apache::AuthenSmb (a long time
> > ago) and asked him if he could add these changes into
> > the module. He stated he no longer has access to machines
> > where he can test his module and asked me to post
> > it in the modperl mailing list (which I never did).
> > I used this module extensively in our environment and
> > have also added some other nice features. Anyhow, if
> > the author can no longer maintain it, i'd be glad ty
> > update it ;)
> >
> > Since, this fix also requires that Authen::Smb to be
> > modified, maybe the author of the cool Authen::Smb module
> > add some option to allow a lock file or force it to use a
> > lock file (??).
> >
> > Something along the lines:
> > sub authen {
> > my @args = @_;
> >
> > # Truncate everything to length 80 to avoid poor coding practices in the
> > # smbvalid.a (buffer overflows) PMK--fixme in smbvalid.a when possible.
> > for my $i ( 0..$#args ) {
> > $args[$i] = substr($args[$i], 0, 80);
> > }
> >
> > my($username, $password, $server, $backup, $domain, $lockfile) = @args;
> > my $res;
> > if ($lockfile) {
> > open L, "> $lockfile" or die "Can't open AuthenSmb.lck: $!\n";
> > flock L, LOCK_EX;
> > $res = Valid_User($username, $password, $server, $backup, $domain);
> > close L;
> > }
> > else {
> > $res = Valid_User($username, $password, $server, $backup, $domain);
> > }
> >
> > return $res;
> > }
> >
> >
> > Anyhow, hope this helps.
> >
> > > > Please, let's continue discussing my problem. Remind you, that I
> > > > installed mod_perl, Authen-Smb-0.91 and Apache-AuthenSmb-0.60 for
> > > > authorization in apache against NT server. And I get this error in
> > > > apache error.log file:
> > > > "Undefined subroutine &Apache::AuthenSmb::handler called".
> > > > In discussion we stopped at the point that I have wrong Smb.so file,
> > > > because when I put "PerlModule Apache::AuthenSmb" in my httpd.conf file
> > > > I get
> > > > --
> > > > Syntax error on line 346 of /usr/local/apache/conf/httpd.conf:
> > > > Can't load
> > > > '/usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris/auto/Authen/Smb/Smb.so'
> > > > for
> > > > module Authen::Smb: ld.so.1: /usr/local/apache/bin/httpd: fatal:
> > > > relocation error: file
> > > > /usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris/auto/Authen/Smb/Smb.so:
> > > > symbol main: referenced symbol not found at
> > > > /usr/local/lib/perl5/5.6.1/sun4-solaris/DynaLoader.pm line 206.
> > > > at /usr/local/lib/perl5/site_perl/5.6.1/Apache/AuthenSmb.pm line 5
> > > > Compilation failed in require at
> > > > /usr/local/lib/perl5/site_perl/5.6.1/Apache/AuthenSmb.pm line 5.
> > > > BEGIN failed--compilation aborted at
> > > > /usr/local/lib/perl5/site_perl/5.6.1/Apache/AuthenSmb.pm line 5.
> > > > Compilation failed in require at (eval 3) line 3.
> > > > --
> > > > when making 'apachectl configtest'. I tried to reinstall AuthenSmb with
> > > > its default options (default Makefile.PL), - no success.
> > > > Maybe I must install it with some different from default options? Who
> > > > knows what are such options? What is configurable there? Or what may be
> > > > done with my Smb.so in oder Authen:Smb to understand it?
> > > >
> > >
> > >
>
> Hi!
> I did suggested changes:
> In Authen::Smb added lines 'use Fcntl qw(:flock);' and
> --
> open S, "> /usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris/Authen/AuthenSmb.lck"
> or die "Can't open AuthenSmb.lck: $!\n";
> flock S, LOCK_EX;
> my $res = Valid_User($username, $password, $server, $backup, $domain);
> close S;
> --
> Replaced subroutine 'authen' as shown above.
>
> In Apache::AuthenSmb added
> --
> use Memoize;
> memoize('Authen::Smb::authen');
> --
>
> And now I get this error when making 'apachectl configtest':
> --
> Syntax error on line 346 of /usr/local/apache/conf/httpd.conf:
> Can't load '/usr/local/lib/perl5/5.6.1/sun4-solaris/auto/Fcntl/Fcntl.so' for
> module Fcntl: ld.so.1: /usr/local/apache/bin/httpd: fatal: relocation error: file
> /usr/local/lib/perl5/5.6.1/sun4-solaris/auto/Fcntl/Fcntl.so: symbol main:
> referenced symbol not found at /usr/local/lib/perl5/5.6.1/sun4-solaris/XSLoader.pm
> line 75.
> at /usr/local/lib/perl5/5.6.1/sun4-solaris/Fcntl.pm line 220
> Compilation failed in require at
> /usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris/Authen/Smb.pm line 6.
> BEGIN failed--compilation aborted at
> /usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris/Authen/Smb.pm line 6.
> Compilation failed in require at
> /usr/local/lib/perl5/site_perl/5.6.1/Apache/AuthenSmb.pm line 5.
> BEGIN failed--compilation aborted at
> /usr/local/lib/perl5/site_perl/5.6.1/Apache/AuthenSmb.pm line 5.
> Compilation failed in require at (eval 3) line 3.
> --
> Line 346 of httpd.conf contains 'PerlModule Apache::AuthenSmb'.
>
> So, what am I supposed to do now?
>
> --
> Andrew
--
-------------------------------------------------------------------------
Carlos Ramirez + Boeing + Human Flight & Space Exploration +
714.372.4181
-------------------------------------------------------------------------