HTTP Server

简介: HTTP Server

前言

Emqx v4.x 版本,使用外部 httpACL 访问控制是通过插件的形式来实现的。到了 v5.x 的版本,将其内置了,并且将连接认证和授权区分开来,拆分成访问控制——> 认证访问控制——>授权两个部分。


配置

打开 18083 后台管理页面,选择左侧菜单访问控制——>授权,点击右上角的 创建 按钮,数据源选择 HTTP Server

选择数据源.png


点击下一步按钮,开始配置 HTTP Server 的参数。 HTTP 的请求方式最好使用POST ,其余配置很简单,见文知意,这里主要介绍 Body 配置。默认的 Body 配置如下所示:

{
  "username": "${username}"
}点击复制复制失败已复制


其中 ${username} 为插值内容,所有可选的插值如下所示:

插值 字段 含义
${clientid} clientid mqtt 客户端连接 emqx 时填写的 clientid 内容
${username} 用户名 mqtt 客户端连接 emqx 时填写的 username 内容
${peerhost} 客户端的源 IP 地址
${mountpoint} 网关监听器的挂载点(主题前缀) 还没搞明白,拿到的都是空字符串
${topic} mqtt主题 当前请求想要发布或订阅的主题(或主题过滤器
${action} 当前执行的动作请求 publishsubscribe


在授权判定的时候,选择需要的字段都发送给授权服务,全部字段的 Body 配置如下所示:

{
  "clientid": "${clientid}",
  "username": "${username}",
  "peerhost": "${peerhost}",
  "mountpoint": "${mountpoint}",
  "topic": "${topic}",
  "action": "${action}"
}点击复制复制失败已复制


服务器处理

如果授权成功,那么 HTTP 的返回状态码一定200204其余状态码均认为是认证失败


其中,如果状态码是 204 ,则表示允许此次发布/订阅请求,不去验证返回内容。如果状态码是 200 ,则去验证返回内容,返回内容必须是 json 格式,里面只有一个字段: result ,其可选值如下所示:

可选值 含义
allow 允许此次发布/订阅
deny 拒绝此次发布/订阅
ignore 忽略本次请求,把它移交给下一个 Authorizer 处理
目录
相关文章
|
3月前
|
应用服务中间件 nginx
百度搜索:蓝易云【HTTP请求是如何关联Nginx server{}块的?】
总结来说,Nginx中的 `server{}`块用于关联HTTP请求和虚拟主机,通过配置不同的 `server{}`块,可以实现多个域名或IP地址的请求分发和处理。这样,Nginx可以根据不同的请求来提供不同的服务和内容。
37 0
|
6月前
|
Unix Go
Golang 语言中怎么拦截系统信号和优雅退出 http server?
Golang 语言中怎么拦截系统信号和优雅退出 http server?
34 0
|
4月前
|
开发框架 .NET 数据库连接
解决HTTP错误500.19 - internal server error -内部服务器错误的终极指南
解决HTTP错误500.19 - internal server error -内部服务器错误的终极指南
657 0
|
1月前
|
存储 网络安全 数据安全/隐私保护
Windows Server 2019 IIS HTTPS证书部署流程详解
Windows Server 2019 IIS HTTPS证书部署流程详解
|
3月前
【web server】HTTP协议如何解析or封装
【web server】HTTP协议如何解析or封装
|
5月前
|
XML 数据格式
svn报错-ra_serf: The server sent a truncated HTTP response body.
svn报错-ra_serf: The server sent a truncated HTTP response body.
79 1
|
5月前
|
Docker 容器
http: server gave HTTP response to HTTPS client解决方案
http: server gave HTTP response to HTTPS client解决方案
147 0
|
6月前
|
存储 XML 数据格式
【SVN异常】svn: E175003: The server at ‘https://svn.example.com/!/%23MyRepo/‘ does not support the HTTP/
【SVN异常】svn: E175003: The server at ‘https://svn.example.com/!/%23MyRepo/‘ does not support the HTTP/
73 0
|
9月前
UE Http Server 插件说明
UE Http Server 插件说明
232 0
|
11月前
|
Java 应用服务中间件 Linux
实战:第十三章:HTTP Status 500 – Internal Server Error(解决SpringBoot架构的Web项目部署到linux系统上访问出错)
实战:第十三章:HTTP Status 500 – Internal Server Error(解决SpringBoot架构的Web项目部署到linux系统上访问出错)
285 0