Cài đặt mqtts moquette authencation với database

B1: Tạo database tên moquette :

Tạo 1 table và tạp 3 user bằng lệnh sau:

 

DROP TABLE IF EXISTS `account`;

CREATE TABLE `account` (

  `ID` int(11) NOT NULL AUTO_INCREMENT,

  `LOGIN` varchar(255) NOT NULL,

  `PASSWORD` varchar(255) NOT NULL,

  PRIMARY KEY (`ID`)

) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

INSERT INTO `account` VALUES ('1', 'testuser', '0d6be69b264717f2dd33652e212b173104b4a647b7c11ae72e9885f11cd312fb');

INSERT INTO `account` VALUES ('2', 'testuser1', '0d6be69b264717f2dd33652e212b173104b4a647b7c11ae72e9885f11cd312fb');

INSERT INTO `account` VALUES ('3', 'testuser4', '0d6be69b264717f2dd33652e212b173104b4a647b7c11ae72e9885f11cd312fb');

 

B2. Chỉnh sửa trong file config/moquette.conf

- Chú thích lại phần authen bằng file config

    #password_file config/password_file.conf

- Add các config cho database

 

authenticator_class io.moquette.spi.impl.security.DBAuthenticator

authenticator.db.driver com.mysql.jdbc.Driver

authenticator.db.url jdbc:mysql://localhost:3306/moquette?user=root&password=

authenticator.db.query SELECT PASSWORD FROM ACCOUNT WHERE LOGIN=?

authenticator.db.digest SHA-256

 

B3. Restart lại mqtts broker.

Nếu xảy ra lỗi java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

Mình sẽ phải download thư viện mysql-connector-java-6.0.6.jar về

B4. Dùng mqtts client connect với địa chỉ: ssl:localhost:8883 để check lại mqtts broker

Với cái username/password: 

 

- testuser/ passwd

- testuser1/ passwd

- testuser4/ passwd