Python запросов - HTTPDigest: установка алгоритма ha sh для SHA-512 при авторизации дайджеста - PullRequest
1 голос
/ 04 апреля 2020

Я пытаюсь написать небольшую функцию Python для подключения к сайту, который использует авторизацию дайджеста HTTP с алгоритмом SHA-512. Код, с помощью которого я пытаюсь добиться этого:

headers = {
     'Content-Type': 'application/json',
     'Encoding': 'utf-8',
}

s = requests.Session()
s.headers.update(headers)
s.auth = HTTPDigestAuth(self.username, self.passw)

r = requests.Request(
     url=self.api_url,
     method='POST',
     json=data
)

prepped = s.prepare_request(r)
r = s.send(prepped)

Проблема в том, что я получаю 401 в качестве ответа. Я смог проверить параметры имени пользователя / пароля / адреса, и они верны, и если я «взломаю» заголовок Авторизация, чтобы он содержал значения в кодировке SHA-512, то я получаю ошибку 502 (что довольно правильно, поскольку остальная часть сообщения не будет правильной)

Если я правильно прочитал код, алгоритм HTTP_igestAuth, используемый базисом c га sh, - это MD5. То, что я не смог найти, это способ изменить его на SHA-512, хотя он также технически поддерживается. Может ли кто-нибудь помочь мне с этим? Это сводит меня с ума.

1 Ответ

0 голосов
/ 07 апреля 2020

Оказывается, что хотя в документации указано , что сервер использует дайджест-проверку подлинности, им не удалось реализовать это, и поля имени пользователя и пароля просто необходимо передать в данные POST. Ошибка 502 была вызвана сбоем аутентификационного сервера при попытке проанализировать заголовок авторизации, поскольку этот обработчик не был реализован.

В некотором смысле, дело закрыто.

...