EMQX5.0.4授权链在docker-compose文件中配置Index为1会报错

环境信息

  • EMQX 版本:5.0.4
  • 操作系统及版本:windows下docker启动
  • 其他

问题描述

EMQX是docker启动,配置信息是在docker-compose文件中配置的,授权链中第一个配置为EMQX_AUTHORIZATION__SOURCES__1__TYPE=redis,启动时报错。但如果第一个为file,第二个为redis时,就可以。

配置文件及日志

  - EMQX_AUTHORIZATION__SOURCES__1__TYPE=redis
  - EMQX_AUTHORIZATION__SOURCES__1__SERVER=127.0.0.1:6379
  - EMQX_AUTHORIZATION__SOURCES__1__REDIS_TYPE=single
  - EMQX_AUTHORIZATION__SOURCES__1__DATABASE=1
  - EMQX_AUTHORIZATION__SOURCES__1__CMD="HGETALL clientid:$${clientid}"
  - EMQX_AUTHORIZATION__SOURCES__2__TYPE=file
  - EMQX_AUTHORIZATION__SOURCES__2__PATH=etc/acl_.conf

从日志看,你当时的 redis 配置里可能有一个 authorization.sources.1.path,它不认这个配置项,所以出错了。

是的,改成2是可以启动的,但是我想设置授权链为redis+file,可设置成1就启动失败。

@qinl 您好,请问问题是否已经解决?如果尚未解决,我会继续跟进它。

根据你给出的错误日志,你应该需要将 1 和 2 的配置完整地调换一下:

  - EMQX_AUTHORIZATION__SOURCES__1__TYPE=file
  - EMQX_AUTHORIZATION__SOURCES__1__PATH=etc/acl_.conf
  - EMQX_AUTHORIZATION__SOURCES__2__TYPE=redis
  - EMQX_AUTHORIZATION__SOURCES__2__SERVER=127.0.0.1:6379
  - EMQX_AUTHORIZATION__SOURCES__2__REDIS_TYPE=single
  - EMQX_AUTHORIZATION__SOURCES__2__DATABASE=1
  - EMQX_AUTHORIZATION__SOURCES__2__CMD="HGETALL clientid:$${clientid}"

类型为 file 时,不应出现 Database 和 CMD 等配置项,所以解析时会报错。