vbondarevsky / Connector

Коннектор: удобный HTTP-клиент для 1С:Предприятие 8
Apache License 2.0
638 stars 207 forks source link

Конструкторы аутентификации #101

Closed zeegin closed 10 months ago

zeegin commented 2 years ago
// Конструтор аутентификации ОС
// 
// Возвращаемое значение:
//  Структура:
//    * ИспользоватьАутентификациюОС - Строка - включает использование аутентификации NTLM или Negotiate.
//
Функция НоваяАутентификацияОС() Экспорт

    Результат = Новый Структура;
    Результат.Вставить("ИспользоватьАутентификациюОС", Истина);

    Возврат Результат;

КонецФункции

// Конструтор аутентификации Basic
// 
// Возвращаемое значение:
//  Структура:
//    * Пользователь - Строка - имя пользователя.
//    * Пароль - Строка - пароль пользователя.
//
Функция НоваяАутентификацияBasic() Экспорт

    Результат = Новый Структура;
    Результат.Вставить("Пользователь", "");
    Результат.Вставить("Пароль", "");

    Возврат Результат;

КонецФункции

// Конструтор аутентификации Digest
// 
// Возвращаемое значение:
//  Структура:
//    * Тип - Строка - Код типа аутентифкации. Всегда "Digest".
//    * Пользователь - Строка - имя пользователя.
//    * Пароль - Строка - пароль пользователя.
//
Функция НоваяАутентификацияDigest() Экспорт

    Результат = Новый Структура;
    Результат.Вставить("Тип", "Digest");
    Результат.Вставить("Пользователь", "");
    Результат.Вставить("Пароль", "");

    Возврат Результат;

КонецФункции

// Конструтор аутентификации AWS4-HMAC-SHA256
// 
// Возвращаемое значение:
//  Структура:
//    * Тип - Строка - Код типа аутентифкации. Всегда "AWS4-HMAC-SHA256".
//    * ИдентификаторКлючаДоступа - Строка - идентификатор ключа доступа.
//    * СекретныйКлюч - Строка - секретный ключ.
//    * Сервис - Строка - сервис, к которому выполняется подключение.
//    * Регион - Строка - регион, к которому выполняется подключение.
//
Функция НоваяАутентификацияAWS4() Экспорт

    Результат = Новый Структура;
    Результат.Вставить("Тип", "AWS4-HMAC-SHA256");
    Результат.Вставить("ИдентификаторКлючаДоступа", "");
    Результат.Вставить("СекретныйКлюч", "");
    Результат.Вставить("Сервис", "");
    Результат.Вставить("Регион", "");

    Возврат Результат;

КонецФункции

Для использования в функциях принимающих параметр Аутентификация.

leemuar commented 2 years ago

А для чего это? Я не понял А параметры эти функции не должны принимать? Сразу создавать структуру с нужными значениями? Может стоит ФиксированнаяСтруктура использовать?

zeegin commented 2 years ago

@leemuar https://its.1c.ru/db/v8std#content:641:hdoc

leemuar commented 2 years ago

@zeegin Спасибо, очень понятно. Я бы хотел обсудить отсутствие параметров у конструкторов. В случае с Коннектором это будет удобно/приемлемо?

Мне кажется гораздо удобнее писать НоваяАутентификацияBasic("логин", "пароль") чем:

Аутентификация = НоваяАутентификацияBasic();
Аутентификация.Вставить("Пользователь", "логин");
Аутентификация.Вставить("Пароль", "пароль");

@leemuar https://its.1c.ru/db/v8std#content:641:hdoc

zeegin commented 2 years ago

@leemuar такое часто практикуется. Мне тоже кажется что так будет удобнее.

zeegin commented 2 years ago

Я бы их сделал только необязательными чтобы можно было писать и так и так :)

leemuar commented 2 years ago

Я бы их сделал только необязательными чтобы можно было писать и так и так :)

Полностью согласен