emqx: auth、acl集成
parent
f025375497
commit
459bad335a
|
@ -8,37 +8,35 @@ spring:
|
||||||
max-file-size: 10MB
|
max-file-size: 10MB
|
||||||
max-request-size: 12MB
|
max-request-size: 12MB
|
||||||
|
|
||||||
#mongodb数据库配置
|
|
||||||
data:
|
data:
|
||||||
mongodb:
|
mongodb:
|
||||||
uri: mongodb://填写mongodb地址
|
uri: mongodb://iotkit:123456@192.168.100.118:27017/?authSource=iotkit
|
||||||
database: iotkit
|
database: iotkit
|
||||||
|
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
rest:
|
rest:
|
||||||
#使用内置es的配置
|
uris: http://192.168.100.118:9200
|
||||||
uris: http://127.0.0.1:9200
|
|
||||||
username:
|
|
||||||
password:
|
|
||||||
connection-timeout: 10s
|
connection-timeout: 10s
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
#使用内置redis的配置
|
host: 192.168.100.50
|
||||||
host: 127.0.0.1
|
|
||||||
port: 6379
|
port: 6379
|
||||||
database: 0
|
database: 0
|
||||||
password:
|
password: 5tgbNHY^
|
||||||
|
|
||||||
|
cache:
|
||||||
|
cache-names: foo,bar
|
||||||
|
caffeine:
|
||||||
|
spec: maximumSize=5000,expireAfterAccess=300s
|
||||||
mvc:
|
mvc:
|
||||||
pathmatch:
|
pathmatch:
|
||||||
matching-strategy: ant_path_matcher
|
matching-strategy: ant_path_matcher
|
||||||
|
|
||||||
#图片存储用的是阿里云oss,如果需要上传产品图片才需要配置
|
|
||||||
aliyun:
|
aliyun:
|
||||||
bucketId: 填写阿里云bucketId
|
bucketId: iotkit-images
|
||||||
endpoint: oss-cn-shenzhen.aliyuncs.com
|
endpoint: oss-cn-shenzhen.aliyuncs.com
|
||||||
accessKeyId: 填写阿里云accessKeyId
|
accessKeyId: LTAI4FmGGouSnScYrGe7rQLA
|
||||||
accessKeySecret: 填写阿里云accessKeySecret
|
accessKeySecret: 9S0xjffwmGW2B3HsE4Efw1TqUy8YXC
|
||||||
|
|
||||||
sa-token:
|
sa-token:
|
||||||
# token名称 (同时也是cookie名称)
|
# token名称 (同时也是cookie名称)
|
||||||
|
@ -56,11 +54,23 @@ sa-token:
|
||||||
# 是否输出操作日志
|
# 是否输出操作日志
|
||||||
is-log: false
|
is-log: false
|
||||||
|
|
||||||
#pulsar消息队列配置,需要进行配置
|
security:
|
||||||
pulsar:
|
oauth2:
|
||||||
broker: pulsar://pulsar broker地址:6650
|
resource:
|
||||||
service: http://pulsar 服务地址:8080
|
filter-order: 3
|
||||||
|
|
||||||
#认证中心地址
|
|
||||||
oauth2:
|
oauth2:
|
||||||
auth-server-url: http://127.0.0.1:8086
|
auth-server-url: http://127.0.0.1:8086
|
||||||
|
|
||||||
|
pulsar:
|
||||||
|
broker: pulsar://192.168.100.66:6650
|
||||||
|
service: http://192.168.100.66:8080
|
||||||
|
|
||||||
|
app:
|
||||||
|
systemRole: iot_system_user
|
||||||
|
aligenie:
|
||||||
|
push:
|
||||||
|
device:
|
||||||
|
mqtt:
|
||||||
|
url: tcp:/192.168.100.118:1883
|
||||||
|
|
||||||
|
|
|
@ -91,25 +91,19 @@ public class EmqxDeviceComponent extends AbstractDeviceComponent {
|
||||||
}
|
}
|
||||||
client = MqttClient.create(vertx, options);
|
client = MqttClient.create(vertx, options);
|
||||||
|
|
||||||
// handler will be called when we have a message in topic we subscribe for
|
|
||||||
/*client.publishHandler(p -> {
|
|
||||||
log.info("Client received message on [{}] payload [{}] with QoS [{}]", p.topicName(), p.payload().toString(Charset.defaultCharset()), p.qosLevel());
|
|
||||||
});*/
|
|
||||||
|
|
||||||
List<String> topics = mqttConfig.getSubscribeTopics();
|
List<String> topics = mqttConfig.getSubscribeTopics();
|
||||||
Map<String, Integer> subscribes = new HashMap<>();
|
Map<String, Integer> subscribes = new HashMap<>();
|
||||||
|
|
||||||
subscribes.put("/sys/+/+/s/#", 1);
|
for (String topic : topics) {
|
||||||
|
subscribes.put(topic, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*subscribes.put("/sys/+/+/s/#", 1);
|
||||||
subscribes.put("/sys/client/connected", 1);
|
subscribes.put("/sys/client/connected", 1);
|
||||||
subscribes.put("/sys/client/disconnected", 1);
|
subscribes.put("/sys/client/disconnected", 1);
|
||||||
subscribes.put("/sys/session/subscribed", 1);
|
subscribes.put("/sys/session/subscribed", 1);
|
||||||
subscribes.put("/sys/session/unsubscribed", 1);
|
subscribes.put("/sys/session/unsubscribed", 1);*/
|
||||||
|
|
||||||
//"/sys/+/+/s/#","/sys/client/disconnected"
|
|
||||||
|
|
||||||
/*for (String topic : topics) {
|
|
||||||
subscribes.put(topic, 1);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
// handler will be called when we have a message in topic we subscribe for
|
// handler will be called when we have a message in topic we subscribe for
|
||||||
client.publishHandler(p -> {
|
client.publishHandler(p -> {
|
||||||
|
|
|
@ -1,40 +1,8 @@
|
||||||
!function(n){"use strict";function d(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function f(n,t,r,e,o,u){return d((u=d(d(t,n),d(e,u)))<<o|u>>>32-o,r)}function l(n,t,r,e,o,u,c){return f(t&r|~t&e,n,t,o,u,c)}function g(n,t,r,e,o,u,c){return f(t&e|r&~e,n,t,o,u,c)}function v(n,t,r,e,o,u,c){return f(t^r^e,n,t,o,u,c)}function m(n,t,r,e,o,u,c){return f(r^(t|~e),n,t,o,u,c)}function c(n,t){var r,e,o,u;n[t>>5]|=128<<t%32,n[14+(t+64>>>9<<4)]=t;for(var c=1732584193,f=-271733879,i=-1732584194,a=271733878,h=0;h<n.length;h+=16)c=l(r=c,e=f,o=i,u=a,n[h],7,-680876936),a=l(a,c,f,i,n[h+1],12,-389564586),i=l(i,a,c,f,n[h+2],17,606105819),f=l(f,i,a,c,n[h+3],22,-1044525330),c=l(c,f,i,a,n[h+4],7,-176418897),a=l(a,c,f,i,n[h+5],12,1200080426),i=l(i,a,c,f,n[h+6],17,-1473231341),f=l(f,i,a,c,n[h+7],22,-45705983),c=l(c,f,i,a,n[h+8],7,1770035416),a=l(a,c,f,i,n[h+9],12,-1958414417),i=l(i,a,c,f,n[h+10],17,-42063),f=l(f,i,a,c,n[h+11],22,-1990404162),c=l(c,f,i,a,n[h+12],7,1804603682),a=l(a,c,f,i,n[h+13],12,-40341101),i=l(i,a,c,f,n[h+14],17,-1502002290),c=g(c,f=l(f,i,a,c,n[h+15],22,1236535329),i,a,n[h+1],5,-165796510),a=g(a,c,f,i,n[h+6],9,-1069501632),i=g(i,a,c,f,n[h+11],14,643717713),f=g(f,i,a,c,n[h],20,-373897302),c=g(c,f,i,a,n[h+5],5,-701558691),a=g(a,c,f,i,n[h+10],9,38016083),i=g(i,a,c,f,n[h+15],14,-660478335),f=g(f,i,a,c,n[h+4],20,-405537848),c=g(c,f,i,a,n[h+9],5,568446438),a=g(a,c,f,i,n[h+14],9,-1019803690),i=g(i,a,c,f,n[h+3],14,-187363961),f=g(f,i,a,c,n[h+8],20,1163531501),c=g(c,f,i,a,n[h+13],5,-1444681467),a=g(a,c,f,i,n[h+2],9,-51403784),i=g(i,a,c,f,n[h+7],14,1735328473),c=v(c,f=g(f,i,a,c,n[h+12],20,-1926607734),i,a,n[h+5],4,-378558),a=v(a,c,f,i,n[h+8],11,-2022574463),i=v(i,a,c,f,n[h+11],16,1839030562),f=v(f,i,a,c,n[h+14],23,-35309556),c=v(c,f,i,a,n[h+1],4,-1530992060),a=v(a,c,f,i,n[h+4],11,1272893353),i=v(i,a,c,f,n[h+7],16,-155497632),f=v(f,i,a,c,n[h+10],23,-1094730640),c=v(c,f,i,a,n[h+13],4,681279174),a=v(a,c,f,i,n[h],11,-358537222),i=v(i,a,c,f,n[h+3],16,-722521979),f=v(f,i,a,c,n[h+6],23,76029189),c=v(c,f,i,a,n[h+9],4,-640364487),a=v(a,c,f,i,n[h+12],11,-421815835),i=v(i,a,c,f,n[h+15],16,530742520),c=m(c,f=v(f,i,a,c,n[h+2],23,-995338651),i,a,n[h],6,-198630844),a=m(a,c,f,i,n[h+7],10,1126891415),i=m(i,a,c,f,n[h+14],15,-1416354905),f=m(f,i,a,c,n[h+5],21,-57434055),c=m(c,f,i,a,n[h+12],6,1700485571),a=m(a,c,f,i,n[h+3],10,-1894986606),i=m(i,a,c,f,n[h+10],15,-1051523),f=m(f,i,a,c,n[h+1],21,-2054922799),c=m(c,f,i,a,n[h+8],6,1873313359),a=m(a,c,f,i,n[h+15],10,-30611744),i=m(i,a,c,f,n[h+6],15,-1560198380),f=m(f,i,a,c,n[h+13],21,1309151649),c=m(c,f,i,a,n[h+4],6,-145523070),a=m(a,c,f,i,n[h+11],10,-1120210379),i=m(i,a,c,f,n[h+2],15,718787259),f=m(f,i,a,c,n[h+9],21,-343485551),c=d(c,r),f=d(f,e),i=d(i,o),a=d(a,u);return[c,f,i,a]}function i(n){for(var t="",r=32*n.length,e=0;e<r;e+=8)t+=String.fromCharCode(n[e>>5]>>>e%32&255);return t}function a(n){var t=[];for(t[(n.length>>2)-1]=void 0,e=0;e<t.length;e+=1)t[e]=0;for(var r=8*n.length,e=0;e<r;e+=8)t[e>>5]|=(255&n.charCodeAt(e/8))<<e%32;return t}function e(n){for(var t,r="0123456789abcdef",e="",o=0;o<n.length;o+=1)t=n.charCodeAt(o),e+=r.charAt(t>>>4&15)+r.charAt(15&t);return e}function r(n){return unescape(encodeURIComponent(n))}function o(n){return i(c(a(n=r(n)),8*n.length))}function u(n,t){return function(n,t){var r,e=a(n),o=[],u=[];for(o[15]=u[15]=void 0,16<e.length&&(e=c(e,8*n.length)),r=0;r<16;r+=1)o[r]=909522486^e[r],u[r]=1549556828^e[r];return t=c(o.concat(a(t)),512+8*t.length),i(c(u.concat(t),640))}(r(n),r(t))}function t(n,t,r){return t?r?u(t,n):e(u(t,n)):r?o(n):e(o(n))}"function"==typeof define&&define.amd?define(function(){return t}):"object"==typeof module&&module.exports?module.exports=t:n.md5=t}(this);
|
!function(n){"use strict";function d(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function f(n,t,r,e,o,u){return d((u=d(d(t,n),d(e,u)))<<o|u>>>32-o,r)}function l(n,t,r,e,o,u,c){return f(t&r|~t&e,n,t,o,u,c)}function g(n,t,r,e,o,u,c){return f(t&e|r&~e,n,t,o,u,c)}function v(n,t,r,e,o,u,c){return f(t^r^e,n,t,o,u,c)}function m(n,t,r,e,o,u,c){return f(r^(t|~e),n,t,o,u,c)}function c(n,t){var r,e,o,u;n[t>>5]|=128<<t%32,n[14+(t+64>>>9<<4)]=t;for(var c=1732584193,f=-271733879,i=-1732584194,a=271733878,h=0;h<n.length;h+=16)c=l(r=c,e=f,o=i,u=a,n[h],7,-680876936),a=l(a,c,f,i,n[h+1],12,-389564586),i=l(i,a,c,f,n[h+2],17,606105819),f=l(f,i,a,c,n[h+3],22,-1044525330),c=l(c,f,i,a,n[h+4],7,-176418897),a=l(a,c,f,i,n[h+5],12,1200080426),i=l(i,a,c,f,n[h+6],17,-1473231341),f=l(f,i,a,c,n[h+7],22,-45705983),c=l(c,f,i,a,n[h+8],7,1770035416),a=l(a,c,f,i,n[h+9],12,-1958414417),i=l(i,a,c,f,n[h+10],17,-42063),f=l(f,i,a,c,n[h+11],22,-1990404162),c=l(c,f,i,a,n[h+12],7,1804603682),a=l(a,c,f,i,n[h+13],12,-40341101),i=l(i,a,c,f,n[h+14],17,-1502002290),c=g(c,f=l(f,i,a,c,n[h+15],22,1236535329),i,a,n[h+1],5,-165796510),a=g(a,c,f,i,n[h+6],9,-1069501632),i=g(i,a,c,f,n[h+11],14,643717713),f=g(f,i,a,c,n[h],20,-373897302),c=g(c,f,i,a,n[h+5],5,-701558691),a=g(a,c,f,i,n[h+10],9,38016083),i=g(i,a,c,f,n[h+15],14,-660478335),f=g(f,i,a,c,n[h+4],20,-405537848),c=g(c,f,i,a,n[h+9],5,568446438),a=g(a,c,f,i,n[h+14],9,-1019803690),i=g(i,a,c,f,n[h+3],14,-187363961),f=g(f,i,a,c,n[h+8],20,1163531501),c=g(c,f,i,a,n[h+13],5,-1444681467),a=g(a,c,f,i,n[h+2],9,-51403784),i=g(i,a,c,f,n[h+7],14,1735328473),c=v(c,f=g(f,i,a,c,n[h+12],20,-1926607734),i,a,n[h+5],4,-378558),a=v(a,c,f,i,n[h+8],11,-2022574463),i=v(i,a,c,f,n[h+11],16,1839030562),f=v(f,i,a,c,n[h+14],23,-35309556),c=v(c,f,i,a,n[h+1],4,-1530992060),a=v(a,c,f,i,n[h+4],11,1272893353),i=v(i,a,c,f,n[h+7],16,-155497632),f=v(f,i,a,c,n[h+10],23,-1094730640),c=v(c,f,i,a,n[h+13],4,681279174),a=v(a,c,f,i,n[h],11,-358537222),i=v(i,a,c,f,n[h+3],16,-722521979),f=v(f,i,a,c,n[h+6],23,76029189),c=v(c,f,i,a,n[h+9],4,-640364487),a=v(a,c,f,i,n[h+12],11,-421815835),i=v(i,a,c,f,n[h+15],16,530742520),c=m(c,f=v(f,i,a,c,n[h+2],23,-995338651),i,a,n[h],6,-198630844),a=m(a,c,f,i,n[h+7],10,1126891415),i=m(i,a,c,f,n[h+14],15,-1416354905),f=m(f,i,a,c,n[h+5],21,-57434055),c=m(c,f,i,a,n[h+12],6,1700485571),a=m(a,c,f,i,n[h+3],10,-1894986606),i=m(i,a,c,f,n[h+10],15,-1051523),f=m(f,i,a,c,n[h+1],21,-2054922799),c=m(c,f,i,a,n[h+8],6,1873313359),a=m(a,c,f,i,n[h+15],10,-30611744),i=m(i,a,c,f,n[h+6],15,-1560198380),f=m(f,i,a,c,n[h+13],21,1309151649),c=m(c,f,i,a,n[h+4],6,-145523070),a=m(a,c,f,i,n[h+11],10,-1120210379),i=m(i,a,c,f,n[h+2],15,718787259),f=m(f,i,a,c,n[h+9],21,-343485551),c=d(c,r),f=d(f,e),i=d(i,o),a=d(a,u);return[c,f,i,a]}function i(n){for(var t="",r=32*n.length,e=0;e<r;e+=8)t+=String.fromCharCode(n[e>>5]>>>e%32&255);return t}function a(n){var t=[];for(t[(n.length>>2)-1]=void 0,e=0;e<t.length;e+=1)t[e]=0;for(var r=8*n.length,e=0;e<r;e+=8)t[e>>5]|=(255&n.charCodeAt(e/8))<<e%32;return t}function e(n){for(var t,r="0123456789abcdef",e="",o=0;o<n.length;o+=1)t=n.charCodeAt(o),e+=r.charAt(t>>>4&15)+r.charAt(15&t);return e}function r(n){return unescape(encodeURIComponent(n))}function o(n){return i(c(a(n=r(n)),8*n.length))}function u(n,t){return function(n,t){var r,e=a(n),o=[],u=[];for(o[15]=u[15]=void 0,16<e.length&&(e=c(e,8*n.length)),r=0;r<16;r+=1)o[r]=909522486^e[r],u[r]=1549556828^e[r];return t=c(o.concat(a(t)),512+8*t.length),i(c(u.concat(t),640))}(r(n),r(t))}function t(n,t,r){return t?r?u(t,n):e(u(t,n)):r?o(n):e(o(n))}"function"==typeof define&&define.amd?define(function(){return t}):"object"==typeof module&&module.exports?module.exports=t:n.md5=t}(this);
|
||||||
var md5=this.md5;
|
var md5=this.md5;
|
||||||
|
|
||||||
var whiteList = ["/sys/+/+/s/#","/sys/client/connected","/sys/client/disconnected","/sys/session/subscribed","/sys/session/unsubscribed"];
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
网关上线
|
|
||||||
订阅:/sys/hbtgIA0SuVw9lxjB/AA:BB:CC:DD:10/c/#
|
|
||||||
|
|
||||||
子设备注册:
|
|
||||||
/sys/hbtgIA0SuVw9lxjB/AA:BB:CC:DD:10/s/register
|
|
||||||
{
|
|
||||||
"id": "6",
|
|
||||||
"params":{
|
|
||||||
"productKey":"Rf4QSjbm65X45753",
|
|
||||||
"deviceName":"ABC12400001",
|
|
||||||
"model":"S1"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
子设备上线
|
|
||||||
订阅:/sys/Rf4QSjbm65X45753/ABC12400001/c/#
|
|
||||||
|
|
||||||
数据上报:
|
|
||||||
/sys/Rf4QSjbm65X45753/ABC12400001/s/event/property/post
|
|
||||||
{
|
|
||||||
"id": "6",
|
|
||||||
"params":{
|
|
||||||
"powerstate": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
var registered={};
|
|
||||||
|
|
||||||
function isServerId(clientId){
|
function isServerId(clientId){
|
||||||
return JSON.parse(component.getCompMqttClientIdList()).indexOf(clientId) > -1
|
return JSON.parse(component.getCompMqttClientIdList()).indexOf(clientId) > -1
|
||||||
}
|
}
|
||||||
|
|
||||||
function getPkDn(clientId){
|
function getPkDn(clientId){
|
||||||
|
@ -46,9 +14,7 @@ function getPkDn(clientId){
|
||||||
}
|
}
|
||||||
|
|
||||||
function auth(head,type,payload){
|
function auth(head,type,payload){
|
||||||
var clientIds = component.getCompMqttClientIdList();
|
|
||||||
if(isServerId(payload.clientid) > -1){
|
if(isServerId(payload.clientid) > -1){
|
||||||
//throw new Error("dddddd clientIds:" + payload.clientid);
|
|
||||||
return {
|
return {
|
||||||
type:"serverAuth",
|
type:"serverAuth",
|
||||||
data:{
|
data:{
|
||||||
|
@ -85,7 +51,6 @@ function acl(head,type,payload){
|
||||||
var _topic = payload.topic;
|
var _topic = payload.topic;
|
||||||
|
|
||||||
if(isServerId(payload.clientid)){
|
if(isServerId(payload.clientid)){
|
||||||
//throw new Error("dddddd clientIds:" + _topic);
|
|
||||||
return {
|
return {
|
||||||
type: "acl",
|
type: "acl",
|
||||||
data:{
|
data:{
|
||||||
|
@ -210,33 +175,6 @@ function subRegister(topic,parent, payload){
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
function deviceStateChange(head,clientId,state){
|
|
||||||
var topic=head.topic;
|
|
||||||
var device=getPkDn(clientId);
|
|
||||||
|
|
||||||
var arr= topic.split('/');
|
|
||||||
if(arr.length<6){
|
|
||||||
throw new Error("incorrect topic: "+topic)
|
|
||||||
}
|
|
||||||
|
|
||||||
var pk=arr[2];
|
|
||||||
var dn=arr[3];
|
|
||||||
return {
|
|
||||||
type:"state",
|
|
||||||
data:{
|
|
||||||
productKey:pk,
|
|
||||||
deviceName:dn,
|
|
||||||
state:state,
|
|
||||||
parent:{
|
|
||||||
productKey:device.pk,
|
|
||||||
deviceName:device.dn,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
function disconnect(head,type,payload){
|
function disconnect(head,type,payload){
|
||||||
var clientId = payload.clientid
|
var clientId = payload.clientid
|
||||||
var device=getPkDn(clientId);
|
var device=getPkDn(clientId);
|
||||||
|
@ -267,7 +205,6 @@ function unsubscribe(head,type,payload){
|
||||||
var topic = payload.topic;
|
var topic = payload.topic;
|
||||||
|
|
||||||
if(isServerId(payload.clientid)){
|
if(isServerId(payload.clientid)){
|
||||||
//throw new Error("dddddd clientIds:" + _topic);
|
|
||||||
return {
|
return {
|
||||||
type: "acl",
|
type: "acl",
|
||||||
data:{
|
data:{
|
||||||
|
|
Loading…
Reference in New Issue