Skip to content

Убрать из документа два утверждения, которые передатчик не подтверждает - #47

Merged
kirill-abblix merged 1 commit into
masterfrom
fix/ssf-sample-document-and-404
Sep 7, 2026
Merged

Убрать из документа два утверждения, которые передатчик не подтверждает#47
kirill-abblix merged 1 commit into
masterfrom
fix/ssf-sample-document-and-404

Conversation

@kirill-abblix

Copy link
Copy Markdown
Member

Две находки раунда рецензии, пришедшего после слияния #44. Обе проверены прогоном, а не чтением.

Документ конфигурации обещал то, чего нет

Передатчик отдавал "authorization_schemes":[{"spec_urn":"urn:ietf:rfc:6749"}] - объявление защищённого интерфейса управления на хосте, который никого не аутентифицирует, - и "default_subjects":"NONE" при том, что его единственный объявленный поток покрывает всех субъектов.

Оба утверждения лечатся настройкой, и библиотека это прямо предусматривает: пустой список в AuthorizationSchemes означает «не объявлять ничего» (так сказано в документации свойства), а DefaultSubjectsMode публикует то, что покрывал бы поток, созданный через API управления.

Адреса самого API управления погасить нельзя - документ строит их из префикса маршрута независимо от того, что отображено, и это дефект библиотеки 2.4. В README он описан отдельно и остаётся описанным.

Важно, что это не косметика: конфигурационный документ - единственный артефакт пары, который посторонняя сторона разбирает машинно.

Комментарий у приёмника лгал о журнале

Он утверждал, что при расхождении путей доставка получает 404, который «читается в журнале передатчика точно так же, как лежащий приёмник».

Прогон обоих случаев против одного передатчика показывает обратное. Лежащий приёмник даёт многокадровый след SocketException (10061). Несовпадение пути даёт одну строку, кончающуюся на - 404, и больше ничего. Это самое громкое и самое тихое, что бывает в этом журнале.

При исправлении едва не появилась вторая неточность: первая редакция комментария говорила, что событие при 404 уходит из очереди. Это неверно. В PushDeliverySender неуспешный ответ, кроме 400, обрывает проход через break, и событие остаётся - ровно как при разрыве связи. Формулировка исправлена по коду: теряется не событие, а внимание, потому что тихий отказ повторяется на каждом проходе.

Проверки

Прогон живого передатчика после правки:

  • authorization_schemes в документе отсутствует;
  • default_subjects равен ALL;
  • предупреждение 2012 больше не появляется, 2011 остаётся - README обещает именно это;
  • оба проекта собираются без предупреждений.

Хост остановлен по владельцу порта, порт 5101 подтверждён свободным.

Почему отдельным PR, а не правкой того же коммита

Правка задумывалась вложенной в e61f163. Набор правил репозитория требует два пройденных проверочных прогона на любой пуш в главную ветку, а прямая отправка их не имеет - отказ GH013. Классическая защита ветки при этом сообщает, что принудительная отправка разрешена: два механизма дают разные ответы на один вопрос.

…ет, и назвать 404 по имени

Конфигурационный документ объявлял authorization_schemes с OAuth - обещание
защищённого интерфейса управления на хосте, который никого не аутентифицирует, -
и default_subjects: NONE при объявленном потоке с SubjectsMode: All. Оба лечатся
настройкой: пустой список означает «не объявлять ничего», DefaultSubjectsMode
публикует то, что покрывал бы созданный поток. Адреса управления погасить нельзя,
и об этом в README сказано отдельно.

Комментарий у приёмника утверждал, что 404 читается в журнале передатчика
точно так же, как лежащий приёмник. Прогон обоих случаев показывает обратное:
лежащий приёмник даёт след SocketException, а несовпадение пути - одну строку,
кончающуюся на 404. Событие при этом не теряется ни там, ни там: неуспешный
ответ обрывает проход и оставляет событие в очереди.

Проверено запуском: документ больше не содержит authorization_schemes,
default_subjects стал ALL, предупреждение 2012 не появляется, 2011 остаётся.
@kirill-abblix
kirill-abblix merged commit be0d870 into master Sep 7, 2026
2 checks passed
@kirill-abblix
kirill-abblix deleted the fix/ssf-sample-document-and-404 branch September 7, 2026 19:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant