mirror of
https://github.com/webrecorder/pywb.git
synced 2025-03-15 00:03:28 +01:00
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
This commit is contained in:
parent
64fe49d703
commit
e9b11fcbf2
@ -88,13 +88,15 @@ class ProxyRouter(object):
|
||||
self.extra_headers = self.EXTRA_HEADERS
|
||||
proxy_options['extra_headers'] = self.extra_headers
|
||||
|
||||
res_type = proxy_options.get('cookie_resolver')
|
||||
if res_type == True or res_type == 'cookie':
|
||||
self.resolver = CookieResolver(routes, proxy_options)
|
||||
res_type = proxy_options.get('cookie_resolver', True)
|
||||
if res_type == 'auth' or not res_type:
|
||||
self.resolver = ProxyAuthResolver(routes, proxy_options)
|
||||
elif res_type == 'ip':
|
||||
self.resolver = IPCacheResolver(routes, proxy_options)
|
||||
#elif res_type == True or res_type == 'cookie':
|
||||
# self.resolver = CookieResolver(routes, proxy_options)
|
||||
else:
|
||||
self.resolver = ProxyAuthResolver(routes, proxy_options)
|
||||
self.resolver = CookieResolver(routes, proxy_options)
|
||||
|
||||
self.use_banner = proxy_options.get('use_banner', True)
|
||||
self.use_wombat = proxy_options.get('use_client_rewrite', True)
|
||||
@ -171,7 +173,8 @@ class ProxyRouter(object):
|
||||
env['pywb.proxy_req_uri'] += '?' + parts.query
|
||||
env['pywb.proxy_query'] = parts.query
|
||||
|
||||
env['pywb_proxy_magic'] = self.magic_name
|
||||
if self.resolver.supports_switching:
|
||||
env['pywb_proxy_magic'] = self.magic_name
|
||||
|
||||
# route (static) and other resources to archival replay
|
||||
if env['pywb.proxy_host'] == self.magic_name:
|
||||
|
@ -76,6 +76,10 @@ class ProxyAuthResolver(BaseCollResolver):
|
||||
def pre_connect(self):
|
||||
return True
|
||||
|
||||
@property
|
||||
def supports_switching(self):
|
||||
return False
|
||||
|
||||
def get_proxy_coll_ts(self, env):
|
||||
proxy_auth = env.get('HTTP_PROXY_AUTHORIZATION')
|
||||
|
||||
@ -117,6 +121,10 @@ class IPCacheResolver(BaseCollResolver):
|
||||
self.cache = create_cache(config.get('redis_cache_key'))
|
||||
self.magic_name = config['magic_name']
|
||||
|
||||
@property
|
||||
def supports_switching(self):
|
||||
return True
|
||||
|
||||
def _get_ip(self, env):
|
||||
ip = env['REMOTE_ADDR']
|
||||
qs = env.get('pywb.proxy_query')
|
||||
@ -186,6 +194,10 @@ class CookieResolver(BaseCollResolver):
|
||||
|
||||
self.cache = create_cache()
|
||||
|
||||
@property
|
||||
def supports_switching(self):
|
||||
return True
|
||||
|
||||
def get_proxy_coll_ts(self, env):
|
||||
coll, ts, sesh_id = self.get_coll(env)
|
||||
return coll, ts
|
||||
|
Loading…
x
Reference in New Issue
Block a user