From: Kenneth Reitz Date: Mon, 24 Mar 2014 15:44:14 +0000 (-0400) Subject: Merge pull request #1963 from sigmavirus24/fix-redirect-methods X-Git-Tag: v2.3.0~21^2~10 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5f48e4a120737c5b53b990105a512032a2aebdd3;p=services%2Fpython-requests.git Merge pull request #1963 from sigmavirus24/fix-redirect-methods Fix #1955: Do not use original request in redirect --- 5f48e4a120737c5b53b990105a512032a2aebdd3 diff --cc requests/sessions.py index 79ea777,fc5b0ff..3d73aff --- a/requests/sessions.py +++ b/requests/sessions.py @@@ -158,12 -154,25 +158,15 @@@ class SessionRedirectMixin(object) prepared_request._cookies.update(self.cookies) prepared_request.prepare_cookies(prepared_request._cookies) - if 'Authorization' in headers: - # If we get redirected to a new host, we should strip out any - # authentication headers. - original_parsed = urlparse(resp.request.url) - redirect_parsed = urlparse(url) - - if (original_parsed.hostname != redirect_parsed.hostname): - del headers['Authorization'] - - # .netrc might have more auth for us. - new_auth = get_netrc_auth(url) if self.trust_env else None - if new_auth is not None: - prepared_request.prepare_auth(new_auth) + # Rebuild auth and proxy information. + proxies = self.rebuild_proxies(prepared_request, proxies) + self.rebuild_auth(prepared_request, resp) + # Override the original request. + req = prepared_request + resp = self.send( - prepared_request, + req, stream=stream, timeout=timeout, verify=verify, diff --cc test_requests.py index 1bebb1a,0b3c106..a2b37e8 --- a/test_requests.py +++ b/test_requests.py @@@ -17,8 -18,8 +18,9 @@@ from requests.compat import Morsel, cookielib, getproxies, str, urljoin, urlparse) from requests.cookies import cookiejar_from_dict, morsel_to_cookie from requests.exceptions import InvalidURL, MissingSchema +from requests.models import PreparedRequest, Response from requests.structures import CaseInsensitiveDict + from requests.sessions import SessionRedirectMixin try: import StringIO