Commit 3051b3cf authored by 's avatar

Added sane_environment to compensate for Apache's grand solution of renaming...

Added sane_environment to compensate for Apache's grand solution of renaming all environment vars when rewrite rules are used in .htaccess files. Also moved
the HTTP_CGI_AUTHORIZATION sniffing hack there while I was at it.
parent 922b2b9e
...@@ -84,8 +84,8 @@ ...@@ -84,8 +84,8 @@
############################################################################## ##############################################################################
__doc__="""Python Object Publisher -- Publish Python objects on web servers __doc__="""Python Object Publisher -- Publish Python objects on web servers
$Id: Publish.py,v 1.119 1999/01/22 10:53:51 jim Exp $""" $Id: Publish.py,v 1.120 1999/01/25 16:42:32 brian Exp $"""
__version__='$Revision: 1.119 $'[11:-2] __version__='$Revision: 1.120 $'[11:-2]
import sys, os, string, cgi, regex import sys, os, string, cgi, regex
from string import lower, atoi, rfind, split, strip, join, upper, find from string import lower, atoi, rfind, split, strip, join, upper, find
...@@ -122,6 +122,21 @@ except: ...@@ -122,6 +122,21 @@ except:
def __init__(self,**kw): def __init__(self,**kw):
for k,v in kw.items(): self.__dict__[k]=v for k,v in kw.items(): self.__dict__[k]=v
def sane_environment(env):
# return an environment mapping which has been cleaned of
# funny business such as REDIRECT_ prefixes added by Apache
# or HTTP_CGI_AUTHORIZATION hacks.
dict={}
for key, val in env.items():
while key[:9]=='REDIRECT_':
key=key[9:]
dict[key]=val
if env.has_key('HTTP_CGI_AUTHORIZATION'):
dict['HTTP_AUTHORIZATION']=env['HTTP_CGI_AUTHORIZATION']
try: del env['HTTP_CGI_AUTHORIZATION']
except: pass
return dict
class ModulePublisher: class ModulePublisher:
HTTP_AUTHORIZATION=None HTTP_AUTHORIZATION=None
...@@ -139,10 +154,6 @@ class ModulePublisher: ...@@ -139,10 +154,6 @@ class ModulePublisher:
self.HTTP_AUTHORIZATION=environ['HTTP_AUTHORIZATION'] self.HTTP_AUTHORIZATION=environ['HTTP_AUTHORIZATION']
try: del environ['HTTP_AUTHORIZATION'] try: del environ['HTTP_AUTHORIZATION']
except: pass except: pass
elif environ.has_key('HTTP_CGI_AUTHORIZATION'):
self.HTTP_AUTHORIZATION=environ['HTTP_CGI_AUTHORIZATION']
try: del environ['HTTP_CGI_AUTHORIZATION']
except: pass
form={} form={}
form_has=form.has_key form_has=form.has_key
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment