Bug 47288 - requests не поддерживает Basic-аутентификацию с символами вне кодировки latin-1
Summary: requests не поддерживает Basic-аутентификацию с символами вне кодировки latin-1
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: python3-module-requests (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Alexey Shabalin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-08-18 14:43 MSK by Artem Varaksa
Modified: 2023-08-18 14:49 MSK (History)
2 users (show)

See Also:


Attachments
Traceback (1.46 KB, text/plain)
2023-08-18 14:43 MSK, Artem Varaksa
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Artem Varaksa 2023-08-18 14:43:07 MSK
Created attachment 14152 [details]
Traceback

Описание ошибки
===============

1. $ python3 -c "import requests; requests.get('http://example.com', auth=('логин', 'пароль'))"


Фактический результат: Выводится ошибка (Traceback - во вложении):

> UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-11: ordinal not in range(256)


Ожидаемый результат: Ошибки кодировки нет (возможна ошибка авторизации и т. д.).


Дополнительно
=============

curl работает:

$ curl 'http://example.org' -u "логин:пароль"


Ошибка в upstream: https://github.com/psf/requests/issues/1926
-> Проблема в разночтении деталей спецификаций.
-> Закрыта с предложением создавать Basic Auth header самостоятельно.


Данная ошибка вызывает проблему при попытке использования Basic-аутентификации, как минимум, в:

* Ansible: https://github.com/ansible/ansible/issues/21183

* python3-module-winrm:

$ python3 -c "import winrm; s = winrm.Session('http://example.org', auth=('логин', 'пароль')); r = s.run_cmd('ipconfig', ['/all'])"

Воспроизводимость
=================

Воспроизводится на виртуальных машинах:

[sisyphus]
python3-module-requests-2.31.0-alt1.noarch
python3-module-winrm-0.4.1-alt2.noarch
curl-8.2.1-alt1.x86_64

kworkstation-10.1-x86-64
education-10.1-x86-64
education-10.1-x86-64-kde
workstation-10.1-x86-64
server-10.1-x86-64
Comment 1 Artem Varaksa 2023-08-18 14:49:54 MSK
Воспроизводится и в p10 на виртуальных машинах:

[p10]
python3-module-requests-2.25.1-alt2.noarch
python3-module-winrm-0.4.1-alt1.noarch
curl-8.1.0-alt2.x86_64

kworkstation-10.1-x86-64
education-10.1-x86-64
education-10.1-x86-64-kde
workstation-10.1-x86-64
server-10.1-x86-64


Примечание: более точная ошибка, соответствующая длине "логин":
> UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-4: ordinal not in range(256)