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:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com





Reply via email to