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:
@@ -1162,10 +1162,6 @@
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли Имя = "authorization" И СтрНачинаетсяС(Значение, "bearer ") Тогда
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
Иначе
|
||||
|
||||
Возврат Истина;
|
||||
|
||||
@@ -463,6 +463,8 @@
|
||||
ОписаниеЗапроса.ТипАутентификации = ТипыАутентификации.Bearer;
|
||||
ИначеЕсли Не ПоследнееЗначениеОпции("user") = Неопределено Тогда
|
||||
ОписаниеЗапроса.ТипАутентификации = ТипыАутентификации.Basic;
|
||||
Иначе
|
||||
ОписаниеЗапроса.ТипАутентификации = "";
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -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Запрос);"
|
||||
);
|
||||
|
||||
Для Каждого Строка Из ТестовыеДанные Цикл
|
||||
ПроверитьКонвертациюБезОшибок(Строка.Ключ, Строка.Значение);
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&Тест
|
||||
|
||||
@@ -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"", , ДополнительныеПараметры);"
|
||||
);
|
||||
|
||||
Для Каждого Строка Из ТестовыеДанные Цикл
|
||||
ПроверитьКонвертациюБезОшибок(Строка.Ключ, Строка.Значение);
|
||||
КонецЦикла;
|
||||
|
||||
ПроверитьКонвертациюБезОшибок(КонсольнаяКоманда, ПрограммныйКод);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&Тест
|
||||
|
||||
Reference in New Issue
Block a user