Пароли разные и я могу посмотреть опубликованные сообщения?

В приведенном ниже фрагменте кода я объявляю username а также passqord для подписки.

private final String userName = "user_1";
private final char[] password = "pass".toCharArray();
....
....
final MqttAndroidClient client_1 = new MqttAndroidClient(getApplicationContext(), serverURI,   
clientID, persistenceDataDir, Ack.AUTO_ACK);
MqttConnectOptions opts = new MqttConnectOptions();
opts.setCleanSession(false);
opts.setWill(WILL_TOPIC, WILL_MSG.getBytes(), QoS, false);
opts.setKeepAliveInterval(keepAliveInterval);
opts.setUserName(userName);
opts.setPassword(password);

Я установил соединение из приложения с clean session = false а также client ID = 1 без ввода пароля и имени пользователя, и я продолжал публиковать (от ПК до посредника) значения темы, на которую я подписан (от приложения до посредника).

Позже в subscribe В настройках подключения я установил пароль и имя пользователя, но не указал имя пользователя и пароль. publish сообщение и повторно запустите p. что происходит, я получил обновленные опубликованные значения темы, на которую я подписан.

После этого в publish я указал неправильное имя пользователя и пароль и подписался на одну и ту же тему, и когда я запускаю приложение, я получаю значения как обычно.

Я неправильно использую пароль и имя пользователя?

На заметку: я пробовал ту же процедуру с разными clientID и я получаю опубликованные значения даже с неправильным паролем.

1 ответ

Вам необходимо настроить файл acl и файл паролей, чтобы имена пользователей и пароли управляли доступом к темам.

Пожалуйста, прочитайте справочные страницы mosqitto.conf и mosquitto_passwd для получения подробной информации о формате обоих этих файлов.

http://mosquitto.org/man/mosquitto-conf-5.html

http://mosquitto.org/man/mosquitto_passwd-1.html

Другие вопросы по тегам