EMQX5.0 HTTP认证当认证服务器重启后EMQX无法再次完成认证

当使用http认证来校验设备合法性的时候,当认证服务重启以后,设备将再也无法连接至EMQX,除非手动启停一次http认证插件。

正确使用http认证服务的姿势是什么样的呢?

正常来说,当认证服务重启后,EMQX 会自动进行重连,我们这边会尽快排查这个问题

有结果了吗?

已经在当前版本修复 v5.0.2

v5.0.2版本,http认证相同认证服务接口不可用。

日志如下:

2022-07-04T22:49:23+08:00 [MQTT] 916295934@192.168.1.154:54183 msg: mqtt_packet_received, packet: CONNECT(Q0, R0, D0),ClientId=916295934, ProtoName=MQIsdp, ProtoVsn=3, CleanStart=true, KeepAlive=300, Username=11, Password=******
2022-07-04T22:49:23+08:00 [QUERY] 916295934@192.168.1.154:54183 msg: http_connector_received, connector: emqx_authn_http:2,request: {"/device/deviceLogin",[{<<"accept">>,<<"application/json">>},{<<"cache-control">>,<<"no-cache">>},{<<"connection">>,<<"keep-alive">>},{<<"content-type">>,<<"application/json">>},{<<"keep-alive">>,<<"timeout=30, max=1000">>}],<<"{\"userName\":\"11\",\"password\":\"111\",\"clientId\":\"916295934\"}">>},state: [base_path: /,connect_timeout: 5000,host: {192,168,1,154},pool_name: emqx_authn_http:2:35,port: 8888,request: undefined]
2022-07-04T22:49:23+08:00 [MQTT] 916295934@192.168.1.154:54183 msg: mqtt_packet_sent, packet: CONNACK(Q0, R0, D0),AckFlags=0, ReasonCode=5
2022-07-04T22:49:23+08:00 [SOCKET] 916295934@192.168.1.154:54183 msg: emqx_connection_terminated, reason: {shutdown,not_authorized}

接口修改为response body 响应result则正常可用,以前的状态码已不可用。

是的 5.0 对于依赖的 API 格式做了规范…所以不兼容老的格式了。
参考文档: https://www.emqx.io/docs/zh/v5.0/security/authn/http.html#认证原理