как заставить клиентов динамически проверять подлинность брокера mqtt с помощью их собственных учетных данных - PullRequest
0 голосов
/ 25 октября 2018

Вот код для аутентификации брокера mqtt с помощью интеграции mqtt-spring,

public DefaultMqttPahoClientFactory clientfactory() {

    DefaultMqttPahoClientFactory factory = new DefaultMqttPahoClientFactory();
    MqttConnectOptions options = new MqttConnectOptions();
    options.setUserName("username");
    options.setPassword("password".toCharArray());
    options.setServerURIs(new String[] { "tcp://localhost:1883" });
    factory.setConnectionOptions(options);

    return factory;
}

@Bean
@ServiceActivator(inputChannel = "mqttOutboundChannel")
public MqttPahoMessageHandler mqqtMessageHandler() {

    MqttPahoMessageHandler handler = new MqttPahoMessageHandler("clientId", clientfactory());
    handler.setAsync(true);
    handler.setDefaultQos(2);
    handler.setDefaultRetained(true);
    return handler;
} 

Предположим, я использую много клиентов для публикации данных в их собственном наборе тем. И я должен назначитьуникальные учетные данные аутентификации для каждого клиента для установления соединения с mqtt-брокером. Я думаю, что приведенный выше код допускает только один набор учетных данных, даже если мы используем много клиентов. Можно ли сделать динамическим?

1 Ответ

0 голосов
/ 25 октября 2018

Вам необходимо заменить DefaultMqttPahoClientFactory на собственную реализацию MqttPahoClientFactory;возможно подкласс DefaultMqttPahoClientFactory.

...