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