mirror of
https://github.com/webrecorder/pywb.git
synced 2025-03-24 06:59:52 +01:00
proxy/rewrite: don't rewrite headers banner_only
This commit is contained in:
parent
cfe11a5ad3
commit
407da7528b
@ -181,7 +181,12 @@ class ProxyRouter(object):
|
|||||||
elif is_https:
|
elif is_https:
|
||||||
wbrequest.wb_url.mod = 'bn_'
|
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):
|
def get_request_socket(self, env):
|
||||||
if not self.ca:
|
if not self.ca:
|
||||||
|
@ -37,7 +37,7 @@ class HeaderRewriter:
|
|||||||
|
|
||||||
ENCODING_HEADERS = ['content-encoding']
|
ENCODING_HEADERS = ['content-encoding']
|
||||||
|
|
||||||
REMOVE_HEADERS = ['transfer-encoding']
|
REMOVE_HEADERS = ['transfer-encoding', 'content-security-policy']
|
||||||
|
|
||||||
PROXY_NO_REWRITE_HEADERS = ['content-length']
|
PROXY_NO_REWRITE_HEADERS = ['content-length']
|
||||||
|
|
||||||
@ -90,7 +90,10 @@ class HeaderRewriter:
|
|||||||
new_headers = []
|
new_headers = []
|
||||||
removed_header_dict = {}
|
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:
|
for (name, value) in headers:
|
||||||
|
|
||||||
@ -99,7 +102,7 @@ class HeaderRewriter:
|
|||||||
if lowername in self.PROXY_HEADERS:
|
if lowername in self.PROXY_HEADERS:
|
||||||
new_headers.append((name, value))
|
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)))
|
new_headers.append((name, urlrewriter.rewrite(value)))
|
||||||
|
|
||||||
elif lowername in self.ENCODING_HEADERS:
|
elif lowername in self.ENCODING_HEADERS:
|
||||||
@ -109,7 +112,8 @@ class HeaderRewriter:
|
|||||||
new_headers.append((name, value))
|
new_headers.append((name, value))
|
||||||
|
|
||||||
elif lowername in self.REMOVE_HEADERS:
|
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
|
elif (lowername in self.PROXY_NO_REWRITE_HEADERS and
|
||||||
not content_rewritten):
|
not content_rewritten):
|
||||||
@ -120,7 +124,9 @@ class HeaderRewriter:
|
|||||||
cookie_list = cookie_rewriter.rewrite(value)
|
cookie_list = cookie_rewriter.rewrite(value)
|
||||||
new_headers.extend(cookie_list)
|
new_headers.extend(cookie_list)
|
||||||
|
|
||||||
else:
|
elif urlrewriter:
|
||||||
new_headers.append((self.header_prefix + name, value))
|
new_headers.append((self.header_prefix + name, value))
|
||||||
|
else:
|
||||||
|
new_headers.append((name, value))
|
||||||
|
|
||||||
return (new_headers, removed_header_dict)
|
return (new_headers, removed_header_dict)
|
||||||
|
@ -63,6 +63,10 @@ class RewriteContent:
|
|||||||
status_headers, stream = self.sanitize_content(headers, stream)
|
status_headers, stream = self.sanitize_content(headers, stream)
|
||||||
return (status_headers, self.stream_to_gen(stream), False)
|
return (status_headers, self.stream_to_gen(stream), False)
|
||||||
|
|
||||||
|
|
||||||
|
if wb_url.is_banner_only:
|
||||||
|
urlrewriter = None
|
||||||
|
|
||||||
(rewritten_headers, stream) = self.rewrite_headers(urlrewriter,
|
(rewritten_headers, stream) = self.rewrite_headers(urlrewriter,
|
||||||
headers,
|
headers,
|
||||||
stream)
|
stream)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user