def _add_auth_header(request, target): if 'username' in target: u, p = target.get('username'), target.get('password', '') request.add_header('Authorization', basic_auth_header(u, p)) else: # try netrc try: host = urlparse(target['url']).hostname a = netrc.netrc().authenticators(host) request.add_header('Authorization', basic_auth_header(a[0], a[2])) except (netrc.NetrcParseError, IOError, TypeError): pass
def _add_auth_header(request, target): if "username" in target: u, p = target.get("username"), target.get("password", "") request.add_header("Authorization", basic_auth_header(u, p)) else: # try netrc try: host = urlparse(target["url"]).hostname a = netrc.netrc().authenticators(host) request.add_header("Authorization", basic_auth_header(a[0], a[2])) except (netrc.NetrcParseError, IOError, TypeError): pass
def _authorization(self, spider): usr = getattr(spider, 'http_user', '') pwd = getattr(spider, 'http_pass', '') if usr or pwd: return basic_auth_header(usr, pwd)
def request_authenticate(request, username, password): """Autenticate the given request (in place) using the HTTP basic access authentication mechanism (RFC 2617) and the given username and password """ request.headers['Authorization'] = basic_auth_header(username, password)
def test_basic_auth_header(self): self.assertEqual('Basic c29tZXVzZXI6c29tZXBhc3M=', basic_auth_header('someuser', 'somepass')) # Check url unsafe encoded header self.assertEqual('Basic c29tZXVzZXI6QDx5dTk-Jm8_UQ==', basic_auth_header('someuser', '@<yu9>&o?Q'))