测试背景
基于测试版本为RocketMQ 4.8.0版本,主要是测试ACL功能
首先上配置文件:
accounts:
- accessKey: rocketmq
secretKey: 12345678123
whiteRemoteAddress:
admin: false
defaultTopicPerm: DENY
defaultGroupPerm: DENY
topicPerms:
- topicA=DENY
- topicB=PUB|SUB
- topicC=SUB
- topicD=PUB
groupPerms:
# the group should convert to retry topic
- groupA=DENY
- groupB=PUB|SUB
- groupC=SUB
- groupD=PUB
测试账号为rocketmq,topic 一共有5个,另外包含topicX,groupID也有5个,除了配置文件中包含的A-D还有groupX
生产测试
测试结果
生产者测试 | |
Topic | 写入结果 |
topicA | 禁止写入 |
topicB | 写入成功 |
topicC | 写入成功 |
topicD | 写入成功 |
topicX | 写入成功 |
测试结论:
1、当配置topic无PUB权限时,无法往topic中写入数据
2、是否有权限写入数据和groupID无关
3、当topic没有在配置列表中,默认是能写入(感觉这个有点坑,权限没有管控到位)
消费测试
测试结果:
消费者测试(第一组) | ||
Topic | groupID | 消费结果 |
topicA | groupA | 无法消费 |
topicB | groupA | 无法消费 |
topicC | groupA | 无法消费 |
topicD | groupA | 无法消费 |
topicA | groupB | 无法消费 |
topicB | groupB | 正常 |
topicC | groupB | 正常 |
topicD | groupB | 无法消费 |
topicA | groupC | 无法消费 |
topicB | groupC | 正常 |
topicC | groupC | 正常 |
topicD | groupC | 无法消费 |
topicA | groupD | 无法消费 |
topicB | groupD | 正常 |
topicC | groupD | 正常 |
topicD | groupD | 无法消费 |
消费者测试(第二组) | ||
Topic | groupID | 消费结果 |
topicA | groupx | 无法消费 |
topicB | groupx | 正常 |
topicC | groupx | 正常 |
topicD | groupx | 无法消费 |
topicX | groupA | 无法消费 |
topicX | groupB | 无法消费 |
topicX | groupC | 无法消费 |
topicX | groupD | 无法消费 |
topicX | groupx | 无法消费 |
测试结果:
1、当配置了groupID,有SUB权限时能正常消费数据
2、配置列表topicPerm没有的topic,无论groupID是什么都无法消费
3、配置列表topicPerm的topic有SUB权限,无论groupID是什么都能正常消费