EMQTT服务器使用HTTP做用户认证问题
来源:互联网 发布:java开发架构设计 编辑:程序博客网 时间:2024/06/06 08:24
今天在做使用EMQTT服务器打开HTTP做用户认证这个测试的时候,遇到了几个问题。
1,认证API如何写
认证不需要返回值,是根据HTTP请求的状态码做为判断的依据。200为成功;其它为失败,我这里使用401。
代码示意如下:
@RestController@RequestMapping("/mqtt")public class MqttUserCheckController {private final Logger logger = LoggerFactory.getLogger(this.getClass());@RequestMapping(value = "/auth", method = RequestMethod.POST)public void checkUser(String clientid, String username, String password, HttpServletResponse response) {logger.info("普通用户;clientid:" + clientid + ";username:" + username + ";password:" + password);if (checkUser(clientid, username, password)) {response.setStatus(200);} else {response.setStatus(401);}}}
当然还可以写的更好一些,封装一些异常类来抛出错误状态。这里仅仅示意。
然后按照官方文档里介绍的方法配置http api。具体看文档即可。
2,出现的异常
然后在我做完上述的事情之后,发现这个api并不能真正起到验证用户的作用,用户名密码及时验证不通过,也还是可以连接上emqtt服务器。
经过排查发现是emqtt一个配置的问题。
要把
mqtt.allow_anonymous = true
修改为false
改完之后就可以了,这里应该是个bug。我测试的版本是2.2,之前的版本没有这个问题。
0 0
- EMQTT服务器使用HTTP做用户认证问题
- http://emqtt.com/
- JIRA_4.2 使用 LDAP 做用户认证
- Http服务器--使用Http服务做转发
- Linux-搭建http服务器及配置文件详解,认证用户
- Http用户认证
- 备忘-使用OpenLDAP做apache用户认证
- Laravel-使用中间件做用户认证和权限管理
- wifidog 认证服务器如何授权和使用用户配置文件
- apache http server用户认证
- Apache服务器的用户认证
- Apache服务器的用户认证
- SMRadius Radius 用户认证服务器
- 开启Apache服务器用户认证
- 使用HTTP认证
- mysql用户认证协议更换(mysql使用问题)
- mysql用户认证协议更换(mysql使用问题)
- apache 服务器禁止http方法 解决appscan 使用 HTTP 动词篡改的认证旁路漏洞
- JQuery validate验证带有readonly,disabled等属性的标签
- java单例模式的线程安全
- 第七天-2017-05-09
- DialogFragment
- 安装MySql最简单的方法
- EMQTT服务器使用HTTP做用户认证问题
- 第八届山东省ACM省赛赛后总结
- 单用户下修改root密码以及Grub密码的加密
- Dubbo 并发调优的几个参数
- 3 javascript闭包学习总结
- 通过输入流的方式获取Request中的json参数
- Andriod并行开发之工程引用
- angularjs 移除定时器
- React+Redux 同构应用开发