4.4.19 emqx_auth_redis ACL 认证时未查询超级用户

auth.redis.type = single
auth.redis.server = 192.168.0.29:6379
auth.redis.pool = 8
auth.redis.database = 1
auth.redis.password = xxx
auth.redis.auth_cmd = HMGET mqtt_user:%u password
auth.redis.password_hash = plain
auth.redis.super_cmd = HGET mqtt_user:%u is_superuser
auth.redis.acl_cmd = HGETALL mqtt_acl:%c

订阅主题时,通过监控redis日志,只看到了:HGETALL" "mqtt_acl:clientId,没有发现查询超级用户

您好,现在的问题是什么?

现在我设置了超级用户,未生效,排查发现EMQX没有向Redis查询订阅主题的用户是不是超级用户

这个是在登录认证的时候查的。如果登录成功他就直接查出来放在缓存里面了。不需要每次订阅的时候再去 redis query一下。


we文档描述是“进行 ACL 鉴权时,EMQX 将使用当前客户端信息填充并执行用户配置的超级用户查询命令,查询客户端是否为超级用户。客户端为超级用户时将跳过 ACL 查询命令。”我现在是通过http_auth进行登录认证,不使用Redis进行登录认证,是不是就不能使用Redis ACL认证

很抱歉这文档没写清楚。
不过也可以这样搭配着用的。
得在 http 认证的时候返回是不是超级用户。而不是在 redis 授权的时候。
PS:其实所有的超级用户都是存在认证的,不管用哪一种组合。

收到,我下午测试一下