1、在rocket mq 的conf/broker.conf文件新增一行aclEnable=true

2、在rocket mq 的conf/plain_acl.yml 文件增加topic的权限

globalWhiteRemoteAddresses:
- 10.10.15.*
- 192.168.0.*
 
accounts:
- accessKey: RocketMQ
  secretKey: 12345678
  whiteRemoteAddress:
  admin: false
  defaultTopicPerm: DENY
  defaultGroupPerm: SUB
  topicPerms:
  - topicA=DENY
  - topicB=PUB|SUB
  - topicC=SUB
  groupPerms:
  # the group should convert to retry topic
  - groupA=DENY
  - groupB=PUB|SUB
  - groupC=SUB
 
- accessKey: rocketmq2
  secretKey: 12345678

解释:PUB生产者权限,SUB是订阅者权限,DENY是拒绝。

这里只有accessKey的为admin权限时才可以创建和修改topic。

增加acl的maven依赖:


生产者代码:

package acl;import org.apache.rocketmq.acl.common.AclClientRPCHook;
import org.apache.rocketmq.acl.common.SessionCredentials;
import org.apache.rocketmq.client.exception.MQBrokerException;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.remoting.RPCHook;
import org.apache.rocketmq.remoting.exception.RemotingException;public class AclProducer {public static void main(String[] args)throws MQClientException, InterruptedException, RemotingException, MQBrokerException {DefaultMQProducer producer = new DefaultMQProducer("rexel_notice_p1", getAclRPCHook());producer.setNamesrvAddr("192.168.29.100:9876;192.168.29.101:9876");producer.start();Message msg = new Message("rexel_notice" ,"*" , ("Hello RocketMQ ").getBytes());SendResult sendResult = producer.send(msg);System.out.printf("%s%n", sendResult);producer.shutdown();}static RPCHook getAclRPCHook() {return new AclClientRPCHook(new SessionCredentials("rexel_developer","19@ljWo2iUow"));}
}

消费者代码:

package acl;import java.util.List;
import org.apache.rocketmq.acl.common.AclClientRPCHook;
import org.apache.rocketmq.acl.common.SessionCredentials;
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
import org.apache.rocketmq.client.consumer.rebalance.AllocateMessageQueueAveragely;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.common.consumer.ConsumeFromWhere;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.remoting.RPCHook;public class AclConsumer {public static void main(String[] args) throws MQClientException {DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("rexel_notice_g1", getAclRPCHook(), new AllocateMessageQueueAveragely());consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);consumer.subscribe("rexel_notice", "*");consumer.setNamesrvAddr("192.168.29.100:9876;192.168.29.101:9876");consumer.registerMessageListener(new MessageListenerConcurrently() {@Overridepublic ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs,ConsumeConcurrentlyContext context) {System.out.printf("%s Receive New Messages: %s %n", Thread.currentThread().getName(), msgs);return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;}});consumer.start();System.out.printf("Consumer Started.%n");}static RPCHook getAclRPCHook() {return new AclClientRPCHook(new SessionCredentials("rexel_developer","19@ljWo2iUow"));}
}

增加了权限之后,没有办法通过控制台命令上创建topic了。

是通过rocketmq-console来进行Topic及ConsumerGroup管理的。

rocket mq 用户名密码访问相关推荐

  1. 二、Prometheus TLS加密认证和基于 basic_auth 用户名密码访问

    文章目录 Prometheus 基于用户名密码访问 1. `Node Export`端配置密码 2. 在被监控端这里生成密码 3. 在node_exporter中新增配置文件 4. node_expo ...

  2. Kafka配置用户名密码访问

    1 软件版本 kafka_2.12-2.4.0.tgz(带zookeeper) 2 kafka服务端部署 2.1 将安装包上传到服务器,并解压 tar zxvf kafka_2.12-2.4.0.tg ...

  3. Identity Server4学习系列四之用户名密码获得访问令牌

    1.简介 Identity Server4支持用户名密码模式,允许调用客户端使用用户名密码来获得访问Api资源(遵循Auth 2.0协议)的Access Token,MS可能考虑兼容老的系统,实现了这 ...

  4. C#访问网络共享文件夹,带用户名密码域,解决电脑重启后访问不到网络文件夹

    问题:winform访问网络共享文件夹,电脑重启后访问不到指定目录 原因:访问网络共享文件夹目录需要相关的用户凭据,文件资源管理器可以记住凭据,但是电脑重启后直接用软件访问网络文件夹路径是没有凭据的, ...

  5. nginx配置访问密码,让用户输入用户名密码才能访问

    如果我们在 nginx 下搭建了一些站点,但是由于站点内容或者流量的关系,我们并不想让所有人都能正常访问,那么我们可以设置访问认证.只有让用户输入正确的用户名和密码才能正常访问.效果如下: 在 ngi ...

  6. win7系统下访问网上邻居提示用户名密码错误

    win7系统下访问网上邻居提示用户名密码错误 解决方法如下: 1)在搜索栏中输入gpedit.msc调出组策略编辑器 2)计算机配置下依次点击[windows设置]--[安全设置]--[本地策略]-- ...

  7. Nginx之让用户通过用户名密码认证访问web站点

    有时我们会有这么一种需求,就是你的网站并不想提供一个公共的访问或者某些页面不希望公开,我们希望的是某些特定的客户端可以访问. 那么我们可以在访问时要求进行身份认证,就如给你自己的家门加一把锁,以拒绝那 ...

  8. 【阿里云 Linux 服务器】在阿里云购买的 Linux 或者 Windows 服务器,在用 putty 访问的时候不知道用户名密码怎么办?

    阿里云服务器学习一: 问题描述: 在阿里云购买的 Linux 或者 Windows 服务器,在用 putty 访问的时候不知道用户名密码怎么办 解决方法: 购买的阿里云服务器一开始没有所谓的初始密码, ...

  9. Windows 7英文版访问2003或XP共享时提示用户名密码错误的解决办法

    我这个人没事就喜欢玩系统,前两天把系统从Windows 2008 R2换回了英文版Windows 7(装了汉化包),但却无法访问Windows Server 2003的共享了,但用同一个密码能访问20 ...

最新文章

  1. 鸿蒙系统方舟运行时,方舟编译器立功!第三方App已经落地,距离鸿蒙系统还会远吗?...
  2. 赠票 | 第三届语言与智能高峰论坛200个免费参会名额!
  3. 程序员的浪漫:女神节专用开源项目
  4. 抽象类的基本概念------abstract
  5. java+character类使用_Java Character类应用实例
  6. 太极图python自定义函数绘制_[宜配屋]听图阁
  7. 在sharepoint中添加视频播放
  8. 记一次ajax交互问题
  9. Atitit TPL(事务处理语言 目录 1.1. 事务隔离级别 1 1.2. Savepoint技术 1 2. Tpl 1 2.1.  打开事务 START TRANSACTION; 1 2.2.
  10. 全国计算机二级公共基础知识电子版,全国计算机二级公共基础知识汇总.pdf
  11. 最全地理数据下载地址/全国地表径流量数据获取/土地利用数据/植被类型数据/NPP数据/土壤侵蚀数据/土壤质地分类/降雨量栅格数据/太阳辐射量数据
  12. CSS角度单位:deg、grad、rad、turn
  13. 尚德机构2020年Q4财报:净收入5.85亿元,管理费用同比大幅下降近五成
  14. 输入输出流,看似复杂却更好用----小话c++(2)
  15. ios关联启动_部落冲突电脑版与IOS设备关联教程
  16. Centos 7分辨率调整成适应虚拟机屏幕大小
  17. Elasticsearch Kibana Filebeat开启SSL通信
  18. 跨境电商前景 跨境电商运营前景待遇
  19. 基于爬虫+人脸识别库实现指定人物自动采集
  20. CVPR2019目标检测汇总

热门文章

  1. MIT-BIH心律失常标注中文释义
  2. 小型仓库管理c语言课程设计,C语言课程设计_仓库管理系统.doc
  3. java实现倒计时闹钟_倒计时闹钟软件下载-倒计时闹钟app下载v1.2.4-西西软件下载...
  4. 消费者心理-电子书下载
  5. IBC算法之SM9简介
  6. 游戏开发完整学习路线
  7. Excel批量创建带超链接的工作表目录
  8. 统计 | 统计功效 | R语言
  9. 在服务器上搭建个人网盘
  10. 在Asset Store上购买unity插件