def proxy_from_url(proxy_url, **kw): if (not proxy_url.startswith("http://:@") and not proxy_url.startswith("https://:@")): return old_proxy_from_url(proxy_url, **kw) if (not 'proxy_headers' in kw): kw['proxy_headers'] = {} proxy_headers = kw['proxy_headers'] if (not 'Proxy-Authorization' in proxy_headers): if isinstance(proxy_url, urllib3.connectionpool.HTTPConnectionPool): proxy_url = '%s://%s:%i' % (proxy_url.scheme, proxy_url.host, proxy_url.port) proxy = urllib3.util.url.parse_url(proxy_url) kerb_auth = HTTPKerberosAuth(force_preemptive=True) auth_header = kerb_auth.generate_request_header( None, proxy.host, True) proxy_headers['Proxy-Authorization'] = auth_header return urllib3.poolmanager.ProxyManager(proxy_url=proxy_url, **kw)
def _create_auth_header(proxy_host, proxy_headers): if (not 'Proxy-Authorization' in proxy_headers): kerb_auth = HTTPKerberosAuth(force_preemptive=True) auth_header = kerb_auth.generate_request_header(None, proxy_host, True) proxy_headers['Proxy-Authorization'] = auth_header