I am new to perl/mod_perl and I am trying to implement secure authentication with expirable ticket/cookies on our website (Apache 1.3.9-Solaris 2.8). I am trying to use Apache::TicketAccess with Apache 1.3.9, modssl, openssl, and mod_ssl installed but I am having problems even though everything compiled and installed without errors. It seems like Apache/mod_perl can’t locate some of the *.pm files even though I add the lib paths using “use lib.” What is the difference between /usr/local/lib/perl5/5.6.1 directory and /usr/local/lib/perl/site_perl? Is site_perl platform specific? Where should modules be installed? Can anyone see any problems? Is there an easier/better solution? I know it’s a lot questions,  but I hit a wall and need some help.

 

[Thu Mar  7 23:12:43 2002] [error] [Thu Mar  7 23:12:43 2002] TicketAccess.pm: [Thu Mar  7 23:12:43 2002] TicketTool.pm: [Thu Mar  7 23:12:43 2002] TicketTool.pm: [Thu Mar  7 23:12:43 2002] MD5.pm: Can't locate loadable object for module MD5 in @INC (@INC contains: /usr/local/apache/lib/perl/ /usr/local/lib/perl5/5.6.1//sun4-solaris /usr/local/lib/perl5/5.6.1/ /usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris/ /usr/local/lib/perl5/site_perl/5.6.1//sun4-solaris /usr/local/lib/perl5/site_perl/5.6.1/ /export/home /usr/local/lib/perl5/5.6.1/sun4-solaris /usr/local/lib/perl5/5.6.1 /usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris /usr/local/lib/perl5/site_perl/5.6.1 /usr/local/lib/perl5/site_perl /usr/local/apache/lib/perl . /usr/local/apache/) at /usr/local/apache/lib/perl//Apache/TicketTool.pm line 11

[Thu Mar  7 23:12:43 2002] TicketAccess.pm: [Thu Mar  7 23:12:43 2002] TicketTool.pm: [Thu Mar  7 23:12:43 2002] TicketTool.pm: [Thu Mar  7 23:12:43 2002] MD5.pm: Compilation failed in require at /usr/local/apache/lib/perl//Apache/TicketTool.pm line 11.

[Thu Mar  7 23:12:43 2002] TicketAccess.pm: [Thu Mar  7 23:12:43 2002] TicketTool.pm: [Thu Mar  7 23:12:43 2002] TicketTool.pm: BEGIN failed--compilation aborted at /usr/local/apache/lib/perl//Apache/TicketTool.pm line 11.

[Thu Mar  7 23:12:43 2002] TicketAccess.pm: [Thu Mar  7 23:12:43 2002] TicketTool.pm: Compilation failed in require at /usr/local/apache/lib/perl/Apache/TicketAccess.pm line 11.

[Thu Mar  7 23:12:43 2002] TicketAccess.pm: BEGIN failed--compilation aborted at /usr/local/apache/lib/perl/Apache/TicketAccess.pm line 11.

Compilation failed in require at (eval 220) line 3.

 

Here is /usr/local/apache/lib/perl/Apache/TicketAccess.pm->

 

#!/usr/local/bin/perl -w -I "/usr/local/lib/perl5/site_perl/5.6.1:/usr/local/apache/lib/perl:/usr/lo

cal/apache/lib/perl/Apache"

package Apache::TicketAccess;

# file: Apache/TicketAccess.pm

 use strict;

 use warnings;

 use lib '/usr/local/lib/perl5/site_perl/5.6.1/';

 use lib '/usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris/';

 use lib '/usr/local/lib/perl5/5.6.1/';

 use lib '/usr/local/apache/lib/perl/';

 use Apache::Constants qw(:common);

 use Apache::TicketTool ();

 

 sub handler {

     my $r = shift;

     my $ticketTool = Apache::TicketTool->new($r);

     my($result, $msg) = $ticketTool->verify_ticket($r);

     unless ($result) {

        $r->log_reason($msg, $r->filename);

        my $cookie = $ticketTool->make_return_address($r);

        $r->err_headers_out->add('Set-Cookie' => $cookie);

        return FORBIDDEN;

     }

     return OK;

 }

 

 1;

 

Ray

Reply via email to