文章钢要:

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服务器用户登录与权限配置的更多相关文章

  1. Mosquitto搭建Android推送服务(一)MQTT简介

    总体概要: MQTT系列文章分为4部分 1.MQTT简介 2.mosquitto服务器搭建 3.编写Mosquitto的可视化工具 4.使用Mosquitto完成Android推送服务 文章钢要: 对 ...

  2. Mosquitto搭建Android推送服务(三)Mosquitto集群搭建

    文章钢要: 1.进行双服务器搭建 2.进行多服务器搭建 一.Mosquitto的分布式集群部署 如果需要做并发量很大的时候就需要考虑做集群处理,但是我在查找资料的时候发现并不多,所以整理了一下,搭建简 ...

  3. Mosquitto搭建Android推送服务(二)Mosquitto简介及搭建

    文章钢要: 1.了解Mosquitto服务器 2.在Liunx中搭建Mosquitto服务器 3.设置Mosquitto集群 一.Mosquitto简介 一款实现了消息推送协议 MQTT v3.1 的 ...

  4. Mosquitto搭建Android推送服务番外篇一:各种报错解决

    文章钢要: 目前笔者在开发搭建Mosquitto服务器,在此期间遇到很多实际问题,所以走了很多弯路,在这里写出来为大家提供一些帮助. 1.安装完成后启动Mosquitto报错 执行mosquitto客 ...

  5. Android推送服务——百度云推送

    一.推送服务简介 消息推送,顾名思义,是由一方主动发起,而另一方与发起方以某一种方式建立连接并接收消息.在Android开发中,这里的发起方我们把它叫做推送服务器(Push Server),接收方叫做 ...

  6. Android推送服务(1)几种实现方式

    1.几种常见的解决方案实现原理 1)轮询(Pull)方式:应用程序应当阶段性的与服务器进行连接并查询是否有新的消息到达,你必须自己实现与服务器之间的通信,例如消息排队等.而且你还要考虑轮询的频率,如果 ...

  7. Android推送服务(2)微信智能心跳方案

    http://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=207243549&idx=1&sn=4ebe4beb8123f1b5 ...

  8. Android推送技术研究

    前言 最近研究Android推送的实现, 研究了两天一夜, 有了一点收获, 写下来既为了分享, 也为了吐槽. 需要说明的是有些东西偏底层硬件和通信行业, 我对这些一窍不通, 只能说说自己的理解. 为什 ...

  9. MQTT协议及推送服务(二)

    MQTT简介 MQTT全称叫做Message Queuing Telemetry Transport,意为消息队列遥测传输,是IBM开发的一个即时通讯协议.由于其维护一个长连接以轻量级低消耗著称,所以 ...

随机推荐

  1. python 小功能

    目录 1.上传文件 2.验证码 一.上传文件 首先了解一下 request.FILES : 字典 request.FILES 中的每一个条目都是一个UploadFile对象.UploadFile对象有 ...

  2. block

    不使用__block修饰: ; self.myBlock = ^(){ NSLog(@"block num == %d",num); }; num = ; self.myBlock ...

  3. C# 通过Selecnuim WebDriver操作非IE浏览器

    之前有需求需要操作Chrome中的dom元素,没做过这个,但是网上关于这个方面的资料比较少,所以自己捣腾了几天,在知道.net中有这个玩意. 但是一百度,全是关于java,python的而c#的那是一 ...

  4. 用flashfxp做ftp镜像同步

    简单说,用flashfxp建立上传或者下载队列,然后设定一个定时任务来处理这个队列,就能同步下载或上传制定的目录了. 本人遇到的需求只需要做同步上传,记录如下: 开发者PC ---> 国内win ...

  5. 架构师养成记--6.单例和多线程、ThreadLocal

    一.ThreadLocal 使用wait/notify方式实现的线程安全,性能将受到很大影响.解决方案是用空间换时间,不用锁也能实现线程安全. 来看一个小例子,在线程内的set.get就是thread ...

  6. Django models .all .values .values_list 几种数据查询结果的对比

    Django models .all .values .values_list 几种数据查询结果的对比

  7. 利用django创建一个投票网站(一)

    这是教程的原始链接:http://django-intro-zh.readthedocs.io/zh_CN/latest/part1/ 创建你的第一个 Django 项目, 第一部分 来跟着实际项目学 ...

  8. 【总结】.Net面试题集锦 (二)

    一.前面的话 本文的面试题不是很难,这里只是想记录个人的思考过程,另一方面希望有更好的解决办法的大牛留下宝贵的思路,大家共同学习进步. 二.题目 思路:第一步:把一维数组的值和次数存入Dictiona ...

  9. python3 安装scrapy

    twisted(网络异步框架) wget https://pypi.python.org/packages/dc/c0/a0114a6d7fa211c0904b0de931e8cafb5210ad82 ...

  10. 【错误总结】java.lang.NoClassDefFoundError: org/objectweb/asm/ClassVisitor

    运行环境      JDK1.7 64位      Window 7  64位      Ecplise Java EE IDE      Struts 2.3.9      Tomcat 7 说明: ...