Mqtt EMQX-httpacl-auth-broker-isn';不可用

Mqtt EMQX-httpacl-auth-broker-isn';不可用,mqtt,paho,Mqtt,Paho,我使用EMQ X Broker v4.0.1。简单的http身份验证可以正常工作,但当我尝试使用http ACL身份验证时,它对我不起作用,尽管设置非常接近。当我试图通过EclipsePAHO引用代理时,我得到了状态代码为3的错误,这意味着代理不可用。我从仪表板打开了emqx_auth_http。这是我对http ACL auth的EMQX设置: emqx.conf listener.tcp.external = 1884 plugins/emqx_auth_http.conf auth.ht

我使用EMQ X Broker v4.0.1。简单的http身份验证可以正常工作,但当我尝试使用http ACL身份验证时,它对我不起作用,尽管设置非常接近。当我试图通过EclipsePAHO引用代理时,我得到了状态代码为3的错误,这意味着代理不可用。我从仪表板打开了emqx_auth_http。这是我对http ACL auth的EMQX设置:

emqx.conf

listener.tcp.external = 1884
plugins/emqx_auth_http.conf

auth.http.auth_req = http://127.0.0.1:8991/mqtt/auth
auth.http.auth_req.method = post
auth.http.auth_req.params = clientid=%c,username=%u,password=%P

auth.http.super_req = http://somesite.com/mqtt/superuser
auth.http.super_req.method = post
auth.http.super_req.params = clientid=%c,username=%u

auth.http.acl_req = http://somesite/mqtt/acl
auth.http.acl_req.method = post
auth.http.acl_req.params = access=%A,username=%u,clientid=%c,ipaddr=%a,topic=%t,mountpoint=%m

auth.http.request.retry_times = 3
auth.http.request.retry_interval = 1s
auth.http.request.retry_backoff = 2.0

端点(,)工作正常,我可以通过Postaman应用程序访问它。也许你可以告诉我我的配置哪里出错了,或者在其他地方出错了?

也许你需要提供你的HTTP服务器代码

http响应状态200正常 http响应状态4xx未经授权 http响应状态为200,主体为
ignore
表示中断 这是一个刚刚通过测试的项目:

/**
*认证
*/
router.post('/mqtt/auth',async(ctx,next)=>{
const{clientid,username,password}=ctx.request.body
//嘲弄
//200表示可以
如果(clientid==''| |'您的条件'){
ctx.body=“”
}否则{
//4xx未经授权
ctx.status=401
}
})
/**
*前交叉韧带
*/
router.post('/mqtt/acl',async(ctx,next)=>{
/**
*请求主体
*访问权限:1 | 2,1=sub,2=pub
*身体里的访问现在是字符串!!!
{
访问权限:“1”,
用户名:“未定义”,
clientid:'mqttjs_bf980bf7',
ipaddr:'127.0.0.1',
主题:“t/1”,
挂载点:“未定义”
}
*/
const info=ctx.request.body
控制台日志(信息)
如果(info.topic=='t/2'){
//200就可以了
ctx.body=“”
}否则{
//4xx是未经授权的
ctx.status=403
}
})

谢谢您的回复。我认为这是个问题。我解决了这个问题,但我不知道怎么解决。我已经重新安装了broker,并使用相同的属性对其进行了配置,现在auth工作正常。