|
Marc Boorshtein
mboorshtein at gmail.com
Wed Jan 24 18:12:15 EST 2007
All,
I am trying to figure out a way to use mod python to change the Cookie
header of a request and then pass the request off to mod_proxy. When
the response comes I wish to be able to adjust any Set-Cookie headers
in the response back to the client. I did something similar in
mod_perl using filters and am assuming it would be a similar process.
I wrote a quick input filter to trace the data going through the
filter and found a few issues:
1. When I have a ProxyPass in my httpd config, apache doesn't fire my filter
2. When I remove the ProxyPass rule my filter fires, but no data
seems to be going through it
3. When I specify AddInputFilter, is there anyway to have it apply
globally (as opposed to for a particular file extension)?
Here's my code:
from mod_python import apache
def inputfilter(filter):
apache.log_error('in filter');
s = filter.read()
apache.log_error('begin data');
while s:
apache.log_error('data : ' + s);
filter.write(s.upper())
s = filter.read()
apache.log_error('end data');
if s is None:
filter.close()
Here's my apache config:
<VirtualHost *>
PythonDebug On
PythonPath "sys.path + ['/home/mlb/workspace/Python\ CookieFilter/src']"
PythonInputFilter CookieFilterInbound COOKIEINBOUND
AddInputFilter COOKIEINBOUND .html
ProxyPass / http://localhost:8080/
</VirtualHost>
Here's my log:
[Wed Jan 24 16:28:25 2007] [notice] Apache/2.2.3 (Fedora) configured
-- resuming normal operations
[Wed Jan 24 16:28:28 2007] [notice] mod_python: (Re)importing module
'CookieFilterInbound'
[Wed Jan 24 16:28:28 2007] [error] in filter
[Wed Jan 24 16:28:28 2007] [error] begin data
[Wed Jan 24 16:28:28 2007] [error] end data
[Wed Jan 24 16:28:28 2007] [error] [client 127.0.0.1] File does not
exist: /var/www/html/showcookie.html
[Wed Jan 24 16:28:28 2007] [error] in filter
[Wed Jan 24 16:28:28 2007] [error] begin data
[Wed Jan 24 16:28:28 2007] [error] end data
[Wed Jan 24 16:29:23 2007] [notice] caught SIGTERM, shutting down
Any help would be greatly appreciated.
Thanks
Marc
|