Loading ...
Sorry, an error occurred while loading the content.

Re: problem with method "auth_type"

Expand Messages
  • jehan procaccia
    OK, it works now :-) On my redhat 9 system, I recompiled from rawhide latest source rpm, now I run with: $ rpm -q mod_perl httpd mod_perl-1.99_09-6
    Message 1 of 3 , Jul 31, 2003
    • 0 Attachment
      OK, it works now :-)

      On my redhat 9 system, I recompiled from rawhide latest source rpm, now
      I run with:
      $ rpm -q mod_perl httpd
      mod_perl-1.99_09-6
      httpd-2.0.47-1

      by using apache::compat, PerlOptions +GlobalRequest and cheating on the
      "use strict" it now works :-), i can authenticate through https to an
      ldap server through authcookieldap module .
      I know authcookie is about to be port to mod_perl 2 and apache 2, and I
      hope it will allowed me to run a cleaner configuration .
      for those of you interested, here's what I went through:

      httpd.conf

      PerlModule Apache2
      PerlModule Apache::AuthCookieLDAP
      PerlSetVar INTAuthPath /
      PerlSetVar INTAuthLoginScript /perl/login.pl
      PerlSetVar INTAuthSatisfy Any
      PerlSetVar INTAuthExpires +2h
      # These must be set
      PerlSetVar INTAuthLDAP_DN "dc=int-evry,dc=fr"
      PerlSetVar INTAuthLDAP_SecretKeyFile /etc/httpd/conf/ssl.key/ca.key
      PerlSetVar INTAuthLDAP_User uid
      PerlSetVar INTAuthDBI_DSN "mysql:test"
      #PerlSetVar INTAuthLDAP_filter F=on
      PerlSetVar INTAuthLDAP_host ldapserver.int-evry.fr
      PerlSetVar INTAuthLDAP_EncryptionType "none"
      PerlSetVar INTAuthLDAP_SessionLifetime 00-24-00-00
      # Protected by AuthCookieLDAP.
      <Location /mci>
      PerlOptions +GlobalRequest
      PerlFixupHandler Apache::DB
      AuthType Apache::AuthCookieLDAP
      AuthName INTAuth
      PerlAuthenHandler Apache::AuthCookieLDAP->authenticate
      PerlAuthzHandler Apache::AuthCookieLDAP->authorize
      <Limit GET POST>
      require valid-user
      </Limit>
      </Location>


      <Files LOGIN>
      #PerlOptions +GlobalRequest
      AuthType Apache::AuthCookieLDAP
      AuthName INTAuth
      SetHandler perl-script
      PerlHandler Apache::AuthCookieLDAP->login
      </Files>

      cheat:

      $ /etc/init.d/httpd restart
      Stopping httpd: [FAILED]
      Starting httpd: [Thu Jul 31 14:47:09 2003] [error] Bareword "OK" not allowed
      while "strict subs" in use at
      /usr/lib/perl5/site_perl/5.8.0/Apache/AuthCookieLDAP.pm line 755.
      Bareword "FORBIDDEN" not allowed while "strict subs" in use at
      /usr/lib/perl5/site_perl/5.8.0/Apache/AuthCookieLDAP.pm line 758.
      Compilation failed in require at (eval 4) line 3.

      so I commented out "use strict;" in
      /usr/lib/perl5/site_perl/5.8.0/Apache/AuthCookieLDAP.pm , :-(

      Then accessing the /mci ldap protected directory in a navigator,
      generated the following http error.log


      [Thu Jul 31 14:49:38 2003] [error] [client 157.159.50.198] Global $r
      object is
      not available. Set:
      PerlOptions +GlobalRequest
      in httpd.conf at /usr/lib/perl5/site_perl/5.8.0/Apache/AuthCookie.pm
      line 216.

      So I added PerlOptions +GlobalRequest in httpd.conf as stated above !.

      thanks to all of you .

      PS: Authors of authcookie and authcookieldap, please let me know if you
      port your modules to apache 2 and mod_perl 2.



      Stas Bekman wrote:

      > jehan procaccia wrote:
      >
      >> hello,
      >> I followed the thread :
      >> http://www.gossamer-threads.com/archive/mod_perl_C1/modperl_F7/mod_perl_2.0_question_about_$r-%3Econnection-%3Eauth_type_P51273/#51273
      >>
      >> While using module AuthCookieLDAP based on AuthCookie I got exactly
      >> the same error:
      >>
      >>
      >> Use of uninitialized value.
      >> [Wed Jul 23 16:25:54 2003] [error] [client 127.0.0.1] Can't locate
      >> object
      >> method "auth_type" via package "Apache::Connection" at
      >> /usr/lib/perl5/site_perl/5.8.0/Apache/AuthCookie.pm line 182.!, referer:
      >> http://localhost/ldap
      >>
      >> I am trying to Authenticate HTTP connection to an openldap Server,
      >> using AuthCookie and AuthCookieLDAP, both written for apache 1.3.X
      >> and mod_perl 1.X. Here I use Apache 2.0.40 and mod_perl-1.99_07-5
      >> (which is supposed to be mod_perl 2.0 I understood !?) on a RedHat 9
      >> system.
      >> Although I added "PerlModule Apache::compat" and "PerlOptions
      >> +GlobalRequest" in httpd.conf , I still get the above mentioned error
      >> :-(
      >>
      >> Any help ?
      >> Thanks.
      >>
      >> PS: The author of AuthCookie is about to port its module to mod_perl
      >> 2.0, maybe that would solve the problem, but when, and why doesn't it
      >> work now with Apache::compat ?
      >
      >
      > http://perl.apache.org/docs/2.0/user/porting/compat.html#C__connection_E_gt_auth_type_
      >
      >
      > Have you tried the latest cvs of mod_perl2? Apache::compat provides
      > the necessary code there:
      >
      > package Apache::Connection;
      >
      > # auth_type and user records don't exist in 2.0 conn_rec struct
      > # 'PerlOptions +GlobalRequest' is required
      > sub auth_type { shift; Apache->request->ap_auth_type(@_) }
      > sub user { shift; Apache->request->user(@_) }
      >
      > For more info see:
      > http://perl.apache.org/download/source.html#Development_mod_perl_2_0_Source_Distribution
      >
      >
      >
      >
      > __________________________________________________________________
      > Stas Bekman JAm_pH ------> Just Another mod_perl Hacker
      > http://stason.org/ mod_perl Guide ---> http://perl.apache.org
      > mailto:stas@... http://use.perl.org http://apacheweek.com
      > http://modperlbook.org http://apache.org http://ticketmaster.com
      >
    Your message has been successfully submitted and would be delivered to recipients shortly.