[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[mp2] Perl Auth Handlers and mod_proxy : losing querystring on remote server (BUG?)
- Subject: [mp2] Perl Auth Handlers and mod_proxy : losing querystring on remote server (BUG?)
- Date: Wed, 10 Jan 2007 00:52:54 +0100
- From: "Sylvain Perrot" <suppressed>
Hi,
After 2 days trying to resolve my problem, I am close to think about a
bug in mod_perl used with mod_proxy.
let
summarize my problem in case someone could help me :
CLIENT ------> Reverse-Proxy -------> Application
Servers
Reverse-Proxy is : Linux, Apache 2.0.59, mod_perl
2.0.3
Application Servers are :
- Windows 2003, IIS 6, .Net 2.0
- Linux, Apache 2.0.59, php
5.2.0
Configured as Reverse Proxy only, Apache is serving correctly the
request to the Application Servers
httpd.conf :
------------------------------------------------------------------------------
CustomLog /www/doma.tld/logs/access_log combined
ErrorLog
/www/doma.tld/logs/error_log
</VirtualHost>
------------------------------------------------------------------------------
I
wanted to use the PerlAuthenHandler and PerlAuthzHandler in order to protect
some areas of my Application servers directly at the reverse proxy
level
Perl
module : AuthConst.pm
------------------------------------------------------------------------------
#
# AuthConst.pm
#
package
Apache2::AuthConst;
use
strict;
use
Apache2::Const -compile => qw(HTTP_UNAUTHORIZED FORBIDDEN DECLINED
OK);
1;
__END__
------------------------------------------------------------------------------
httpd.conf :
------------------------------------------------------------------------------
PerlModule Apache2::AuthConst
CustomLog /www/doma.tld/logs/access_log combined
ErrorLog
/www/doma.tld/logs/error_log
<LocationMatch /(?i)protected/>
PerlAuthenHandler Apache2::Const::OK
Require
foobar
</LocationMatch>
</VirtualHost>
------------------------------------------------------------------------------
Normaly, Apache
should allow connection to the remote application server for all request without
calling the PerlHandler if the path is not part of
/protected.
For now, my
module just returns standard Apache2::Const::OK value, which result in allowing
Apache to proxy the request to the remote application
server.
This is
correctly performed (anybody can test to confirm or not)
...
the remote
application server receives the request, but with no querystring !!! it is
removed after the call to the
PerlAuthenHandler.
If I create
some more "complex" handler to log the request (URI + QueryString) ... I can see
the querystring in the Handler, but not in the remote application
server.
Just by
deactivating the call to the Handler (by commenting out the Require foobar line)
... the querystring is correctly received by the remote application
server.
Does anybody
already face this problem
???
Best
regards
Sylvain
PS: here is an
extract of mp2bug on my installation
:
===============================================
1. Problem
Description:
[DESCRIBE THE PROBLEM HERE] => See my email content
:-)
2. Used
Components and their
Configuration:
*** mod_perl
version
2.000003
*** using
/usr/lib/perl5/site_perl/5.8.8/i486-linux/Apache2/BuildConfig.pm
*** Makefile.PL
options:
MP_APR_LIB => aprext
MP_APXS =>
/usr/local/apache-2.0/bin/apxs
MP_COMPAT_1X =>
1
MP_GENERATE_XS => 1
MP_LIBNAME
=> mod_perl
MP_USE_DSO =>
1
*** The httpd binary was not found
*** (apr|apu)-config linking info
-L/usr/local/apache-2.0//lib -laprutil-0
-lexpat
-L/usr/local/apache-2.0//lib -lapr-0 -lrt -lm -lcrypt
-lnsl -lpthread -ldl
*** /usr/bin/perl -V
Summary of my perl5 (revision 5 version 8
subversion 8) configuration:
Platform:
osname=linux, osvers=2.4.33.3, archname=i486-linux
uname='linux tree 2.4.33.3 #1 fri sep 1 01:48:52 cdt 2006 i686 athlon-4 i386
gnulinux '
config_args='-de -Dprefix=/usr
-Dcccdlflags=-fPIC -Dinstallprefix=/usr -Doptimize=-O2 -march=i486 -mtune=i686
-Dinc_version_list=5.8.7 5.8.6 5.8.5 5.8.4 5.8.3 5.8.2 5.8.1 5.8.0
-Darchname=i486-linux'
hint=recommended, useposix=true,
d_sigaction=define
usethreads=undef use5005threads=undef
useithreads=undef usemultiplicity=undef
useperlio=define
d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-fno-strict-aliasing -pipe -Wdeclaration-after-statement
-I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64',
optimize='-O2 -march=i486
-mtune=i686',
cppflags='-fno-strict-aliasing -pipe
-Wdeclaration-after-statement -I/usr/local/include'
ccversion='', gccversion='3.4.6', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8,
byteorder=1234
d_longlong=define, longlongsize=8,
d_longdbl=define, longdblsize=12
ivtype='long', ivsize=4,
nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=4, prototype=define
Linker and
Libraries:
ld='cc', ldflags ='
-L/usr/local/lib'
libpth=/usr/local/lib /lib
/usr/lib
libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil
-lc
perllibs=-lnsl -ldl -lm -lcrypt -lutil
-lc
libc=/lib/libc-2.3.6.so, so=so, useshrplib=false,
libperl=libperl.a
gnulibc_version='2.3.6'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so,
d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fPIC',
lddlflags='-shared -L/usr/local/lib'
Characteristics of this binary (from libperl):
Compile-time
options: PERL_MALLOC_WRAP USE_LARGE_FILES USE_PERLIO
Built under
linux
Compiled at Sep 1 2006 23:31:27
%ENV:
PERL_LWP_USE_HTTP_10="1"
@INC:
/usr/lib/perl5/5.8.8/i486-linux
/usr/lib/perl5/5.8.8
/usr/lib/perl5/site_perl/5.8.8/i486-linux
/usr/lib/perl5/site_perl/5.8.8
/usr/lib/perl5/site_perl
.
*** Packages of interest status:
Apache2 :
-
Apache2::Request :
2.08
CGI
: 3.25
ExtUtils::MakeMaker:
6.31
LWP
: 5.805
mod_perl
: -
mod_perl2 :
2.000003
3. This is the core dump trace: (if you get a core dump):
[CORE TRACE COMES HERE]
This report was generated by /usr/bin/mp2bug on Tue Jan 9 23:56:09
2007
GMT.
Mail converted by mhonarc 2.6.15
This archive provided courtesy of JSW4.NET, Internet Hosting Services for Small Business.