auth.mysql.server
Type | Default |
---|
ip | 127.0.0.1:3306 |
说明
MySQL 服务器地址。
auth.mysql.pool
说明
数据库连接线程池大小。
auth.mysql.username
说明
MySQL 用户名。
auth.mysql.password
说明
MySQL 密码。
auth.mysql.database
说明
MySQL 数据库名称。
auth.mysql.query_timeout
说明
MySQL 数据查询超时时间。查询超时将等同于未找到用户数据处理。
auth.mysql.auth_query
Type | Default |
---|
string | select password from mqtt_user where username = ‘%u’ limit 1 |
说明
认证时使用的 MySQL 选取语句,选取出来的数据将与经过由 auth.mysql.password_hash
指定的加密方式加密的密码进行比较,比较后内容一致的客户端将被允许登录。加盐后存储的密码需要同时选取盐对应的字段,例如 select password, salt from mqtt_user where username = '%u' limit 1
。password
与 salt
字段名不可以修改,表名与 WHERE 子句中的字段名可以视情况变化。WHERE 子句支持以下占位符:
占位符 | 说明 |
---|
%u | 将被替换为 MQTT 客户端在 CONNECT 报文中指定的用户名 |
%c | 将被替换为 MQTT 客户端在 CONNECT 报文中指定的客户端标识符 |
%C | 将被替换为 TLS 连接时客户端证书中的 Common Name |
%d | 将被替换为 TLS 连接时客户端证书中的 Subject |
auth.mysql.password_hash
说明
存储在数据库的密码所使用的加密方式。支持以下加密方式:
plain
,支持前后加盐,例如 salt,plain
md5
,支持前后加盐sha
,支持前后加盐sha256
,支持前后加盐sha512
,支持前后加盐pbkdf2
,格式为 pbkdf2,<Hashfun>,<Iterations>,<Dklen>
。其中,<Hashfun>
为使用的哈希函数,支持 md4
,md5
,ripemd160
,sha
,sha224
,sha256
,sha384
,sha512
,<Iterations>
为迭代次数,<Dklen>
为导出密钥长度。示例:pbkdf2,sha256,1000,20
bcrypt
,仅支持前向加盐,例如 salt,bcrypt
auth.mysql.super_query
Type | Default |
---|
string | select is_superuser from mqtt_user where username = ‘%u’ limit 1 |
说明
超级用户认证时使用的 SQL 选取语句,此语句中所有表名与字段名都可视情况修改,当且仅当选取得到字段的值为 1
时,该用户为超级用户。WHERE 子句中支持的占位符与 auth.mysql.auth_query
相同。
auth.mysql.acl_query
Type | Default |
---|
string | select allow, ipaddr, username, clientid, access, topic from mqtt_acl where ipaddr = ‘%a’ or username = ‘%u’ or username = ‘$all’ or clientid = ‘%c’ |
说明
ACL 校验时使用的 SQL 选取语句,此语句中所有表名与字段名都可视情况修改。WHERE 子句中支持的占位符如下:
占位符 | 说明 |
---|
%a | 将被替换为客户端 IP 地址 |
%u | 将被替换为 MQTT 客户端在 CONNECT 报文中指定的用户名 |
%c | 将被替换为 MQTT 客户端在 CONNECT 报文中指定的客户端标识符 |