fr05t1k / esia

Компонент для авторизации на портале "Госуслуги" (ЕСИА)
http://fr05t1k.github.io/esia
142 stars 68 forks source link

Extend constructor for signer and logger #39

Open HAPXu3 opened 3 years ago

HAPXu3 commented 3 years ago

Я подумал, можно расширить конструктор двумя необязательными аргументами для управления инициацией логгера и подписывателя. Поскольку иногда возникает проблема (#31) с подписью через SignerPKCS7, приходится использовать CliSignerPKCS7. Сейчас это можно сделать только через setSigner(), но при этом в конструкторе происходит создание ненужного объекта. Логгер (#30) тоже можно добавить, чтобы, к примеру, можно было настраивать через контейнер зависимостей.

Обратная совместимость не нарушается.

Из минусов только раздувание списка параметров.

fr05t1k commented 3 years ago

Привет! Спасибо за предложение 😃

Эти 2 параметры не обязательные. Вы можете их сразу после создания выставить в нужные при помощи сеттеров в том числе при помощи фабрик DI. Я не думаю, что переносить опциональные параметры в конструктор, хорошая идея.

HAPXu3 commented 3 years ago

Не думаю, что signer опциональный. Тем более он сейчас без вариантов создаётся в конструкторе. Как и логгер. Но да, это скорее дело дизайна 😃

fr05t1k commented 3 years ago

Ну если есть поведение по-умолчанию, значит опциональный 😉