emqx httqauth 插件权限校验返回给客户端不能定义返回码

错误报告

环境

  • EMQX 版本:4.2.14
  • 操作系统版本:centos7.9

重现此问题的步骤

权限校验使用的是 httpauth 插件,http接口返回码有200或者403 、401,但是客户端在连接emqx并经过httpauth插件校验后,不能拿到这个返回码,这个是什么原因?是不是emqx接收到http插件的这个返回码后有做了修改?

HTTP Server 返回的是 HTTP Status Code,EMQX 返回的是 MQTT Reason Code,两个不是一套体系。

能不能在HTTP Status Code中控制或者映射MQTT Reason Code,据测试,多个HTTP Status Code返回给客户端的编码,客户端接收的都是同一个编码什么136什么的,客户端无法通过HTTP Status Code的返回码来展示是具体什么错误

MQTT 提供的 Reason Code 应该也只有 0x86(用户名密码密码)和 0x87(未授权)这两个可以指示认证失败吧

是的,测试还有一个136.。。没有其他编码可用吗?这样的话无法细致展示一些具体原因

可以考虑返回一些自定义的 Reason String,不过目前 EMQX 还没有支持这个功能。