centos8环境下 emqx-4.2.14无法接收请求参数

在windows环境下. emqx-4.0.13 接收 auth、acl参数没问题.
当换成centos8环境 emqx-4.2.14 接收auth、acl参数就存在问题.参数值全部为null。 提示
Required request parameter ‘access’ for method parameter type String is not present.
大佬们.这是为啥啊. 这2个版本在传递参数上面没发现有啥区别啊

  • 你使用的什么认证插件?
  • 接收 auth/acl 参数的意思是,你自己部署了一个 HTTP 服务,使用 emqx 的 http 认证向你的 HTTP 服务发送请求的时候,某些参数变成 null 了吗?现在收到的请求是什么样子?
  • Required request parameter ‘access’ for method parameter type String is not present. 这个错误是哪个服务报的?是个日志吗?
  • 有条件的话,直接使用 4.4.x 的最新版本,老版本已经不在维护周期(开源版 4.4.19, 企业板 e4.4.20)

是的,使用了emq_auth_http插件. 接收不到参数了。 换成windows 4.0.13版本就可以接收. 但是这个问题我使用了linux环境 emq-5.3版本也还是报这个错,Required request parameter ‘access’ for method parameter type String is not present。 所以才换成4.2的。 想着windows4.0的没问题。可能是版本太高的原因

5.3版本的是docker部署的. 使用了http认证. 有定义请求体参数. 参数名是一致的

首先推荐使用正在维护的最新版本 5.3.0 以及 4.4.x,推荐使用 linux 和容器环境。

  1. 现在我还没有搞清楚这个错误是从哪儿来的,它不像是 emqx 的日志:Required request parameter ‘access’ for method parameter type String is not present

  2. 打开 debug 日志级别,看一下客户端鉴权失败的时候 emqx 的日志: emqx.log.*

  3. 抓一下 emqx 发送到 HTTP 服务的请求详细内容,贴出来看看。

现已改成docker 5.2.1版本.仍然存在问题.我详细描述一下问题:
1.环境: docker emqx-5.2.1
2.认证方式 HTTP
请求参数设置:


3.使用MQTTX连接测试认证服务
4.认证服务的日志内容
Required request parameter ‘clientid’ for method parameter type String is not present
org.springframework.web.bind.MissingServletRequestParameterException: Required request
parameter ‘clientid’ for method parameter type String is not present
5.认证服务接收参数的方法

6.同样的代码.换成 windows-4.0.13 是没问题的。 我有点奇怪,接收参数是必不可少的一步.为啥其他人没遇到这样的问题。

对不起,打扰大佬了,我是个菜鸡,用@RequestBody接收参数就行了