1
0
mirror of https://github.com/vbondarevsky/Connector.git synced 2024-11-21 17:36:49 +02:00

Добавил возможность bearer-аутентификации

This commit is contained in:
Egor Ivanov 2024-10-21 11:40:03 +03:00
parent 715deebc62
commit 5ff187da33
3 changed files with 38 additions and 2 deletions

View File

@ -279,6 +279,14 @@ Json.Вставить("field2", "value2");
Результат = КоннекторHTTP.GetJson("https://user:pass@httpbin.org/basic-auth/user/pass");
```
## Bearer-аутентификация
Параметры bearer-аутентификации можно передать в параметре `ДополнительныеПараметры.Аутентификация`.
При этом `Тип` нужно установить в значение `Bearer` и задать свойство `Токен`.
```bsl
Аутентификация = Новый Структура("Токен, Тип", "exampleBearerToken_abc1234", "Bearer");
```
## Digest-аутентификация
Параметры Digest-аутентификации можно передать в параметре `ДополнительныеПараметры.Аутентификация`.
При этом `Тип` нужно установить в значение `Digest`.

View File

@ -1514,6 +1514,9 @@ Procedure PrepareAuthentication(PreparedRequest)
If AuthenticationType = "aws4-hmac-sha256" Then
PrepareAuthenticationAWS4(PreparedRequest);
EndIf;
If AuthenticationType = "bearer" Then
PrepareAuthenticationBearer(PreparedRequest);
EndIf;
EndIf;
EndIf;
@ -2467,6 +2470,16 @@ EndFunction
#EndRegion
Procedure PrepareAuthenticationBearer(PreparedRequest)
If Not PreparedRequest.Authentication.Property("Token") Or Not ValueIsFilled(PreparedRequest.Authentication.Token) Then
// token is empty
Return;
EndIf;
PreparedRequest.Headers.Insert("Authorization", StrTemplate("Bearer %1", PreparedRequest.Authentication.Token));
EndProcedure
#Region EncodingDecodingData
#Region ServiceStructuresZip

View File

@ -1364,7 +1364,10 @@
ПодготовленныйЗапрос.СобытияНаОтвет.Добавить("ОбработкаОтветаСКодом401");
КонецЕсли;
Если ТипАутентификации = "aws4-hmac-sha256" Тогда
ПодготовитьАутентификациюAWS4(ПодготовленныйЗапрос);
ПодготовитьАутентификациюAWS4(ПодготовленныйЗапрос);
КонецЕсли;
Если ТипАутентификации = "bearer" Тогда
ПодготовитьАутентификациюBearer(ПодготовленныйЗапрос);
КонецЕсли;
КонецЕсли;
КонецЕсли;
@ -2748,7 +2751,19 @@
КонецФункции
#КонецОбласти
#КонецОбласти
Процедура ПодготовитьАутентификациюBearer(ПодготовленныйЗапрос)
Если Не ПодготовленныйЗапрос.Аутентификация.Свойство("Токен") или не ЗначениеЗаполнено(ПодготовленныйЗапрос.Аутентификация.Токен) Тогда
// Токен не заполнен.
Возврат;
КонецЕсли;
ПодготовленныйЗапрос.Заголовки.Вставить("Authorization", СтрШаблон("Bearer %1", ПодготовленныйЗапрос.Аутентификация.Токен));
КонецПроцедуры
#Область КодированиеДекодированиеДанных