关于HTTP认证携带的客户端属性的使用

目前我这边平台采用了 HTTP 认证方式。

现在授权的实现想采用以下方式:

  • http 认证响应携带自定义的客户端属性,比如:client_attrs.mac
  • 在 ACL 文件配置中,采用自定义属性进行订阅控制。如:
    {allow, {clientid, {re, “^xxx”}}, subscribe, [{eq, “device/${client_attrs.mac}/#”}]}.

问题点:

  1. 这种在ACL文件中,使用自定义的客户端属性作为占位符进行订阅控制是否可以实现
  2. 如可以实现,这种方案是否有缓存(主要担心设备每次发布消息都要判断,影响效率)
  3. 如可以实现,这种方案效率是否可以,不采取数据库这些方案是考虑到后续设备权限有变动的话,维护成本有点大

支持,可见文档中的主题占位符章节

  1. acl 文件授权都有缓存的。
  2. 效率不错,建议结合自己的场景压测一下。

感谢回复,方案经验证可实现。

现在还有一个问题,这里写着占位符只能用于替换主题的整个字段,但是实际使用类似 aaaa/${client_attrs.bbb}/${client_attrs.ccc}_fixed 还是能生效,目前采用的版本是 5.7