From 20070e95b67e1c21d226762398c4a46f5a87664e Mon Sep 17 00:00:00 2001 From: Ilya Kreymer Date: Thu, 13 Nov 2014 09:24:34 -0800 Subject: [PATCH] cookie_rewriter: add 'exact' cookie rewriter which never changes the path/domain --- pywb/rewrite/cookie_rewriter.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/pywb/rewrite/cookie_rewriter.py b/pywb/rewrite/cookie_rewriter.py index 4724df4c..e9dd80ac 100644 --- a/pywb/rewrite/cookie_rewriter.py +++ b/pywb/rewrite/cookie_rewriter.py @@ -55,6 +55,24 @@ class MinimalScopeCookieRewriter(WbUrlBaseCookieRewriter): return morsel +#================================================================= +class ExactPathCookieRewriter(WbUrlBaseCookieRewriter): + """ + Rewrite cookies only using exact path, useful for live rewrite + without a timestamp and to minimize cookie pollution + + If path or domain present, simply remove + """ + + def rewrite_cookie(self, name, morsel): + if morsel.get('domain'): + del morsel['domain'] + # else set cookie to rewritten path + if morsel.get('path'): + del morsel['path'] + + self._remove_age_opts(morsel) + return morsel #================================================================= class RootScopeCookieRewriter(WbUrlBaseCookieRewriter): """ @@ -79,5 +97,7 @@ class RootScopeCookieRewriter(WbUrlBaseCookieRewriter): def get_cookie_rewriter(cookie_scope): if cookie_scope == 'root': return RootScopeCookieRewriter + elif cookie_scope == 'exact': + return ExactPathCookieRewriter else: return MinimalScopeCookieRewriter