EMQ 问答社区

设置allow_anonymous = false,钩子服务登录都没校验,所有终端都不能登录

环境信息

  • EMQ X 版本:4.3.1
  • 操作系统及版本:centos
  • 其他

问题描述

allow_anonymous = false,插件emqx_exhook也启动了,

@Override
    public void onClientAuthenticate(ClientAuthenticateRequest request, StreamObserver<ValuedResponse> responseObserver) {
        reply = ValuedResponse.newBuilder().setBoolResult(true).build();
        responseObserver.onNext(reply);
        responseObserver.onCompleted();
    }

onClientConnack 方法返回 "resultCode_":"not_authorized",终端不能登录,还需要哪里设置吗?

设置了false之后是关闭了匿名登录,这时候就会有登录认证,不知道你采取的哪种认证方式?检查你登录的信息是否正确

插件的认证方式都没开启,onClientAuthenticate这个方法已经放行了,应该就放行了吧

  1. 更新到最新的版本
reply = ValuedResponse.newBuilder().setBoolResult(true).build();

改为

reply = ValuedResponse.newBuilder()
                                         .setBoolResult(true)
                                         .setType(ValuedResponse.ResponsedType.STOP_AND_RETURN)
                                         .build();

然后再试试呢

reply = ValuedResponse.newBuilder()
                                         .setBoolResult(true)
                                         .setType(ValuedResponse.ResponsedType.STOP_AND_RETURN)
                                         .build();

这种是不通过才给的返回吧,现在是我直接都放行,还是报not_authorized ,终端登录不上