http认证通过但是无法连接

错误报告

2022-12-20T11:55:27.258812+08:00 [error] body: <<123,34,99,111,100,101,34,58,48,44,34,109,101,115,115,97,103,101,34,58,34,230,147,141,228,189,156,230,136,144,229,138,159,34,44,34,100,97,116,97,34,58,110,117,108,108,44,34,101,114,114,111,114,34,58,110,117,108,108,44,34,116,105,109,101,115,116,97,109,112,34,58,49,54,55,49,53,48,56,53,50,56,44,34,114,101,113,95,105,100,34,58,34,53,102,48,54,99,98,…>>, clientid: 111, content_type: <<“application/json”>>, line: 93, mfa: emqx_authz_http:authorize/4, msg: authz_http_response_incorrect, peername: 10.233.64.0:24185

环境

  • EMQX 版本:5.0.2
  • 操作系统版本:Linux

重现此问题的步骤

  1. 我新建了一个http认证,一个内置数据库认证,http认证放第一个
  2. http认证接口正常返回200 {“result”: “allow”},但是工具提示连接失败
  3. 后台看日志没反应,往前翻看到上述报错,不知道有没有关系
    4.如果用内置数据库里的用户连接,则正常连接

你应该是启用了 HTTP Server 授权吧?看日志是响应格式不正确。

有启用授权,只是连接也会经过授权吗,还没有订阅主题,认证服务器后台看,有认证的日志,没有授权的日志,授权和认证响应结构体都是一样的json

{
    "result": "allow"
}

状态码200

正常情况下,即便授权失败,也不会使连接断开的,这个日志应该是干扰项,你可以追踪一下客户端看看。然后 5.0.2 是比较早的版本了,建议升级到 5.0 的最新版本,可以避免不少问题。

文档看错了,还是看的4.x的文档,特地又加上了httpstatus,结果都乱了 :joy: