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