选择模块
配置http认证
配置成项目中的路径
emqx服务器配置
生产环境中请禁用匿名认证。
并配置匿名认证开关allow_anonymous 为false;acl_nomatch为deny
# etc/emqx.conf
## Allow anonymous authentication by default if no auth plugins loaded.
## Notice: Disable the option in production deployment!
##
## Value: true | false
allow_anonymous = false
## Allow or deny if no ACL rules matched.
##
## Value: allow | deny
acl_nomatch = deny
后台代码
@ApiLog
@Api(tags = "https设备认证")
@RestController
@RequestMapping("/v1/device/mqtt")
@RequiredArgsConstructor
public class MqttAuthController {
final MqttFacade mqttFacade;
@PostMapping("/auth")
@ApiOperation(value = "http协议认证", notes = "http协议认证", produces = "application/json")
@CtlHeaderTrackAnno(source = CtlHeaderTrackAnno.EnumAuthSource.API, mode = CtlHeaderTrackAnno.EnumTrackAuthMode.NONE)
public ResponseEntity<String> auth(@Validated MqttAuthRequest param) {
ResponseEntity<String> responseEntity = mqttFacade.auth(param);
return responseEntity;
}
@PostMapping("/acl")
public ResponseEntity<String> acl(MqttAclRequest httpAclRequest) {
return ResponseEntity.status(HttpStatus.OK).body("");
}
}