Mosquitto搭建Android推送服务(四)Mosquitto服务器用户登录与权限配置
文章钢要:
1、对服务器进行多用户配置
2、根据不同用户给予不同权限
一、Mosquitto的用户机制
mosquitto中可以添加多个用户,只有使用用户名和密码登陆服务器才允许用户进行订阅与发布操作。可以说用户机制是mosquitto重要的安全机制,增强服务器的安全性。
用户与权限配置需要修改3处地方:
1、mosquitto中最最最重要的配置文件mosquitto.conf。
2、pwfile.example (保存用户名与密码)
3、aclfile.example (保存权限配置)
首先给我们的服务器增加2个用户,一个叫userName密码是1,一个叫userName2 密码是2
第一步:
打开mosquitto.conf文件,找到allow_anonymous节点,这个节点作用是,是否开启匿名用户登录,默认是true。
我们需要将allow_anonymous节点前面的"#"去掉,然后后面写false。不允许匿名用户登录。如下:
修改前:#allow_anonymous
修改后:allow_anonymous false
第二步:
找到password_file节点,这个节点是告诉服务器你要配置的用户将存放在哪里
将前面的“#”去掉,并且在后面写上pwfile.example文件的路径,注意:是绝对路径。例如:
修改前:#password_file
修改后:password_file /etc/mosquitto/pwfile.example (这里的地址根据自己文件实际位置填写)
第三步:
创建用户名和密码,打开命令窗口。键入:mosquitto_passwd -c /etc/mosquitto/pwfile.example userName
然后键入2次密码,用户创建成功。
-c 创建一个用户
/etc/mosquitto/pwfile.example 创建到pwfile.example文件中
userName 创建的用户名
此时userName用户创建完毕。
第四步:
创建userName2用户。
在命令窗口键入mosquitto_passwd /etc/mosquitto/pwfile.example userName2
输入2次密码,用户创建成功
注意:第二次输入用户不用-c ,如果加上-c会将以前创建的用户覆盖。
至此用户创建完毕。
打开pwfile.example看一下结果,类似下图,KKLL与KKLL2为用户,“:”后面是加密的密码

二、Mosquitto权限
Mosquitto权限是根据topci控制的,类似与目录管理。您可以设定每个用户订阅/发布权限,也可以设定每个用户可访问的topic范围,从而达到权限控制的目的。
这里我们需要用到刚才创建的2个用户。
userName 设置为订阅权限,并且只能访问的主题为"root/123/#"
userName2 设置为发布权限,并且只能访问的主题为"root/123/#"
如果用userName进行发布是不会成功的,反过来用userName2进行订阅同样不会接受到任何信息。因为他们的权限不同。
第一步:增加Mosquitto权限
打开aclfile.example,在最下面键入如下文字:
user userName
topic read root/123/#
user userName2
topic write root/123#
--------------------------------
read 订阅权限
write 发布权限
# 通配符,表示所有的
保存退出。
如下图所示:

第二步:修改Mosquitto.conf
打开Mosquitto.conf文件,找到acl_file节点。修改其内容所示:
修改前:
#acl_file
修改后:
acl_file /etc/mosquitto/aclfile.example
将前面的#号去掉,后面地址根据自己文件实际位置填写
三、测试
订阅:
mosquitto_sub -t root/123/# -u userName -P 1
注意:-P中的P为大写。
发布:
mosquitto_pub -t root/123/123 -u userName2 -P 2 -m "hello word!!!"
在订阅端会收到hello word信息。
对服务器的权限用户设置完毕。
Mosquitto搭建Android推送服务(四)Mosquitto服务器用户登录与权限配置的更多相关文章
- Mosquitto搭建Android推送服务(一)MQTT简介
总体概要: MQTT系列文章分为4部分 1.MQTT简介 2.mosquitto服务器搭建 3.编写Mosquitto的可视化工具 4.使用Mosquitto完成Android推送服务 文章钢要: 对 ...
- Mosquitto搭建Android推送服务(三)Mosquitto集群搭建
文章钢要: 1.进行双服务器搭建 2.进行多服务器搭建 一.Mosquitto的分布式集群部署 如果需要做并发量很大的时候就需要考虑做集群处理,但是我在查找资料的时候发现并不多,所以整理了一下,搭建简 ...
- Mosquitto搭建Android推送服务(二)Mosquitto简介及搭建
文章钢要: 1.了解Mosquitto服务器 2.在Liunx中搭建Mosquitto服务器 3.设置Mosquitto集群 一.Mosquitto简介 一款实现了消息推送协议 MQTT v3.1 的 ...
- Mosquitto搭建Android推送服务番外篇一:各种报错解决
文章钢要: 目前笔者在开发搭建Mosquitto服务器,在此期间遇到很多实际问题,所以走了很多弯路,在这里写出来为大家提供一些帮助. 1.安装完成后启动Mosquitto报错 执行mosquitto客 ...
- Android推送服务——百度云推送
一.推送服务简介 消息推送,顾名思义,是由一方主动发起,而另一方与发起方以某一种方式建立连接并接收消息.在Android开发中,这里的发起方我们把它叫做推送服务器(Push Server),接收方叫做 ...
- Android推送服务(1)几种实现方式
1.几种常见的解决方案实现原理 1)轮询(Pull)方式:应用程序应当阶段性的与服务器进行连接并查询是否有新的消息到达,你必须自己实现与服务器之间的通信,例如消息排队等.而且你还要考虑轮询的频率,如果 ...
- Android推送服务(2)微信智能心跳方案
http://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=207243549&idx=1&sn=4ebe4beb8123f1b5 ...
- Android推送技术研究
前言 最近研究Android推送的实现, 研究了两天一夜, 有了一点收获, 写下来既为了分享, 也为了吐槽. 需要说明的是有些东西偏底层硬件和通信行业, 我对这些一窍不通, 只能说说自己的理解. 为什 ...
- MQTT协议及推送服务(二)
MQTT简介 MQTT全称叫做Message Queuing Telemetry Transport,意为消息队列遥测传输,是IBM开发的一个即时通讯协议.由于其维护一个长连接以轻量级低消耗著称,所以 ...
随机推荐
- python基础补漏-02-collection
collection系列 [1]计数器 Counter import collections res = collections.Counter("34234sdfgs45tsaf1&quo ...
- phpunit 测试框架安装
PHPUnit是一个轻量级的PHP测试框架.它是在PHP5下面对JUnit3系列版本的完整移植,是xUnit测试框架家族的一员(它们都基于模式先锋Kent Beck的设计).来自百度百科 一.下载wg ...
- HDU 5944 Fxx and string(暴力/枚举)
传送门 Fxx and string Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Othe ...
- 【JavaWeb】Spring+SpringMVC+MyBatis+SpringSecurity+EhCache+JCaptcha 完整Web基础框架(四)
SpringSecurity(1) 其实啊,这部分我是最不想写的,因为最麻烦的也是这部分,真的是非常非常的麻烦.关于SpringSecurity的配置,让我折腾了好半天,网上的配置方式一大把,但总有一 ...
- 分页(thinkphp5.0版本)
一.简洁分页(不含页码,只能翻阅上下页) 控制器部分代码: $pagesize=15;//每页显示15条数据 $data = Db::name('db')->where(array('key'= ...
- Hibernate(Control)
案例:http://blog.csdn.net/jiuqiyuliang/article/details/39380465 对象关系映射框架,它对JDBC进行了轻量级的对象封装,可以使用对象编程思维来 ...
- nuget包重装
Update-Package -Reinstall Update-Package -reinstall -ProjectName Cardin.HeartCare.Service.ChatServic ...
- Bubble Cup 8 finals D. Tablecity (575D)
题意: (无输入,纯输出题) 一个城市用1000列2行的格子表示,一个小偷藏在城市的某一处. 在每一小时的开始, 在(X, Y)位置的小偷可以移动到 (X - 1, Y), (X + 1, Y),(X ...
- QEMU VCPU热插特性
最近学习QEMU中VCPU热插特性,需要了解QEMU中VCPU热插的整个流程,VCPU热插是QEMU主板的一个feature. 1:这里先分析一下QEMU的主板模拟,主板在QEMU的设备模型中对应的是 ...
- 现代软件工程作业 第二章 学习github笔记
在网上大量资料的辅助下,学习了github的基本使用方法,尝试了一些常见的命令.为了便于记忆总结了自己的学习内容. 1.首先需要在github的官网上注册一个帐号,并新建一个repository,选这 ...