RocketMQ 身份验证 JAVA-ROCKET-CLIENT

1,892 阅读1分钟

在broker.conf 添加acl 验证

 aclEnable=true

编辑plain_acl.yml 添加账号密码

globalWhiteRemoteAddresses:  // 设置IP白名单
- 10.10.103.*
- 192.168.0.*
accounts:   // 配置用户信息
- accessKey: RocketMQ //账号
  secretKey: 12345678 //密码
  whiteRemoteAddress:  // 用户级别的IP地址白名单
  admin: true   // 当为 true 可以删除以下所有的配置
  defaultTopicPerm: DENY  // DENY拒绝、SUB 订阅权限、PUB 发送权限
  defaultGroupPerm: SUB
  topicPerms:
  - topicA=DENY
  - topicB=PUB|SUB
  - topicC=SUB
  groupPerms:
  - groupA=DENY
  - groupB=PUB|SUB
  - groupC=SUB
 - accessKey: RocketMQ2 //账号
  secretKey: 12345678 //密码
  whiteRemoteAddress:  // 用户级别的IP地址白名单
  admin: false   // 当为 true 可以删除以下所有的配置
  defaultTopicPerm: DENY  // DENY拒绝、SUB 订阅权限、PUB 发送权限
  defaultGroupPerm: SUB
  topicPerms:
  - topicA=DENY
  - topicB=PUB|SUB
  - topicC=SUB
  groupPerms:
  - groupA=DENY
  - groupB=PUB|SUB
  - groupC=SUB

重启broker

pox.xml 添加依赖

<dependency>
			<groupId>org.apache.rocketmq</groupId>
			<artifactId>rocketmq-client</artifactId>
			<version>4.9.4</version>
		</dependency>
<dependency>
    <groupId>org.apache.rocketmq</groupId>
    <artifactId>rocketmq-acl</artifactId>
    <version>4.9.4</version>
</dependency>

生产者和消费者都要加上访问控制权限

//消费者
AclClientRPCHook auth = new AclClientRPCHook(new SessionCredentials("RocketMQ", "12345678"));
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("please_rename_unique_group_name", auth,
				new AllocateMessageQueueAveragely());
                                
                                
//生成者
AclClientRPCHook auth = new AclClientRPCHook(new SessionCredentials("chenshan", "3.1415926"));
		DefaultMQProducer producer = new DefaultMQProducer("please_rename_unique_group_name", auth);



如果开启了ACL验证未添加验证则:
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.rocketmq.client.exception.MQBrokerException: CODE: 1  DESC: org.apache.rocketmq.acl.common.AclException: No accessKey is configured, org.apache.rocketmq.acl.plain.PlainPermissionManager.validate(PlainPermissionManager.java:663) BROKER: 114.55.95.161:10911
For more information, please visit the url, http://rocketmq.apache.org/docs/faq/