1
0
mirror of https://github.com/webrecorder/pywb.git synced 2025-03-15 08:04:49 +01:00

proxy/rewrite: don't rewrite headers banner_only

This commit is contained in:
Ilya Kreymer 2014-07-31 17:02:26 -07:00
parent cfe11a5ad3
commit 407da7528b
3 changed files with 21 additions and 6 deletions

View File

@ -181,7 +181,12 @@ class ProxyRouter(object):
elif is_https:
wbrequest.wb_url.mod = 'bn_'
return route.handler(wbrequest)
response = route.handler(wbrequest)
if wbrequest.wb_url and wbrequest.wb_url.is_replay():
response.status_headers.replace_header('Cache-Control', 'no-cache')
return response
def get_request_socket(self, env):
if not self.ca:

View File

@ -37,7 +37,7 @@ class HeaderRewriter:
ENCODING_HEADERS = ['content-encoding']
REMOVE_HEADERS = ['transfer-encoding']
REMOVE_HEADERS = ['transfer-encoding', 'content-security-policy']
PROXY_NO_REWRITE_HEADERS = ['content-length']
@ -90,7 +90,10 @@ class HeaderRewriter:
new_headers = []
removed_header_dict = {}
cookie_rewriter = urlrewriter.get_cookie_rewriter()
if urlrewriter:
cookie_rewriter = urlrewriter.get_cookie_rewriter()
else:
cookie_rewriter = None
for (name, value) in headers:
@ -99,7 +102,7 @@ class HeaderRewriter:
if lowername in self.PROXY_HEADERS:
new_headers.append((name, value))
elif lowername in self.URL_REWRITE_HEADERS:
elif urlrewriter and lowername in self.URL_REWRITE_HEADERS:
new_headers.append((name, urlrewriter.rewrite(value)))
elif lowername in self.ENCODING_HEADERS:
@ -109,7 +112,8 @@ class HeaderRewriter:
new_headers.append((name, value))
elif lowername in self.REMOVE_HEADERS:
removed_header_dict[lowername] = value
removed_header_dict[lowername] = value
new_headers.append((self.header_prefix + name, value))
elif (lowername in self.PROXY_NO_REWRITE_HEADERS and
not content_rewritten):
@ -120,7 +124,9 @@ class HeaderRewriter:
cookie_list = cookie_rewriter.rewrite(value)
new_headers.extend(cookie_list)
else:
elif urlrewriter:
new_headers.append((self.header_prefix + name, value))
else:
new_headers.append((name, value))
return (new_headers, removed_header_dict)

View File

@ -63,6 +63,10 @@ class RewriteContent:
status_headers, stream = self.sanitize_content(headers, stream)
return (status_headers, self.stream_to_gen(stream), False)
if wb_url.is_banner_only:
urlrewriter = None
(rewritten_headers, stream) = self.rewrite_headers(urlrewriter,
headers,
stream)