|
|
|
@ -18,17 +18,27 @@
|
|
|
|
|
|
|
|
|
|
function onRequest(context) {
|
|
|
|
|
var log = new Log("stats.js");
|
|
|
|
|
var carbonServer = require("carbon").server;
|
|
|
|
|
var device = context.unit.params.device;
|
|
|
|
|
var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
|
|
|
|
var constants = require("/app/modules/constants.js");
|
|
|
|
|
|
|
|
|
|
var websocketEndpoint = devicemgtProps["wssURL"].replace("https", "wss");
|
|
|
|
|
var tokenPair = session.get(constants["TOKEN_PAIR"]);
|
|
|
|
|
if (tokenPair) {
|
|
|
|
|
var token = parse(tokenPair)["accessToken"];
|
|
|
|
|
websocketEndpoint = websocketEndpoint + "/secured-websocket/org.wso2.iot.devices.temperature/1.0.0?" +
|
|
|
|
|
"token="+ token +"&deviceId=" + device.deviceIdentifier + "&deviceType=" + device.type;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var jwtService = carbonServer.osgiService(
|
|
|
|
|
'org.wso2.carbon.identity.jwt.client.extension.service.JWTClientManagerService');
|
|
|
|
|
var jwtClient = jwtService.getJWTClient();
|
|
|
|
|
var encodedClientKeys = session.get(constants["ENCODED_TENANT_BASED_WEB_SOCKET_CLIENT_CREDENTIALS"]);
|
|
|
|
|
var token = "";
|
|
|
|
|
if (encodedClientKeys) {
|
|
|
|
|
var tokenUtil = require("/app/modules/oauth/token-handler-utils.js")["utils"];
|
|
|
|
|
var resp = tokenUtil.decode(encodedClientKeys).split(":");
|
|
|
|
|
var tokenPair = jwtClient.getAccessToken(resp[0], resp[1], context.user.username,"default", {});
|
|
|
|
|
if (tokenPair) {
|
|
|
|
|
token = tokenPair.accessToken;
|
|
|
|
|
}
|
|
|
|
|
websocketEndpoint = websocketEndpoint + "/secured-websocket/org.wso2.iot.devices.temperature/1.0.0?"
|
|
|
|
|
+ "deviceId=" + device.deviceIdentifier + "&deviceType=" + device.type;
|
|
|
|
|
var websocketToken= {'name':'websocket-token','value': token, 'path':'/', "maxAge":18000};
|
|
|
|
|
response.addCookie(websocketToken);
|
|
|
|
|
}
|
|
|
|
|
return {"device": device, "websocketEndpoint": websocketEndpoint};
|
|
|
|
|
}
|