Skip to content

Commit e9b11fc

Browse files
committed
proxy: default to cookie resolver, which allows switching collections and datetime, instead of auth resolver
auth resolver can be used by setting 'cookie_resolver: false' explicitly. when using auth resolver, don't set proxy magic path as switching collections or datetime is not possible with auth resolver closes #160
1 parent 64fe49d commit e9b11fc

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

pywb/framework/proxy.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -88,13 +88,15 @@ def __init__(self, routes, **kwargs):
8888
self.extra_headers = self.EXTRA_HEADERS
8989
proxy_options['extra_headers'] = self.extra_headers
9090

91-
res_type = proxy_options.get('cookie_resolver')
92-
if res_type == True or res_type == 'cookie':
93-
self.resolver = CookieResolver(routes, proxy_options)
91+
res_type = proxy_options.get('cookie_resolver', True)
92+
if res_type == 'auth' or not res_type:
93+
self.resolver = ProxyAuthResolver(routes, proxy_options)
9494
elif res_type == 'ip':
9595
self.resolver = IPCacheResolver(routes, proxy_options)
96+
#elif res_type == True or res_type == 'cookie':
97+
# self.resolver = CookieResolver(routes, proxy_options)
9698
else:
97-
self.resolver = ProxyAuthResolver(routes, proxy_options)
99+
self.resolver = CookieResolver(routes, proxy_options)
98100

99101
self.use_banner = proxy_options.get('use_banner', True)
100102
self.use_wombat = proxy_options.get('use_client_rewrite', True)
@@ -171,7 +173,8 @@ def __call__(self, env):
171173
env['pywb.proxy_req_uri'] += '?' + parts.query
172174
env['pywb.proxy_query'] = parts.query
173175

174-
env['pywb_proxy_magic'] = self.magic_name
176+
if self.resolver.supports_switching:
177+
env['pywb_proxy_magic'] = self.magic_name
175178

176179
# route (static) and other resources to archival replay
177180
if env['pywb.proxy_host'] == self.magic_name:

pywb/framework/proxy_resolvers.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,10 @@ def __init__(self, routes, config):
7676
def pre_connect(self):
7777
return True
7878

79+
@property
80+
def supports_switching(self):
81+
return False
82+
7983
def get_proxy_coll_ts(self, env):
8084
proxy_auth = env.get('HTTP_PROXY_AUTHORIZATION')
8185

@@ -117,6 +121,10 @@ def __init__(self, routes, config):
117121
self.cache = create_cache(config.get('redis_cache_key'))
118122
self.magic_name = config['magic_name']
119123

124+
@property
125+
def supports_switching(self):
126+
return True
127+
120128
def _get_ip(self, env):
121129
ip = env['REMOTE_ADDR']
122130
qs = env.get('pywb.proxy_query')
@@ -186,6 +194,10 @@ def __init__(self, routes, config):
186194

187195
self.cache = create_cache()
188196

197+
@property
198+
def supports_switching(self):
199+
return True
200+
189201
def get_proxy_coll_ts(self, env):
190202
coll, ts, sesh_id = self.get_coll(env)
191203
return coll, ts

0 commit comments

Comments
 (0)