1
0
mirror of https://github.com/alei1180/curlone.git synced 2025-11-30 23:34:57 +02:00

fix: Добавлен отсутствующий заголовок Authorization Bearer для коннектора (#215)

This commit is contained in:
Dmitry Ivanov
2025-08-01 12:45:01 +03:00
committed by GitHub
parent e56c0b3117
commit 2ec20204db
4 changed files with 144 additions and 148 deletions

View File

@@ -1162,10 +1162,6 @@
Возврат Ложь;
КонецЕсли;
ИначеЕсли Имя = "authorization" И СтрНачинаетсяС(Значение, "bearer ") Тогда
Возврат Ложь;
Иначе
Возврат Истина;

View File

@@ -463,6 +463,8 @@
ОписаниеЗапроса.ТипАутентификации = ТипыАутентификации.Bearer;
ИначеЕсли Не ПоследнееЗначениеОпции("user") = Неопределено Тогда
ОписаниеЗапроса.ТипАутентификации = ТипыАутентификации.Basic;
Иначе
ОписаниеЗапроса.ТипАутентификации = "";
КонецЕсли;
КонецПроцедуры

View File

@@ -23,14 +23,16 @@
Процедура ТестДолжен_ПроверитьЗаголовки() Экспорт
КонсольнаяКоманда = "curl http://example.com \
| -H 'accept: text/html' \
| -H 'accept-language: ru,en-US;q=0.9,en;q=0.8' \
| -H 'user-agent: curl'";
| -H 'Accept: text/html' \
| -H 'Accept-Language: ru,en-US;q=0.9,en;q=0.8' \
| -H 'User-Agent: curl' \
| -H 'Authorization: Bearer mF_9.B5f-4.1JqM'";
ПрограммныйКод = "Заголовки = Новый Соответствие();
|Заголовки.Вставить(""accept"", ""text/html"");
|Заголовки.Вставить(""accept-language"", ""ru,en-US;q=0.9,en;q=0.8"");
|Заголовки.Вставить(""user-agent"", ""curl"");
|Заголовки.Вставить(""Accept"", ""text/html"");
|Заголовки.Вставить(""Accept-Language"", ""ru,en-US;q=0.9,en;q=0.8"");
|Заголовки.Вставить(""User-Agent"", ""curl"");
|Заголовки.Вставить(""Authorization"", ""Bearer mF_9.B5f-4.1JqM"");
|
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
@@ -83,57 +85,55 @@
&Тест
Процедура ТестДолжен_ПроверитьАутентификацию() Экспорт
КонсольнаяКоманда = "curl http://example.com -u user:secret
|curl http://example.com --basic -u user:secret
|curl http://example.com --ntlm
|curl http://example.com --negotiate
|curl http://example.com --oauth2-bearer 'mF_9.B5f-4.1JqM'";
ТестовыеДанные = Новый Соответствие();
ПрограммныйКод = "//////////////////////////////////////////////
|// Команда #1.
|
|Соединение = Новый HTTPСоединение(""example.com"", 80, ""user"", ""secret"");
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);
|
|//////////////////////////////////////////////
|// Команда #2.
|
|Соединение = Новый HTTPСоединение(""example.com"", 80, ""user"", ""secret"");
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);
|
|//////////////////////////////////////////////
|// Команда #3.
|
|Соединение = Новый HTTPСоединение(""example.com"", 80, , , , , , Истина);
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);
|
|//////////////////////////////////////////////
|// Команда #4.
|
|Соединение = Новый HTTPСоединение(""example.com"", 80, , , , , , Истина);
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);
|
|//////////////////////////////////////////////
|// Команда #5.
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Authorization"", ""Bearer mF_9.B5f-4.1JqM"");
|
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
ТестовыеДанные.Вставить(
"curl http://example.com -u user:secret",
"Соединение = Новый HTTPСоединение(""example.com"", 80, ""user"", ""secret"");
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);"
);
ПроверитьКонвертациюБезОшибок(КонсольнаяКоманда, ПрограммныйКод);
ТестовыеДанные.Вставить(
"curl http://example.com --basic -u user:secret",
"Соединение = Новый HTTPСоединение(""example.com"", 80, ""user"", ""secret"");
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);"
);
ТестовыеДанные.Вставить(
"curl http://example.com --ntlm",
"Соединение = Новый HTTPСоединение(""example.com"", 80, , , , , , Истина);
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);"
);
ТестовыеДанные.Вставить(
"curl http://example.com --negotiate",
"Соединение = Новый HTTPСоединение(""example.com"", 80, , , , , , Истина);
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);"
);
ТестовыеДанные.Вставить(
"curl http://example.com --oauth2-bearer 'mF_9.B5f-4.1JqM'",
"Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Authorization"", ""Bearer mF_9.B5f-4.1JqM"");
|
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);"
);
Для Каждого Строка Из ТестовыеДанные Цикл
ПроверитьКонвертациюБезОшибок(Строка.Ключ, Строка.Значение);
КонецЦикла;
КонецПроцедуры
&Тест

View File

@@ -34,14 +34,16 @@
Процедура ТестДолжен_ПроверитьЗаголовки() Экспорт
КонсольнаяКоманда = "curl http://example.com \
| -H 'accept: text/html' \
| -H 'accept-language: ru,en-US;q=0.9,en;q=0.8' \
| -H 'user-agent: curl'";
| -H 'Accept: text/html' \
| -H 'Accept-Language: ru,en-US;q=0.9,en;q=0.8' \
| -H 'User-Agent: curl' \
| -H 'Authorization: Bearer mF_9.B5f-4.1JqM'";
ПрограммныйКод = "Заголовки = Новый Соответствие();
|Заголовки.Вставить(""accept"", ""text/html"");
|Заголовки.Вставить(""accept-language"", ""ru,en-US;q=0.9,en;q=0.8"");
|Заголовки.Вставить(""user-agent"", ""curl"");
|Заголовки.Вставить(""Accept"", ""text/html"");
|Заголовки.Вставить(""Accept-Language"", ""ru,en-US;q=0.9,en;q=0.8"");
|Заголовки.Вставить(""User-Agent"", ""curl"");
|Заголовки.Вставить(""Authorization"", ""Bearer mF_9.B5f-4.1JqM"");
|
|ДополнительныеПараметры = Новый Структура();
|ДополнительныеПараметры.Вставить(""Заголовки"", Заголовки);
@@ -91,91 +93,87 @@
&Тест
Процедура ТестДолжен_ПроверитьАутентификацию() Экспорт
КонсольнаяКоманда = "curl http://example.com -u user:secret
|curl http://example.com --basic -u user:secret
|curl http://example.com --digest -u user:secret
|curl http://example.com --ntlm
|curl http://example.com --negotiate
|curl http://example.com --aws-sigv4 'aws:amz:us-east-2:es' --user 'key:secret'
|curl http://example.com --oauth2-bearer 'mF_9.B5f-4.1JqM'";
ТестовыеДанные = Новый Соответствие();
ПрограммныйКод = "//////////////////////////////////////////////
|// Команда #1.
|
|Аутентификация = Новый Структура(""Пользователь, Пароль"", ""user"", ""secret"");
|
|ДополнительныеПараметры = Новый Структура();
|ДополнительныеПараметры.Вставить(""Аутентификация"", Аутентификация);
|
|Результат = КоннекторHTTP.Get(""http://example.com"", , ДополнительныеПараметры);
|
|//////////////////////////////////////////////
|// Команда #2.
|
|Аутентификация = Новый Структура(""Пользователь, Пароль"", ""user"", ""secret"");
|
|ДополнительныеПараметры = Новый Структура();
|ДополнительныеПараметры.Вставить(""Аутентификация"", Аутентификация);
|
|Результат = КоннекторHTTP.Get(""http://example.com"", , ДополнительныеПараметры);
|
|//////////////////////////////////////////////
|// Команда #3.
|
|Аутентификация = Новый Структура(""Тип, Пользователь, Пароль"", ""Digest"", ""user"", ""secret"");
|
|ДополнительныеПараметры = Новый Структура();
|ДополнительныеПараметры.Вставить(""Аутентификация"", Аутентификация);
|
|Результат = КоннекторHTTP.Get(""http://example.com"", , ДополнительныеПараметры);
|
|//////////////////////////////////////////////
|// Команда #4.
|
|Аутентификация = Новый Структура(""ИспользоватьАутентификациюОС"", Истина);
|
|ДополнительныеПараметры = Новый Структура();
|ДополнительныеПараметры.Вставить(""Аутентификация"", Аутентификация);
|
|Результат = КоннекторHTTP.Get(""http://example.com"", , ДополнительныеПараметры);
|
|//////////////////////////////////////////////
|// Команда #5.
|
|Аутентификация = Новый Структура(""ИспользоватьАутентификациюОС"", Истина);
|
|ДополнительныеПараметры = Новый Структура();
|ДополнительныеПараметры.Вставить(""Аутентификация"", Аутентификация);
|
|Результат = КоннекторHTTP.Get(""http://example.com"", , ДополнительныеПараметры);
|
|//////////////////////////////////////////////
|// Команда #6.
|
|Аутентификация = Новый Структура();
|Аутентификация.Вставить(""Тип"", ""AWS4-HMAC-SHA256"");
|Аутентификация.Вставить(""ИдентификаторКлючаДоступа"", ""key"");
|Аутентификация.Вставить(""СекретныйКлюч"", ""secret"");
|Аутентификация.Вставить(""Сервис"", ""es"");
|Аутентификация.Вставить(""Регион"", ""us-east-2"");
|
|ДополнительныеПараметры = Новый Структура();
|ДополнительныеПараметры.Вставить(""Аутентификация"", Аутентификация);
|
|Результат = КоннекторHTTP.Get(""http://example.com"", , ДополнительныеПараметры);
|
|//////////////////////////////////////////////
|// Команда #7.
|
|Аутентификация = Новый Структура(""Токен, Тип"", ""mF_9.B5f-4.1JqM"", ""Bearer"");
|
|ДополнительныеПараметры = Новый Структура();
|ДополнительныеПараметры.Вставить(""Аутентификация"", Аутентификация);
|
|Результат = КоннекторHTTP.Get(""http://example.com"", , ДополнительныеПараметры);";
ТестовыеДанные.Вставить(
"curl http://example.com -u user:secret",
"Аутентификация = Новый Структура(""Пользователь, Пароль"", ""user"", ""secret"");
|
|ДополнительныеПараметры = Новый Структура();
|ДополнительныеПараметры.Вставить(""Аутентификация"", Аутентификация);
|
|Результат = КоннекторHTTP.Get(""http://example.com"", , ДополнительныеПараметры);"
);
ТестовыеДанные.Вставить(
"curl http://example.com --basic -u user:secret",
"Аутентификация = Новый Структура(""Пользователь, Пароль"", ""user"", ""secret"");
|
|ДополнительныеПараметры = Новый Структура();
|ДополнительныеПараметры.Вставить(""Аутентификация"", Аутентификация);
|
|Результат = КоннекторHTTP.Get(""http://example.com"", , ДополнительныеПараметры);"
);
ТестовыеДанные.Вставить(
"curl http://example.com --digest -u user:secret",
"Аутентификация = Новый Структура(""Тип, Пользователь, Пароль"", ""Digest"", ""user"", ""secret"");
|
|ДополнительныеПараметры = Новый Структура();
|ДополнительныеПараметры.Вставить(""Аутентификация"", Аутентификация);
|
|Результат = КоннекторHTTP.Get(""http://example.com"", , ДополнительныеПараметры);"
);
ТестовыеДанные.Вставить(
"curl http://example.com --ntlm",
"Аутентификация = Новый Структура(""ИспользоватьАутентификациюОС"", Истина);
|
|ДополнительныеПараметры = Новый Структура();
|ДополнительныеПараметры.Вставить(""Аутентификация"", Аутентификация);
|
|Результат = КоннекторHTTP.Get(""http://example.com"", , ДополнительныеПараметры);"
);
ТестовыеДанные.Вставить(
"curl http://example.com --negotiate",
"Аутентификация = Новый Структура(""ИспользоватьАутентификациюОС"", Истина);
|
|ДополнительныеПараметры = Новый Структура();
|ДополнительныеПараметры.Вставить(""Аутентификация"", Аутентификация);
|
|Результат = КоннекторHTTP.Get(""http://example.com"", , ДополнительныеПараметры);"
);
ТестовыеДанные.Вставить(
"curl http://example.com --aws-sigv4 'aws:amz:us-east-2:es' --user 'key:secret'",
"Аутентификация = Новый Структура();
|Аутентификация.Вставить(""Тип"", ""AWS4-HMAC-SHA256"");
|Аутентификация.Вставить(""ИдентификаторКлючаДоступа"", ""key"");
|Аутентификация.Вставить(""СекретныйКлюч"", ""secret"");
|Аутентификация.Вставить(""Сервис"", ""es"");
|Аутентификация.Вставить(""Регион"", ""us-east-2"");
|
|ДополнительныеПараметры = Новый Структура();
|ДополнительныеПараметры.Вставить(""Аутентификация"", Аутентификация);
|
|Результат = КоннекторHTTP.Get(""http://example.com"", , ДополнительныеПараметры);"
);
ТестовыеДанные.Вставить(
"curl http://example.com --oauth2-bearer 'mF_9.B5f-4.1JqM'",
"Аутентификация = Новый Структура(""Токен, Тип"", ""mF_9.B5f-4.1JqM"", ""Bearer"");
|
|ДополнительныеПараметры = Новый Структура();
|ДополнительныеПараметры.Вставить(""Аутентификация"", Аутентификация);
|
|Результат = КоннекторHTTP.Get(""http://example.com"", , ДополнительныеПараметры);"
);
Для Каждого Строка Из ТестовыеДанные Цикл
ПроверитьКонвертациюБезОшибок(Строка.Ключ, Строка.Значение);
КонецЦикла;
ПроверитьКонвертациюБезОшибок(КонсольнаяКоманда, ПрограммныйКод);
КонецПроцедуры
&Тест