Страница 1 из 1

Авторизация MQTT

Добавлено: Ср фев 03, 2016 9:34 pm
Pooh
Проблема:
если /etc/mosquitto/mosquitto.conf оставить дефолтным, в настройках MQTT Majordomo не ставить галочку "authorization required" и не задавать логин-пароль, то все тестовые топики видно (отправлял с клиента на ардуино и с клиента mqtt-spy)
если же в /etc/mosquitto/mosquitto.conf добавить:
allow_anonymous false
password_file /etc/mosquitto/passwd
acl_file /etc/mosquitto/mosquitto.acl
(ну и соотв. сгенерить пароль с помощью mosquitto_passwd и разрешить созданному юзеру доступ ко всем топикам - topic #)
и в настройках MQTT Majordomo поставить галочку "authorization required" и задать соотв. логин-пароль, то Majordomo перестает видеть сообщения, хотя остальные клиенты (после соотв. авторизации естссно..) прекрасно видят :-(
Авторизация не работает или я что-то не так делаю?

ЗЫ debian, брокер локальный с москитовской репы

Re: Авторизация MQTT

Добавлено: Ср фев 03, 2016 11:25 pm
komper
У меня то же самое
Уже и незнаю как быть :(

Re: Авторизация MQTT

Добавлено: Чт фев 04, 2016 12:25 am
skw
komper писал(а):У меня то же самое
Уже и незнаю как быть :(
Нужно поправить скрипт cycle_mqtt.php:

Было:
//$mqtt_client = new phpMQTT($host, $port, "MajorDoMo MQTT Client");

//if (!$mqtt_client->connect())
//{
// exit(1);
//}

Стало:
$mqtt_client = new phpMQTT($host, $port, "MajorDoMo MQTT Client");

if ($mqtt->config['MQTT_AUTH'])
{
if (!$mqtt_client->connect(true, NULL, $username, $password)) {
exit(1);
}
}
else
{
if (!$mqtt_client->connect())
{
exit(1);
}
}

Желательно, чтобы автор внес исправления в проект. Задалбывает менять после каждого обновления.

Re: Авторизация MQTT

Добавлено: Чт фев 04, 2016 7:08 am
Pooh
swk, спасибо, проблема решена, надеюсь Сергей мониторит форум и поправит в следующем обновлении

Re: Авторизация MQTT

Добавлено: Чт фев 04, 2016 1:48 pm
sergejey
Исправил в репозитории.
Спасибо за наводку в личку -- я за всеми топиками не слежу, поэтому если "задалбывает менять после каждого обновления", то надо с этим что-то делать ))