diff --git a/pywb/apps/cli.py b/pywb/apps/cli.py index cc572a1c..33342d16 100644 --- a/pywb/apps/cli.py +++ b/pywb/apps/cli.py @@ -49,12 +49,12 @@ class BaseCli(object): pass def run(self): - if self.r.server == 'waitress': + if self.r.server == 'waitress': #pragma: no cover self.run_waitress() else: self.run_wsgiref() - def run_waitress(self): + def run_waitress(self): #pragma: no cover from waitress import serve print(self.desc) serve(self.application, port=self.r.port, threads=self.r.threads) diff --git a/pywb/rewrite/cookie_rewriter.py b/pywb/rewrite/cookie_rewriter.py index bac0d727..f5c3c570 100644 --- a/pywb/rewrite/cookie_rewriter.py +++ b/pywb/rewrite/cookie_rewriter.py @@ -18,7 +18,14 @@ class WbUrlBaseCookieRewriter(object): for name, morsel in cookie.iteritems(): morsel = self.rewrite_cookie(name, morsel) + if morsel: + path = morsel.get('path') + if path: + inx = path.find(self.url_rewriter.rel_prefix) + if inx > 0: + morsel['path'] = path[inx:] + results.append((header, morsel.OutputString())) return results @@ -78,23 +85,14 @@ class HostScopeCookieRewriter(WbUrlBaseCookieRewriter): """ def rewrite_cookie(self, name, morsel): - new_path = None - # if domain set, expand cookie to host prefix if morsel.get('domain'): del morsel['domain'] - new_path = self.url_rewriter.rewrite('/') + morsel['path'] = self.url_rewriter.rewrite('/') # set cookie to rewritten path elif morsel.get('path'): - new_path = self.url_rewriter.rewrite(morsel['path']) - - if new_path: - inx = new_path.find(self.url_rewriter.rel_prefix) - if inx > 0: - new_path = new_path[inx:] - - morsel['path'] = new_path + morsel['path'] = self.url_rewriter.rewrite(morsel['path']) self._remove_age_opts(morsel) return morsel diff --git a/pywb/rewrite/test/test_cookie_rewriter.py b/pywb/rewrite/test/test_cookie_rewriter.py index 10ae01bd..e2c74dcf 100644 --- a/pywb/rewrite/test/test_cookie_rewriter.py +++ b/pywb/rewrite/test/test_cookie_rewriter.py @@ -34,12 +34,15 @@ r""" # HostCookieRewriter -- set path to host ->>> rewrite_cookie('some=value; Path=/diff/path/;', urlrewriter, 'host') +>>> rewrite_cookie('some=value; Path=/diff/path/', urlrewriter, 'host') [('Set-Cookie', 'some=value; Path=/pywb/20131226101010/http://example.com/diff/path/')] >>> rewrite_cookie('some=value; Domain=.example.com; Path=/diff/path/; Max-Age=1500', urlrewriter, 'host') [('Set-Cookie', 'some=value; Path=/pywb/20131226101010/http://example.com/')] +>>> rewrite_cookie('some=value; Domain=.example.com; Secure; Path=/diff/path/; HttpOnly; Max-Age=1500', urlrewriter, 'host') +[('Set-Cookie', 'some=value; httponly; Path=/pywb/20131226101010/http://example.com/')] + # RootCookieRewriter -- always sets Path=/, removes Domain >>> rewrite_cookie('some=value; Path=/diff/path/;', urlrewriter, 'root') @@ -62,7 +65,7 @@ r""" from pywb.rewrite.cookie_rewriter import MinimalScopeCookieRewriter, get_cookie_rewriter from pywb.rewrite.url_rewriter import UrlRewriter -urlrewriter = UrlRewriter('20131226101010/http://example.com/some/path/index.html', '/pywb/') +urlrewriter = UrlRewriter('20131226101010/http://example.com/some/path/index.html', 'http://localhost:8080/pywb/', rel_prefix='/pywb/') urlrewriter2 = UrlRewriter('em_/http://example.com/', '/preview/') diff --git a/pywb/rewrite/test/test_html_rewriter.py b/pywb/rewrite/test/test_html_rewriter.py index 1cdda7d5..a9f81fd4 100644 --- a/pywb/rewrite/test/test_html_rewriter.py +++ b/pywb/rewrite/test/test_html_rewriter.py @@ -24,6 +24,14 @@ ur""" >>> parse('