Пользователь: XYZ не имеет разрешения = 'ОТПРАВИТЬ' на адрес - PullRequest
0 голосов
/ 27 марта 2020

Я могу аутентифицироваться через веб-консоль, а также с помощью команды bin/artemis producer с учетными данными с моего сервера LDAP. Когда я использую те же учетные данные с mosquitto_pub для одной и той же топи c, в журнале появляется сообщение

User: $username does not have permission='SEND' on address $address" 

Я также проверил разрешенные роли в журналах - они одинаковы для mosquitto_pub что касается artemis producer. В моем случае они разрешают роль producer, которая имеет права admin.

Есть ли разница в авторизации в зависимости от протоколов? Похоже, что авторизация работает для протокола CORE, а также для AMQP (я проверял оба с помощью artemis producer).

К сожалению, я не могу перепроверить, что с artemis producer --protocol MQTT - это не с "протоколом MQTT не поддерживается ".

1 Ответ

0 голосов
/ 27 марта 2020

Как отмечено в документации , устаревшее разрешение admin не сопоставлено с разрешением send:

ActiveMQ 5.x имеет только 3 типа разрешений - read, write и admin. Эти типы разрешений описаны на их веб-сайте . Однако, как описано ранее, ActiveMQ Artemis имеет 9 типов разрешений - createAddress, deleteAddress, createDurableQueue, deleteDurableQueue, createNonDurableQueue, deleteNonDurableQueue, send, consume, browse и manage. Вот как старые типы отображаются на новые типы:

  • read - consume, browse
  • write - send
  • admin - createAddress, deleteAddress, createDurableQueue, deleteDurableQueue, createNonDurableQueue, deleteNonDurableQueue, manage (если mapAdminToManage равно true)

Следовательно, вашей роли producer требуется разрешение write.

Не ясно, почему команда producer работает для других протоколов (например, core & AMQP), но в зависимости от того, что вы При условии, я считаю, что именно поэтому он не работает для MQTT.

...