mirror of
https://repository.entgra.net/community/device-mgt-plugins.git
synced 2025-09-16 23:42:15 +00:00
Add device remote controlling for tenants
The remote control feature didn't work for tenants and this commit fixes that issue. The root cause of this issue is that the server doesn't connect to the WebSocket in the tenant mode. In order to connect to the WebSocket, it is required to provide valid access token. When getting access token, in the tenant mode it is required to pass tenant domain along with the context of the username.
This commit is contained in:
parent
f7fc300b21
commit
8e5aa7735d
@ -189,11 +189,16 @@ function onRequest(context) {
|
||||
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 tokenPair = null;
|
||||
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 (context.user.domain == "carbon.super") {
|
||||
tokenPair = jwtClient.getAccessToken(resp[0], resp[1], context.user.username,"default", {});
|
||||
} else {
|
||||
tokenPair = jwtClient.getAccessToken(resp[0], resp[1], context.user.username + "@" + context.user.domain,"default", {});
|
||||
}
|
||||
if (tokenPair) {
|
||||
token = tokenPair.accessToken;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user