Главная » Разборы

Dynamic Security Mosquitto: разрешённая подписка не гарантирует каждую доставку

Запросить

Dynamic Security отдельно проверяет публикацию от клиента, доставку клиенту, подписку и отписку. PublishClientReceive относится к моменту выдачи подходящего PUBLISH уже имеющему подписку клиенту. Это позволяет разрешить широкую подписку, но ограничить отдельную часть фактических сообщений внутри неё.

SubscribeLiteral сравнивает фильтр буквально, а SubscribePattern использует сопоставление с шаблоном. Поэтому запрет буквального фильтра # не равен запрету всех возможных подписок. При выборе типа ACL нужно понимать, ограничивается ли конкретная строка запроса или множество фильтров, которые ей соответствуют.

Если подходящего ACL нет, действует отдельная политика по умолчанию для соответствующего события. При начальной настройке плагин различает эти политики, а не использует единый общий allow либо deny для всех действий. Существующую конфигурацию проверяют фактически: её defaults могли быть изменены во время эксплуатации.

В приёмке получают разрешённую wildcard-подписку и публикуют известные сообщения в разрешённую и исключённую ветки. Проверяют ответ SUBSCRIBE отдельно от получения PUBLISH. Само наличие активной подписки не подтверждает право на каждое сообщение, а отсутствие сообщения не обязательно означает потерю канала или ошибку издателя.

Основание — Eclipse Mosquitto official unversioned documentation snapshot; Download index observed 2.1.2, разделы ACL events; default access; literal and pattern. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Реальный брокер, его сборка, плагины и сеть не испытывались. Изменения конфигурации, учётных записей и прав не выполнялись; поддержку параметров проверяют по установленной версии.

Все разборы

Весь каталог Motorola и аналогов — 13 позиций

Возимые и носимые станции, TETRA, PoC и Си-Би — всё, что держим на складе.