--- urllib2.py.orig 2012-03-02 13:08:14.000000000 -0600 +++ urllib2.py 2012-03-02 13:10:58.000000000 -0600 @@ -527,6 +527,10 @@ # maximum total number of redirections (regardless of URL) before # assuming we're in a loop max_redirections = 10 + # NOTE: Setting redirect_post_data to True *can* introduce security + # issues and is not recommended unless you are sure of where the + # POST data is being redirected! + redirect_post_data = False def redirect_request(self, req, fp, code, msg, headers, newurl): """Return a Request or None in response to a redirect. @@ -551,7 +555,11 @@ newheaders = dict((k,v) for k,v in req.headers.items() if k.lower() not in ("content-length", "content-type") ) + data = None + if req.has_data() and self.redirect_post_data: + data = req.get_data() return Request(newurl, + data=data, headers=newheaders, origin_req_host=req.get_origin_req_host(), unverifiable=True)