mirror of
https://repository.entgra.net/community/device-mgt-plugins.git
synced 2025-09-16 23:42:15 +00:00
Merge branch 'master' of https://github.com/wso2/carbon-device-mgt-plugins
This commit is contained in:
commit
94014a802e
@ -3,15 +3,14 @@
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>device-mgt-iot-androidsense</artifactId>
|
||||
<artifactId>androidsense-plugin</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
|
||||
<version>2.0.4-SNAPSHOT</version>
|
||||
<version>2.1.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.device.mgt.iot.androidsense.service.impl</artifactId>
|
||||
<version>2.0.4-SNAPSHOT</version>
|
||||
<artifactId>org.wso2.carbon.device.mgt.iot.androidsense.api</artifactId>
|
||||
<packaging>war</packaging>
|
||||
<name>WSO2 Carbon - Android Sense API</name>
|
||||
<description>WSO2 Carbon - Android Sense Service-API Implementation</description>
|
||||
@ -98,7 +97,6 @@
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>org.wso2.carbon.device.mgt.analytics.data.publisher</artifactId>
|
||||
<version>1.1.0-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
@ -141,6 +141,22 @@ public class AndroidSenseMQTTConnector extends MQTTTransportHandler {
|
||||
String sensorName = null;
|
||||
PrivilegedCarbonContext.startTenantFlow();
|
||||
PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
|
||||
DeviceManagementProviderService deviceManagementProviderService =
|
||||
(DeviceManagementProviderService) ctx.getOSGiService(DeviceManagementProviderService.class, null);
|
||||
if (deviceManagementProviderService != null) {
|
||||
DeviceIdentifier identifier = new DeviceIdentifier(deviceId, AndroidSenseConstants.DEVICE_TYPE);
|
||||
Device device = deviceManagementProviderService.getDevice(identifier);
|
||||
if (device != null) {
|
||||
String owner = device.getEnrolmentInfo().getOwner();
|
||||
ctx.setUsername(owner);
|
||||
ctx.setTenantDomain(MultitenantUtils.getTenantDomain(owner), true);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
ctx.setTenantDomain("carbon.super", true);
|
||||
for (SensorData sensor : sensorData) {
|
||||
if (sensor.key.equals("battery")) {
|
||||
@ -254,6 +270,8 @@ public class AndroidSenseMQTTConnector extends MQTTTransportHandler {
|
||||
}
|
||||
} catch (JsonSyntaxException e) {
|
||||
throw new TransportHandlerException("Invalid message format " + mqttMessage.toString());
|
||||
} catch (DeviceManagementException e) {
|
||||
throw new TransportHandlerException("Invalid device id " + deviceId);
|
||||
} finally {
|
||||
PrivilegedCarbonContext.endTenantFlow();
|
||||
}
|
||||
@ -56,18 +56,10 @@
|
||||
org.osgi.framework,
|
||||
org.osgi.service.component,
|
||||
org.apache.commons.logging,
|
||||
javax.xml.bind.*;resolution:=optional,
|
||||
javax.naming;resolution:=optional,
|
||||
javax.sql;resolution:=optional,
|
||||
javax.xml.bind.annotation.*;resolution:=optional,
|
||||
javax.xml.parsers;resolution:=optional,
|
||||
javax.net;resolution:=optional,
|
||||
javax.net.ssl;resolution:=optional,
|
||||
org.w3c.dom;resolution:=optional,
|
||||
org.wso2.carbon.device.mgt.common.*,
|
||||
org.wso2.carbon.device.mgt.common,
|
||||
org.wso2.carbon.context.*,
|
||||
org.wso2.carbon.ndatasource.core,
|
||||
org.wso2.carbon.device.mgt.iot.*,
|
||||
org.wso2.carbon.device.mgt.extensions.feature.mgt.*,
|
||||
org.wso2.carbon.utils.*
|
||||
|
||||
@ -30,6 +30,8 @@ import java.util.List;
|
||||
|
||||
public class AndroidSenseManagerService implements DeviceManagementService {
|
||||
private DeviceManager deviceManager;
|
||||
private static final String SUPER_TENANT_DOMAIN = "carbon.super";
|
||||
|
||||
@Override
|
||||
public String getType() {
|
||||
return AndroidSenseConstants.DEVICE_TYPE;
|
||||
@ -37,7 +39,7 @@ public class AndroidSenseManagerService implements DeviceManagementService {
|
||||
|
||||
@Override
|
||||
public String getProviderTenantDomain() {
|
||||
return "carbon.super";
|
||||
return SUPER_TENANT_DOMAIN;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -34,7 +34,7 @@
|
||||
|
||||
<modules>
|
||||
<module>org.wso2.carbon.device.mgt.iot.androidsense.analytics</module>
|
||||
<module>org.wso2.carbon.device.mgt.iot.androidsense.service.impl</module>
|
||||
<module>org.wso2.carbon.device.mgt.iot.androidsense.api</module>
|
||||
<module>org.wso2.carbon.device.mgt.iot.androidsense.plugin</module>
|
||||
<module>org.wso2.carbon.device.mgt.iot.androidsense.ui</module>
|
||||
</modules>
|
||||
|
||||
@ -21,15 +21,14 @@
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>device-mgt-iot-arduino</artifactId>
|
||||
<artifactId>arduino-plugin</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
|
||||
<version>2.0.4-SNAPSHOT</version>
|
||||
<version>2.1.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.device.mgt.iot.arduino.service.impl</artifactId>
|
||||
<version>2.0.4-SNAPSHOT</version>
|
||||
<artifactId>org.wso2.carbon.device.mgt.iot.arduino.api</artifactId>
|
||||
<packaging>war</packaging>
|
||||
<name>WSO2 Carbon - IoT Server Arduino Service API</name>
|
||||
<description>WSO2 Carbon - Arduino Service API Implementation</description>
|
||||
@ -55,12 +54,7 @@
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>org.wso2.carbon.apimgt.application.extension</artifactId>
|
||||
<version>1.1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>org.wso2.carbon.device.mgt.jwt.client.extension</artifactId>
|
||||
<artifactId>org.wso2.carbon.identity.jwt.client.extension</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@ -90,7 +84,6 @@
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>org.wso2.carbon.device.mgt.analytics.data.publisher</artifactId>
|
||||
<version>1.1.0-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
@ -139,7 +132,7 @@
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
|
||||
<artifactId>org.wso2.carbon.device.mgt.iot.arduino.plugin.impl</artifactId>
|
||||
<artifactId>org.wso2.carbon.device.mgt.iot.arduino.plugin</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
@ -162,11 +155,6 @@
|
||||
<artifactId>jsr311-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>org.wso2.carbon.apimgt.annotations</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>org.wso2.carbon.apimgt.webapp.publisher</artifactId>
|
||||
@ -33,10 +33,10 @@ import org.wso2.carbon.device.mgt.iot.arduino.plugin.constants.ArduinoConstants;
|
||||
import org.wso2.carbon.device.mgt.iot.exception.DeviceControllerException;
|
||||
import org.wso2.carbon.device.mgt.iot.util.ZipArchive;
|
||||
import org.wso2.carbon.device.mgt.iot.util.ZipUtil;
|
||||
import org.wso2.carbon.device.mgt.jwt.client.extension.JWTClient;
|
||||
import org.wso2.carbon.device.mgt.jwt.client.extension.JWTClientManager;
|
||||
import org.wso2.carbon.device.mgt.jwt.client.extension.dto.AccessTokenInfo;
|
||||
import org.wso2.carbon.device.mgt.jwt.client.extension.exception.JWTClientException;
|
||||
import org.wso2.carbon.identity.jwt.client.extension.JWTClient;
|
||||
import org.wso2.carbon.identity.jwt.client.extension.JWTClientManager;
|
||||
import org.wso2.carbon.identity.jwt.client.extension.dto.AccessTokenInfo;
|
||||
import org.wso2.carbon.identity.jwt.client.extension.exception.JWTClientException;
|
||||
import org.wso2.carbon.user.api.UserStoreException;
|
||||
import javax.ws.rs.core.Response;
|
||||
import java.nio.ByteBuffer;
|
||||
@ -28,7 +28,7 @@
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.device.mgt.iot.arduino.plugin.impl</artifactId>
|
||||
<artifactId>org.wso2.carbon.device.mgt.iot.arduino.plugin</artifactId>
|
||||
<packaging>bundle</packaging>
|
||||
<name>WSO2 Carbon - IoT Server Arduino Management Plugin</name>
|
||||
<description>WSO2 Carbon - Arduino Management/Control Plugin Implementation</description>
|
||||
@ -64,18 +64,10 @@
|
||||
org.osgi.framework,
|
||||
org.osgi.service.component,
|
||||
org.apache.commons.logging,
|
||||
javax.xml.bind.*;resolution:=optional,
|
||||
javax.naming;resolution:=optional,
|
||||
javax.sql;resolution:=optional,
|
||||
javax.xml.bind.annotation.*;resolution:=optional,
|
||||
javax.xml.parsers;resolution:=optional,
|
||||
javax.net;resolution:=optional,
|
||||
javax.net.ssl;resolution:=optional,
|
||||
org.w3c.dom;resolution:=optional,
|
||||
org.wso2.carbon.device.mgt.common.*,
|
||||
org.wso2.carbon.device.mgt.common,
|
||||
org.wso2.carbon.context.*,
|
||||
org.wso2.carbon.ndatasource.core,
|
||||
org.wso2.carbon.device.mgt.iot.*,
|
||||
org.wso2.carbon.device.mgt.extensions.feature.mgt.*,
|
||||
org.wso2.carbon.utils.*
|
||||
@ -32,6 +32,7 @@ import java.util.List;
|
||||
|
||||
public class ArduinoManagerService implements DeviceManagementService {
|
||||
private DeviceManager deviceManager;
|
||||
private final static String DEVICE_TYPE_PROVIDER_DOMAIN = "carbon.super";
|
||||
|
||||
@Override
|
||||
public String getType() {
|
||||
@ -40,7 +41,7 @@ public class ArduinoManagerService implements DeviceManagementService {
|
||||
|
||||
@Override
|
||||
public String getProviderTenantDomain() {
|
||||
return "carbon.super";
|
||||
return DEVICE_TYPE_PROVIDER_DOMAIN;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -35,8 +35,8 @@
|
||||
|
||||
<modules>
|
||||
<module>org.wso2.carbon.device.mgt.iot.arduino.analytics</module>
|
||||
<module>org.wso2.carbon.device.mgt.iot.arduino.service.impl</module>
|
||||
<module>org.wso2.carbon.device.mgt.iot.arduino.plugin.impl</module>
|
||||
<module>org.wso2.carbon.device.mgt.iot.arduino.api</module>
|
||||
<module>org.wso2.carbon.device.mgt.iot.arduino.plugin</module>
|
||||
<module>org.wso2.carbon.device.mgt.iot.arduino.ui</module>
|
||||
</modules>
|
||||
|
||||
|
||||
@ -4,15 +4,14 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<parent>
|
||||
<artifactId>device-mgt-iot-digitaldisplay</artifactId>
|
||||
<artifactId>digital-display-plugin</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
|
||||
<version>2.0.4-SNAPSHOT</version>
|
||||
<version>2.1.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.device.mgt.iot.digitaldisplay.service.impl</artifactId>
|
||||
<version>2.0.4-SNAPSHOT</version>
|
||||
<artifactId>org.wso2.carbon.device.mgt.iot.digitaldisplay.api</artifactId>
|
||||
<packaging>war</packaging>
|
||||
<name>WSO2 Carbon - IoT Server DigitalDisplay API</name>
|
||||
<description>WSO2 Carbon - Digital Display Service API Implementation</description>
|
||||
@ -49,23 +48,7 @@
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>org.wso2.carbon.apimgt.application.extension</artifactId>
|
||||
<version>1.1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>org.wso2.carbon.device.mgt.jwt.client.extension</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>org.wso2.carbon.apimgt.application.extension</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>org.wso2.carbon.device.mgt.analytics</artifactId>
|
||||
<artifactId>org.wso2.carbon.device.mgt.analytics.data.publisher</artifactId>
|
||||
<scope>provided</scope>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
@ -241,7 +224,7 @@
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>org.wso2.carbon.device.mgt.jwt.client.extension</artifactId>
|
||||
<artifactId>org.wso2.carbon.identity.jwt.client.extension</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@ -34,10 +34,10 @@ import org.wso2.carbon.device.mgt.iot.digitaldisplay.plugin.constants.DigitalDis
|
||||
import org.wso2.carbon.device.mgt.iot.exception.DeviceControllerException;
|
||||
import org.wso2.carbon.device.mgt.iot.util.ZipArchive;
|
||||
import org.wso2.carbon.device.mgt.iot.util.ZipUtil;
|
||||
import org.wso2.carbon.device.mgt.jwt.client.extension.JWTClient;
|
||||
import org.wso2.carbon.device.mgt.jwt.client.extension.JWTClientManager;
|
||||
import org.wso2.carbon.device.mgt.jwt.client.extension.dto.AccessTokenInfo;
|
||||
import org.wso2.carbon.device.mgt.jwt.client.extension.exception.JWTClientException;
|
||||
import org.wso2.carbon.identity.jwt.client.extension.JWTClient;
|
||||
import org.wso2.carbon.identity.jwt.client.extension.JWTClientManager;
|
||||
import org.wso2.carbon.identity.jwt.client.extension.dto.AccessTokenInfo;
|
||||
import org.wso2.carbon.identity.jwt.client.extension.exception.JWTClientException;
|
||||
import org.wso2.carbon.user.api.UserStoreException;
|
||||
|
||||
import javax.ws.rs.core.Response;
|
||||
@ -47,18 +47,10 @@
|
||||
org.osgi.framework,
|
||||
org.osgi.service.component,
|
||||
org.apache.commons.logging,
|
||||
javax.xml.bind.*;resolution:=optional,
|
||||
javax.naming;resolution:=optional,
|
||||
javax.sql;resolution:=optional,
|
||||
javax.xml.bind.annotation.*;resolution:=optional,
|
||||
javax.xml.parsers;resolution:=optional,
|
||||
javax.net,
|
||||
javax.net.ssl,
|
||||
org.w3c.dom,
|
||||
org.wso2.carbon.device.mgt.common.*,
|
||||
org.wso2.carbon.device.mgt.common,
|
||||
org.wso2.carbon.context.*,
|
||||
org.wso2.carbon.ndatasource.core,
|
||||
org.wso2.carbon.device.mgt.iot.*,
|
||||
org.wso2.carbon.device.mgt.extensions.feature.mgt.*,
|
||||
org.wso2.carbon.utils.*
|
||||
|
||||
@ -30,6 +30,8 @@ import java.util.List;
|
||||
|
||||
public class DigitalDisplayManagerService implements DeviceManagementService{
|
||||
private DeviceManager deviceManager;
|
||||
private final static String DEVICE_TYPE_PROVIDER_DOMAIN = "carbon.super";
|
||||
|
||||
@Override
|
||||
public String getType() {
|
||||
return DigitalDisplayConstants.DEVICE_TYPE;
|
||||
@ -37,7 +39,7 @@ public class DigitalDisplayManagerService implements DeviceManagementService{
|
||||
|
||||
@Override
|
||||
public String getProviderTenantDomain() {
|
||||
return "carbon.super";
|
||||
return DEVICE_TYPE_PROVIDER_DOMAIN;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -33,7 +33,7 @@
|
||||
<url>http://wso2.org</url>
|
||||
|
||||
<modules>
|
||||
<module>org.wso2.carbon.device.mgt.iot.digitaldisplay.service.impl</module>
|
||||
<module>org.wso2.carbon.device.mgt.iot.digitaldisplay.api</module>
|
||||
<module>org.wso2.carbon.device.mgt.iot.digitaldisplay.plugin</module>
|
||||
<module>org.wso2.carbon.device.mgt.iot.digitaldisplay.ui</module>
|
||||
</modules>
|
||||
|
||||
@ -1,14 +1,13 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<parent>
|
||||
<artifactId>device-mgt-iot-droneanalyzer</artifactId>
|
||||
<artifactId>drone-analyzer-plugin</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
|
||||
<version>2.0.4-SNAPSHOT</version>
|
||||
<version>2.1.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.device.mgt.iot.droneanalyzer.service.impl</artifactId>
|
||||
<version>2.0.4-SNAPSHOT</version>
|
||||
<artifactId>org.wso2.carbon.device.mgt.iot.droneanalyzer.api</artifactId>
|
||||
<packaging>war</packaging>
|
||||
<name>WSO2 Carbon - IoT Server Drone Analyzer API</name>
|
||||
<url>http://maven.apache.org</url>
|
||||
@ -35,7 +34,6 @@
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>org.wso2.carbon.device.mgt.analytics.data.publisher</artifactId>
|
||||
<version>1.1.0-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
@ -231,12 +229,7 @@
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>org.wso2.carbon.apimgt.application.extension</artifactId>
|
||||
<version>1.1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>org.wso2.carbon.device.mgt.jwt.client.extension</artifactId>
|
||||
<artifactId>org.wso2.carbon.identity.jwt.client.extension</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@ -35,10 +35,10 @@ import org.wso2.carbon.device.mgt.iot.droneanalyzer.plugin.constants.DroneConsta
|
||||
import org.wso2.carbon.device.mgt.iot.exception.DeviceControllerException;
|
||||
import org.wso2.carbon.device.mgt.iot.util.ZipArchive;
|
||||
import org.wso2.carbon.device.mgt.iot.util.ZipUtil;
|
||||
import org.wso2.carbon.device.mgt.jwt.client.extension.JWTClient;
|
||||
import org.wso2.carbon.device.mgt.jwt.client.extension.JWTClientManager;
|
||||
import org.wso2.carbon.device.mgt.jwt.client.extension.dto.AccessTokenInfo;
|
||||
import org.wso2.carbon.device.mgt.jwt.client.extension.exception.JWTClientException;
|
||||
import org.wso2.carbon.identity.jwt.client.extension.JWTClient;
|
||||
import org.wso2.carbon.identity.jwt.client.extension.JWTClientManager;
|
||||
import org.wso2.carbon.identity.jwt.client.extension.dto.AccessTokenInfo;
|
||||
import org.wso2.carbon.identity.jwt.client.extension.exception.JWTClientException;
|
||||
import org.wso2.carbon.user.api.UserStoreException;
|
||||
import javax.ws.rs.core.Response;
|
||||
import java.nio.ByteBuffer;
|
||||
@ -49,18 +49,10 @@
|
||||
org.osgi.framework,
|
||||
org.osgi.service.component,
|
||||
org.apache.commons.logging,
|
||||
javax.xml.bind.*;resolution:=optional,
|
||||
javax.naming;resolution:=optional,
|
||||
javax.sql;resolution:=optional,
|
||||
javax.xml.bind.annotation.*;resolution:=optional,
|
||||
javax.xml.parsers;resolution:=optional,
|
||||
javax.net;resolution:=optional,
|
||||
javax.net.ssl;resolution:=optional,
|
||||
org.w3c.dom;resolution:=optional,
|
||||
org.wso2.carbon.device.mgt.common.*,
|
||||
org.wso2.carbon.device.mgt.common,
|
||||
org.wso2.carbon.context.*,
|
||||
org.wso2.carbon.ndatasource.core,
|
||||
org.wso2.carbon.device.mgt.iot.*,
|
||||
org.wso2.carbon.device.mgt.extensions.feature.mgt.*,
|
||||
org.wso2.carbon.utils.*
|
||||
|
||||
@ -29,9 +29,10 @@ import org.wso2.carbon.device.mgt.iot.droneanalyzer.plugin.constants.DroneConsta
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
public class DroneAnalyzerManagerService implements DeviceManagementService {
|
||||
private DeviceManager deviceManager;
|
||||
private final static String DEVICE_TYPE_PROVIDER_DOMAIN = "carbon.super";
|
||||
|
||||
@Override
|
||||
public String getType() {
|
||||
return DroneConstants.DEVICE_TYPE;
|
||||
@ -95,7 +96,7 @@ public class DroneAnalyzerManagerService implements DeviceManagementService {
|
||||
|
||||
@Override
|
||||
public String getProviderTenantDomain() {
|
||||
return "carbon.super";
|
||||
return DEVICE_TYPE_PROVIDER_DOMAIN;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -34,7 +34,7 @@
|
||||
|
||||
<modules>
|
||||
<module>org.wso2.carbon.device.mgt.iot.droneanalyzer.ui</module>
|
||||
<module>org.wso2.carbon.device.mgt.iot.droneanalyzer.service.impl</module>
|
||||
<module>org.wso2.carbon.device.mgt.iot.droneanalyzer.api</module>
|
||||
<module>org.wso2.carbon.device.mgt.iot.droneanalyzer.plugin</module>
|
||||
</modules>
|
||||
|
||||
|
||||
@ -1,42 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.wso2.carbon.device.mgt.iot.api;
|
||||
|
||||
public class DeviceUsageDTO {
|
||||
|
||||
private String time;
|
||||
private String value;
|
||||
|
||||
public String getTime() {
|
||||
return time;
|
||||
}
|
||||
|
||||
public void setTime(String time) {
|
||||
this.time = time;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
}
|
||||
@ -20,12 +20,7 @@ package org.wso2.carbon.device.mgt.iot.api;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.wso2.carbon.context.CarbonContext;
|
||||
import org.wso2.carbon.context.PrivilegedCarbonContext;
|
||||
import org.wso2.carbon.device.mgt.common.Device;
|
||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
||||
import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
|
||||
import org.wso2.carbon.device.mgt.common.*;
|
||||
import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfiguration;
|
||||
import org.wso2.carbon.device.mgt.common.license.mgt.License;
|
||||
import org.wso2.carbon.device.mgt.core.dto.DeviceType;
|
||||
@ -33,56 +28,20 @@ import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
|
||||
import org.wso2.carbon.device.mgt.iot.exception.DeviceControllerException;
|
||||
import org.wso2.carbon.device.mgt.iot.sensormgt.SensorDataManager;
|
||||
import org.wso2.carbon.device.mgt.iot.sensormgt.SensorRecord;
|
||||
|
||||
import javax.jws.WebService;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.Consumes;
|
||||
import javax.ws.rs.DELETE;
|
||||
import javax.ws.rs.FormParam;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.HeaderParam;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.PUT;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.PathParam;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.QueryParam;
|
||||
import javax.ws.rs.core.Context;
|
||||
import org.wso2.carbon.device.mgt.iot.util.APIUtil;
|
||||
import javax.ws.rs.*;
|
||||
import javax.ws.rs.core.Response;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@WebService public class DevicesManagerService {
|
||||
|
||||
private static Log log = LogFactory.getLog(DevicesManagerService.class);
|
||||
public class DevicesManagerService {
|
||||
|
||||
@Context //injected response proxy supporting multiple thread
|
||||
private HttpServletResponse response;
|
||||
private static final Log log = LogFactory.getLog(DevicesManagerService.class);
|
||||
|
||||
private PrivilegedCarbonContext ctx;
|
||||
|
||||
private DeviceManagementProviderService getServiceProvider() {
|
||||
String tenantDomain = CarbonContext.getThreadLocalCarbonContext().getTenantDomain();
|
||||
PrivilegedCarbonContext.startTenantFlow();
|
||||
ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
|
||||
ctx.setTenantDomain(tenantDomain, true);
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Getting thread local carbon context for tenant domain: " + tenantDomain);
|
||||
}
|
||||
return (DeviceManagementProviderService) ctx.getOSGiService(DeviceManagementProviderService.class, null);
|
||||
}
|
||||
|
||||
private void endTenantFlow() {
|
||||
PrivilegedCarbonContext.endTenantFlow();
|
||||
ctx = null;
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Tenant flow ended");
|
||||
}
|
||||
}
|
||||
|
||||
private Device[] getActiveDevices(List<Device> devices){
|
||||
private Device[] getActiveDevices(List<Device> devices) {
|
||||
List<Device> activeDevices = new ArrayList<>();
|
||||
if (devices != null) {
|
||||
for (Device device : devices) {
|
||||
@ -94,29 +53,27 @@ import java.util.List;
|
||||
return activeDevices.toArray(new Device[activeDevices.size()]);
|
||||
}
|
||||
|
||||
@Path("/device/user/{username}/all")
|
||||
@Path("/devices/users/{userName}")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public Device[] getDevicesOfUser(@PathParam("username") String username) {
|
||||
public Response getDevicesOfUser(@PathParam("userName") String userName) {
|
||||
try {
|
||||
List<Device> devices = this.getServiceProvider().getDevicesOfUser(username);
|
||||
return this.getActiveDevices(devices);
|
||||
List<Device> devices = APIUtil.getDeviceManagementService()
|
||||
.getDevicesOfUser(userName);
|
||||
Device[] devicesArr = this.getActiveDevices(devices);
|
||||
return Response.status(Response.Status.OK).entity(devicesArr).build();
|
||||
} catch (DeviceManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return null;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/device/user/{username}/all/count")
|
||||
@Path("/devices/users/{userName}/count")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public int getDeviceCount(@PathParam("username") String username){
|
||||
public Response getDeviceCount(@PathParam("userName") String userName) {
|
||||
try {
|
||||
List<Device> devices = this.getServiceProvider().getDevicesOfUser(username);
|
||||
List<Device> devices = APIUtil.getDeviceManagementService()
|
||||
.getDevicesOfUser(userName);
|
||||
if (devices != null) {
|
||||
List<Device> activeDevices = new ArrayList<>();
|
||||
for (Device device : devices) {
|
||||
@ -124,191 +81,182 @@ import java.util.List;
|
||||
activeDevices.add(device);
|
||||
}
|
||||
}
|
||||
return activeDevices.size();
|
||||
return Response.status(Response.Status.OK).entity(activeDevices.size()).build();
|
||||
}
|
||||
return 0;
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
} catch (DeviceManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return 0;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/device/type/{type}/identifier/{identifier}")
|
||||
@Path("/devices/{deviceType}/{identifier}")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public Device getDevice(@PathParam("type") String type, @PathParam("identifier") String identifier){
|
||||
public Response getDevice(@PathParam("deviceType") String deviceType,
|
||||
@PathParam("identifier") String identifier) {
|
||||
|
||||
try{
|
||||
try {
|
||||
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
|
||||
deviceIdentifier.setId(identifier);
|
||||
deviceIdentifier.setType(type);
|
||||
return this.getServiceProvider().getDevice(deviceIdentifier);
|
||||
deviceIdentifier.setType(deviceType);
|
||||
Device device = APIUtil.getDeviceManagementService().getDevice(
|
||||
deviceIdentifier);
|
||||
if (device != null) {
|
||||
return Response.status(Response.Status.OK).entity(device).build();
|
||||
} else {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
} catch (DeviceManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return null;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/device/type/all")
|
||||
@Path("/devices/types")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public DeviceType[] getDeviceTypes(){
|
||||
try{
|
||||
List<DeviceType> deviceTypes = this.getServiceProvider().getAvailableDeviceTypes();
|
||||
return deviceTypes.toArray(new DeviceType[deviceTypes.size()]);
|
||||
} catch (DeviceManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return null;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/device/type/{type}/all")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public Device[] getAllDevices(@PathParam("type") String type){
|
||||
try{
|
||||
List<Device> devices = this.getServiceProvider().getAllDevices(type);
|
||||
return this.getActiveDevices(devices);
|
||||
} catch (DeviceManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return null;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/device/all")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public Device[] getAllDevices(){
|
||||
try{
|
||||
List<Device> devices = this.getServiceProvider().getAllDevices();
|
||||
return this.getActiveDevices(devices);
|
||||
} catch (DeviceManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return null;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/device/type/{type}/config")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public TenantConfiguration getConfiguration(@PathParam("type") String type){
|
||||
public Response getDeviceTypes() {
|
||||
try {
|
||||
return this.getServiceProvider().getConfiguration(type);
|
||||
List<DeviceType> deviceTypes = APIUtil.getDeviceManagementService()
|
||||
.getAvailableDeviceTypes();
|
||||
DeviceType[] deviceTypesArr = deviceTypes.toArray(new DeviceType[deviceTypes.size()]);
|
||||
return Response.status(Response.Status.OK).entity(deviceTypesArr).build();
|
||||
} catch (DeviceManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return null;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/device/role/{role}/all")
|
||||
@Path("/devices/{deviceType}")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public Device[] getAllDevicesOfRole(@PathParam("role") String roleName){
|
||||
try{
|
||||
List<Device> devices = this.getServiceProvider().getAllDevicesOfRole(roleName);
|
||||
return this.getActiveDevices(devices);
|
||||
public Response getAllDevices(@PathParam("deviceType") String deviceType) {
|
||||
try {
|
||||
List<Device> devices = APIUtil.getDeviceManagementService()
|
||||
.getAllDevices(deviceType);
|
||||
Device[] devicesArr = this.getActiveDevices(devices);
|
||||
return Response.status(Response.Status.OK).entity(devicesArr).build();
|
||||
} catch (DeviceManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return null;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/device/name/{name}/all")
|
||||
@Path("/devices")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public Device[] getDevicesByName(@PathParam("name") String name) {
|
||||
try{
|
||||
List<Device> devices = this.getServiceProvider().getDevicesByName(name);
|
||||
return this.getActiveDevices(devices);
|
||||
public Response getAllDevices() {
|
||||
try {
|
||||
List<Device> devices = APIUtil.getDeviceManagementService()
|
||||
.getAllDevices();
|
||||
return Response.status(Response.Status.OK).entity(this.getActiveDevices(devices)).build();
|
||||
} catch (DeviceManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return null;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/device/type/{type}/identifier/{identifier}/status")
|
||||
@Path("/devices/{deviceType}/config")
|
||||
@GET
|
||||
@Produces("application/json")
|
||||
public Response getConfiguration(@PathParam("deviceType") String deviceType) {
|
||||
try {
|
||||
TenantConfiguration tenantConfiguration = APIUtil.getDeviceManagementService().getConfiguration(deviceType);
|
||||
if (tenantConfiguration != null) {
|
||||
return Response.status(Response.Status.OK).entity(tenantConfiguration).build();
|
||||
} else {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
} catch (DeviceManagementException e) {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/devices/search/role")
|
||||
@GET
|
||||
@Produces("application/json")
|
||||
public Response getAllDevicesOfRole(@QueryParam("roleName") String roleName) {
|
||||
try {
|
||||
List<Device> devices = APIUtil.getDeviceManagementService()
|
||||
.getAllDevicesOfRole(roleName);
|
||||
Device[] devicesArr = this.getActiveDevices(devices);
|
||||
return Response.status(Response.Status.OK).entity(devicesArr).build();
|
||||
} catch (DeviceManagementException e) {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/devices/search/name")
|
||||
@GET
|
||||
@Produces("application/json")
|
||||
public Response getDevicesByName(@PathParam("deviceName") String deviceName) {
|
||||
try {
|
||||
List<Device> devices = APIUtil.getDeviceManagementService()
|
||||
.getDevicesByName(deviceName);
|
||||
Device[] devicesArr = this.getActiveDevices(devices);
|
||||
return Response.status(Response.Status.OK).entity(devicesArr).build();
|
||||
} catch (DeviceManagementException e) {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/devices/{deviceType}/{identifier}/status")
|
||||
@PUT
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
void updateDeviceEnrolmentInfo(@PathParam("type") String type, @PathParam("identifier") String identifier,
|
||||
@FormParam("status") EnrolmentInfo.Status status) {
|
||||
DeviceManagementProviderService providerService = this.getServiceProvider();
|
||||
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
|
||||
deviceIdentifier.setType(type);
|
||||
deviceIdentifier.setId(identifier);
|
||||
public Response updateDeviceEnrolmentInfo(@PathParam("deviceType") String deviceType,
|
||||
@PathParam("identifier") String identifier,
|
||||
@FormParam("status") EnrolmentInfo.Status status) {
|
||||
try {
|
||||
DeviceManagementProviderService providerService = APIUtil.getDeviceManagementService();
|
||||
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
|
||||
deviceIdentifier.setType(deviceType);
|
||||
deviceIdentifier.setId(identifier);
|
||||
Device device = providerService.getDevice(deviceIdentifier);
|
||||
providerService.updateDeviceEnrolmentInfo(device, status);
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} catch (DeviceManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/device/status/{status}/all")
|
||||
@Path("/devices/search/status")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public Device[] getDevicesByStatus(@PathParam("status") EnrolmentInfo.Status status) {
|
||||
try{
|
||||
List<Device> devices = this.getServiceProvider().getDevicesByStatus(status);
|
||||
return this.getActiveDevices(devices);
|
||||
public Response getDevicesByStatus(@QueryParam("status") EnrolmentInfo.Status status) {
|
||||
try {
|
||||
List<Device> devices = APIUtil.getDeviceManagementService()
|
||||
.getDevicesByStatus(status);
|
||||
Device[] devicesArr = this.getActiveDevices(devices);
|
||||
return Response.status(Response.Status.OK).entity(devicesArr).build();
|
||||
} catch (DeviceManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return null;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/device/type/{type}/license")
|
||||
@Path("/devices/{deviceType}/license")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public License getLicense(@PathParam("type") String type, @QueryParam("languageCode") String languageCode) {
|
||||
try{
|
||||
return this.getServiceProvider().getLicense(type, languageCode);
|
||||
public Response getLicense(@PathParam("deviceType") String deviceType,
|
||||
@QueryParam("languageCode") String languageCode) {
|
||||
try {
|
||||
License license = APIUtil.getDeviceManagementService().getLicense(
|
||||
deviceType, languageCode);
|
||||
if (license != null) {
|
||||
return Response.status(Response.Status.OK).entity(license).build();
|
||||
} else {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
} catch (DeviceManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return null;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/device/type/{type}/license")
|
||||
@Path("/devices/{deviceType}/license")
|
||||
@POST
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public void addLicense(@PathParam("type") String type, @FormParam("provider") String provider,
|
||||
@FormParam("name") String name, @FormParam("version") String version,
|
||||
@FormParam("language") String language, @FormParam("validFrom") Date validFrom,
|
||||
@FormParam("validTo") Date validTo, @FormParam("text") String text) {
|
||||
try{
|
||||
public Response addLicense(@PathParam("deviceType") String deviceType,
|
||||
@FormParam("provider") String provider, @FormParam("name") String name,
|
||||
@FormParam("version") String version, @FormParam("language") String language,
|
||||
@FormParam("validFrom") Date validFrom, @FormParam("validTo") Date validTo,
|
||||
@FormParam("text") String text) {
|
||||
try {
|
||||
License license = new License();
|
||||
license.setProvider(provider);
|
||||
license.setName(name);
|
||||
@ -317,26 +265,27 @@ import java.util.List;
|
||||
license.setValidFrom(validFrom);
|
||||
license.setValidTo(validTo);
|
||||
license.setText(text);
|
||||
this.getServiceProvider().addLicense(type, license);
|
||||
APIUtil.getDeviceManagementService().addLicense(deviceType, license);
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} catch (DeviceManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/device/type/{type}/identifier/{identifier}")
|
||||
@Path("/devices/{deviceType}/{identifier}/enrollment")
|
||||
@PUT
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
boolean modifyEnrollment(@PathParam("type") String type, @PathParam("identifier") String identifier,
|
||||
@FormParam("name") String name, @FormParam("description") String description,
|
||||
@FormParam("enrollmentId") int enrollmentId,
|
||||
@FormParam("dateOfEnrolment") long dateOfEnrolment,
|
||||
@FormParam("dateOfLastUpdate") long dateOfLastUpdate,
|
||||
@FormParam("ownership") EnrolmentInfo.OwnerShip ownership,
|
||||
@FormParam("status") EnrolmentInfo.Status status,
|
||||
@FormParam("owner") String owner) {
|
||||
public Response modifyEnrollment(@PathParam("deviceType") String deviceType,
|
||||
@PathParam("identifier") String identifier,
|
||||
@FormParam("name") String name,
|
||||
@FormParam("description") String description,
|
||||
@FormParam("groupId") int groupId,
|
||||
@FormParam("enrollmentId") int enrollmentId,
|
||||
@FormParam("dateOfEnrolment") long dateOfEnrolment,
|
||||
@FormParam("dateOfLastUpdate") long dateOfLastUpdate,
|
||||
@FormParam("ownership") EnrolmentInfo.OwnerShip ownership,
|
||||
@FormParam("status") EnrolmentInfo.Status status,
|
||||
@FormParam("owner") String owner) {
|
||||
|
||||
EnrolmentInfo enrolmentInfo = new EnrolmentInfo();
|
||||
enrolmentInfo.setId(enrollmentId);
|
||||
@ -347,33 +296,36 @@ import java.util.List;
|
||||
enrolmentInfo.setOwner(owner);
|
||||
|
||||
Device device = new Device();
|
||||
device.setType(type);
|
||||
device.setType(deviceType);
|
||||
device.setDeviceIdentifier(identifier);
|
||||
device.setName(name);
|
||||
device.setDescription(description);
|
||||
device.setEnrolmentInfo(enrolmentInfo);
|
||||
try {
|
||||
return this.getServiceProvider().modifyEnrollment(device);
|
||||
boolean isModified = APIUtil.getDeviceManagementService()
|
||||
.modifyEnrollment(device);
|
||||
if (isModified) {
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} else {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
} catch (DeviceManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return false;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/device")
|
||||
@Path("/devices/{deviceType}/{identifier}/enrollment")
|
||||
@POST
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
boolean enrollDevice(@FormParam("type") String type, @FormParam("identifier") String identifier,
|
||||
@FormParam("name") String name, @FormParam("description") String description,
|
||||
@FormParam("enrollmentId") int enrollmentId,
|
||||
@FormParam("dateOfEnrolment") long dateOfEnrolment,
|
||||
@FormParam("dateOfLastUpdate") long dateOfLastUpdate,
|
||||
@FormParam("ownership") EnrolmentInfo.OwnerShip ownership,
|
||||
@FormParam("status") EnrolmentInfo.Status status,
|
||||
@FormParam("owner") String owner) {
|
||||
public Response enrollDevice(@PathParam("deviceType") String deviceType, @PathParam("identifier") String identifier,
|
||||
@FormParam("name") String name, @FormParam("description") String description,
|
||||
@FormParam("groupId") int groupId,
|
||||
@FormParam("enrollmentId") int enrollmentId,
|
||||
@FormParam("dateOfEnrolment") long dateOfEnrolment,
|
||||
@FormParam("dateOfLastUpdate") long dateOfLastUpdate,
|
||||
@FormParam("ownership") EnrolmentInfo.OwnerShip ownership,
|
||||
@FormParam("status") EnrolmentInfo.Status status,
|
||||
@FormParam("owner") String owner) {
|
||||
|
||||
EnrolmentInfo enrolmentInfo = new EnrolmentInfo();
|
||||
enrolmentInfo.setId(enrollmentId);
|
||||
@ -384,197 +336,232 @@ import java.util.List;
|
||||
enrolmentInfo.setOwner(owner);
|
||||
|
||||
Device device = new Device();
|
||||
device.setType(type);
|
||||
device.setType(deviceType);
|
||||
device.setDeviceIdentifier(identifier);
|
||||
device.setName(name);
|
||||
device.setDescription(description);
|
||||
device.setEnrolmentInfo(enrolmentInfo);
|
||||
try {
|
||||
return this.getServiceProvider().enrollDevice(device);
|
||||
boolean isModified = APIUtil.getDeviceManagementService().enrollDevice(
|
||||
device);
|
||||
if (isModified) {
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} else {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
} catch (DeviceManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return false;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/device/tenantconfiguration")
|
||||
@Path("/devices/tenant/configuration")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public TenantConfiguration getConfiguration(){
|
||||
public Response getTenantConfiguration() {
|
||||
try {
|
||||
return this.getServiceProvider().getConfiguration();
|
||||
TenantConfiguration tenantConfiguration = APIUtil.getDeviceManagementService().getConfiguration();
|
||||
if (tenantConfiguration != null) {
|
||||
return Response.status(Response.Status.OK).entity(tenantConfiguration).build();
|
||||
} else {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
} catch (DeviceManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return null;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/device/tenantconfiguration")
|
||||
@Path("/devices/tenant/configuration")
|
||||
@POST
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public boolean saveConfiguration(@FormParam("tenantConfiguration") TenantConfiguration tenantConfiguration){
|
||||
public Response saveTenantConfiguration(@FormParam("tenantConfiguration") TenantConfiguration tenantConfiguration) {
|
||||
try {
|
||||
return this.getServiceProvider().saveConfiguration(tenantConfiguration);
|
||||
boolean isSaved = APIUtil.getDeviceManagementService()
|
||||
.saveConfiguration(tenantConfiguration);
|
||||
if (isSaved) {
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} else {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
} catch (DeviceManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return false;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/device/type/{type}/identifier/{identifier}")
|
||||
@Path("/devices/{deviceType}/{identifier}")
|
||||
@DELETE
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public boolean disenrollDevice(@PathParam("type") String type, @PathParam("identifier") String identifier){
|
||||
public Response disenrollDevice(@PathParam("deviceType") String deviceType,
|
||||
@PathParam("identifier") String identifier) {
|
||||
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
|
||||
deviceIdentifier.setType(type);
|
||||
deviceIdentifier.setType(deviceType);
|
||||
deviceIdentifier.setId(identifier);
|
||||
try {
|
||||
return this.getServiceProvider().disenrollDevice(deviceIdentifier);
|
||||
boolean isDisEnrolled = APIUtil.getDeviceManagementService()
|
||||
.disenrollDevice(deviceIdentifier);
|
||||
if (isDisEnrolled) {
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} else {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
} catch (DeviceManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return false;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/device/type/{type}/identifier/{identifier}/enrolled")
|
||||
@Path("/devices/{deviceType}/{identifier}/enrollment")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public boolean isEnrolled(@PathParam("type") String type, @PathParam("identifier") String identifier){
|
||||
public Response isEnrolled(@PathParam("deviceType") String deviceType,
|
||||
@PathParam("identifier") String identifier) {
|
||||
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
|
||||
deviceIdentifier.setType(type);
|
||||
deviceIdentifier.setType(deviceType);
|
||||
deviceIdentifier.setId(identifier);
|
||||
try {
|
||||
return this.getServiceProvider().isEnrolled(deviceIdentifier);
|
||||
boolean isEnrolled = APIUtil.getDeviceManagementService().isEnrolled(
|
||||
deviceIdentifier);
|
||||
if (isEnrolled) {
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} else {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
} catch (DeviceManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return false;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
@Path("/device/type/{type}/identifier/{identifier}/active")
|
||||
|
||||
@Path("/devices/{deviceType}/{identifier}/status")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public boolean isActive(@PathParam("type") String type, @PathParam("identifier") String identifier){
|
||||
public Response isActive(@PathParam("deviceType") String deviceType,
|
||||
@PathParam("identifier") String identifier) {
|
||||
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
|
||||
deviceIdentifier.setType(type);
|
||||
deviceIdentifier.setType(deviceType);
|
||||
deviceIdentifier.setId(identifier);
|
||||
try {
|
||||
return this.getServiceProvider().isActive(deviceIdentifier);
|
||||
boolean isActive = APIUtil.getDeviceManagementService().isActive(
|
||||
deviceIdentifier);
|
||||
if (isActive) {
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} else {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
} catch (DeviceManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return false;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/device/type/{type}/identifier/{identifier}/active")
|
||||
@Path("/devices/{deviceType}/{identifier}/status")
|
||||
@PUT
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public boolean setActive(@PathParam("type") String type, @PathParam("identifier") String identifier,
|
||||
@FormParam("status") boolean status){
|
||||
public Response changeDeviceStatus(@PathParam("deviceType") String deviceType,
|
||||
@PathParam("identifier") String identifier,
|
||||
@FormParam("status") boolean status) {
|
||||
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
|
||||
deviceIdentifier.setType(type);
|
||||
deviceIdentifier.setType(deviceType);
|
||||
deviceIdentifier.setId(identifier);
|
||||
try {
|
||||
return this.getServiceProvider().setActive(deviceIdentifier, status);
|
||||
boolean isActivated = APIUtil.getDeviceManagementService().setActive(
|
||||
deviceIdentifier, status);
|
||||
if (isActivated) {
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} else {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
} catch (DeviceManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return false;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/device/type/{type}/identifier/{identifier}/ownership")
|
||||
@Path("/devices/{deviceType}/{identifier}/ownership")
|
||||
@PUT
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public boolean setOwnership(@PathParam("type") String type, @PathParam("identifier") String identifier,
|
||||
@FormParam("ownership") String ownership){
|
||||
public Response setOwnership(@PathParam("deviceType") String deviceType,
|
||||
@PathParam("identifier") String identifier,
|
||||
@FormParam("ownership") String ownership) {
|
||||
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
|
||||
deviceIdentifier.setType(type);
|
||||
deviceIdentifier.setType(deviceType);
|
||||
deviceIdentifier.setId(identifier);
|
||||
try {
|
||||
return this.getServiceProvider().setOwnership(deviceIdentifier, ownership);
|
||||
boolean isOwnershipChanged = APIUtil.getDeviceManagementService()
|
||||
.setOwnership(deviceIdentifier, ownership);
|
||||
if (isOwnershipChanged) {
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} else {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
} catch (DeviceManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return false;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/device/type/{type}/identifier/{identifier}/status")
|
||||
@Path("/devices/{deviceType}/{identifier}/enrollment/status")
|
||||
@PUT
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public boolean setStatus(@PathParam("type") String type, @PathParam("identifier") String identifier,
|
||||
@FormParam("owner") String owner, @FormParam("status") EnrolmentInfo.Status status){
|
||||
public Response setStatus(@PathParam("deviceType") String deviceType,
|
||||
@PathParam("identifier") String identifier, @FormParam("owner") String owner,
|
||||
@FormParam("status") EnrolmentInfo.Status status) {
|
||||
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
|
||||
deviceIdentifier.setType(type);
|
||||
deviceIdentifier.setType(deviceType);
|
||||
deviceIdentifier.setId(identifier);
|
||||
try {
|
||||
return this.getServiceProvider().setStatus(deviceIdentifier, owner, status);
|
||||
boolean isStatusChanged = APIUtil.getDeviceManagementService()
|
||||
.setStatus(deviceIdentifier, owner, status);
|
||||
if (isStatusChanged) {
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} else {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
} catch (DeviceManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return false;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/device/type/{type}/identifier/{identifier}/sensor/{sensorName}")
|
||||
@Path("/devices/{deviceType}/{identifier}/sensors/{sensorName}")
|
||||
@POST
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public boolean setSensorValue(@PathParam("type") String type, @PathParam("identifier") String deviceId,
|
||||
@PathParam("sensorName") String sensorName,
|
||||
@HeaderParam("sensorValue") String sensorValue){
|
||||
|
||||
try {
|
||||
return SensorDataManager.getInstance().setSensorRecord(deviceId, sensorName, sensorValue, Calendar
|
||||
.getInstance().getTimeInMillis());
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
public Response setSensorValue(@PathParam("deviceType") String deviceType,
|
||||
@PathParam("identifier") String deviceId,
|
||||
@PathParam("sensorName") String sensorName,
|
||||
@FormParam("sensorValue") String sensorValue) {
|
||||
boolean isValueSet = SensorDataManager.getInstance().setSensorRecord(deviceId, sensorName,
|
||||
sensorValue, Calendar.getInstance().getTimeInMillis());
|
||||
if (isValueSet) {
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} else {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/device/type/{type}/identifier/{identifier}/sensor/{sensorName}")
|
||||
@Path("/devices/{deviceType}/{identifier}/sensors/{sensorName}")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public SensorRecord getSensorValue(@PathParam("type") String type, @PathParam("identifier") String deviceId,
|
||||
@PathParam("sensorName") String sensorName, @HeaderParam("defaultValue") String defaultValue){
|
||||
public Response getSensorValue(@PathParam("deviceType") String deviceType,
|
||||
@PathParam("identifier") String deviceId,
|
||||
@PathParam("sensorName") String sensorName,
|
||||
@QueryParam("defaultValue") String defaultValue) {
|
||||
|
||||
try {
|
||||
return SensorDataManager.getInstance().getSensorRecord(deviceId, sensorName);
|
||||
SensorRecord sensorRecord = SensorDataManager.getInstance().getSensorRecord(deviceId, sensorName);
|
||||
if (sensorRecord != null) {
|
||||
return Response.status(Response.Status.OK).entity(sensorRecord).build();
|
||||
} else {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
} catch (DeviceControllerException e) {
|
||||
log.error("Error on reading sensor value: " + e.getMessage());
|
||||
if(defaultValue != null){
|
||||
return new SensorRecord(defaultValue, Calendar.getInstance().getTimeInMillis());
|
||||
}else{
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return null;
|
||||
if (defaultValue != null) {
|
||||
SensorRecord sensorRecord = new SensorRecord(defaultValue,
|
||||
Calendar.getInstance().getTimeInMillis());
|
||||
return Response.status(Response.Status.OK).entity(sensorRecord).build();
|
||||
} else {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -21,21 +21,16 @@ package org.wso2.carbon.device.mgt.iot.api;
|
||||
import org.apache.commons.httpclient.HttpStatus;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.wso2.carbon.context.CarbonContext;
|
||||
import org.wso2.carbon.context.PrivilegedCarbonContext;
|
||||
import org.wso2.carbon.device.mgt.common.Device;
|
||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||
import org.wso2.carbon.device.mgt.common.PaginationRequest;
|
||||
import org.wso2.carbon.device.mgt.common.PaginationResult;
|
||||
import org.wso2.carbon.device.mgt.common.group.mgt.DeviceGroup;
|
||||
import org.wso2.carbon.device.mgt.common.group.mgt.GroupManagementException;
|
||||
import org.wso2.carbon.device.mgt.common.group.mgt.GroupUser;
|
||||
import org.wso2.carbon.device.mgt.core.service.GroupManagementProviderService;
|
||||
import org.wso2.carbon.device.mgt.iot.util.APIUtil;
|
||||
import org.wso2.carbon.device.mgt.iot.util.ResponsePayload;
|
||||
|
||||
import javax.jws.WebService;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.Consumes;
|
||||
import javax.ws.rs.DELETE;
|
||||
import javax.ws.rs.FormParam;
|
||||
import javax.ws.rs.GET;
|
||||
@ -45,12 +40,10 @@ import javax.ws.rs.Path;
|
||||
import javax.ws.rs.PathParam;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.QueryParam;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.Response;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@WebService
|
||||
public class GroupManagerService {
|
||||
|
||||
private static final String DEFAULT_ADMIN_ROLE = "admin";
|
||||
@ -69,46 +62,21 @@ public class GroupManagerService {
|
||||
|
||||
private static Log log = LogFactory.getLog(GroupManagerService.class);
|
||||
|
||||
@Context //injected response proxy supporting multiple threads
|
||||
private HttpServletResponse response;
|
||||
private PrivilegedCarbonContext ctx;
|
||||
|
||||
private GroupManagementProviderService getServiceProvider() {
|
||||
String tenantDomain = CarbonContext.getThreadLocalCarbonContext().getTenantDomain();
|
||||
String username = CarbonContext.getThreadLocalCarbonContext().getUsername();
|
||||
PrivilegedCarbonContext.startTenantFlow();
|
||||
ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
|
||||
ctx.setTenantDomain(tenantDomain, true);
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Getting thread local carbon context for tenant domain: " + tenantDomain);
|
||||
}
|
||||
return (GroupManagementProviderService) ctx.getOSGiService(GroupManagementProviderService.class, null);
|
||||
}
|
||||
|
||||
private void endTenantFlow() {
|
||||
PrivilegedCarbonContext.endTenantFlow();
|
||||
ctx = null;
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Tenant flow ended");
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/group")
|
||||
@Path("/groups")
|
||||
@POST
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public Response createGroup(@FormParam("name") String name,
|
||||
@FormParam("username") String username,
|
||||
@FormParam("description") String description) {
|
||||
public Response createGroup(@FormParam("groupName") String groupName,
|
||||
@FormParam("userName") String username,
|
||||
@FormParam("description") String description) {
|
||||
DeviceGroup group = new DeviceGroup();
|
||||
group.setName(name);
|
||||
group.setName(username);
|
||||
group.setDescription(description);
|
||||
group.setOwner(username);
|
||||
group.setDateOfCreation(new Date().getTime());
|
||||
group.setDateOfLastUpdate(new Date().getTime());
|
||||
boolean isAdded = false;
|
||||
try {
|
||||
GroupManagementProviderService groupManagementService = this.getServiceProvider();
|
||||
GroupManagementProviderService groupManagementService = APIUtil.getGroupManagementProviderService();
|
||||
int groupId = groupManagementService.createGroup(group, DEFAULT_ADMIN_ROLE, DEFAULT_ADMIN_PERMISSIONS);
|
||||
if (groupId == -2) {
|
||||
ResponsePayload responsePayload = new ResponsePayload();
|
||||
@ -134,451 +102,374 @@ public class GroupManagerService {
|
||||
}
|
||||
} catch (GroupManagementException e) {
|
||||
return Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/group/id/{groupId}")
|
||||
@Path("/groups/{groupId}")
|
||||
@PUT
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public boolean updateGroup(@PathParam("groupId") int groupId, @FormParam("name") String name,
|
||||
@FormParam("username") String username,
|
||||
@FormParam("description") String description) {
|
||||
if (!isAuthorized(username, groupId, "/permission/device-mgt/admin/groups/modify")) {
|
||||
response.setStatus(Response.Status.FORBIDDEN.getStatusCode());
|
||||
return false;
|
||||
}
|
||||
public Response updateGroup(@PathParam("groupId") int groupId, @FormParam("groupName") String groupName,
|
||||
@FormParam("userName") String userName,
|
||||
@FormParam("description") String description) {
|
||||
try {
|
||||
GroupManagementProviderService groupManagementService = this.getServiceProvider();
|
||||
GroupManagementProviderService groupManagementService = APIUtil.getGroupManagementProviderService();
|
||||
DeviceGroup group = groupManagementService.getGroup(groupId);
|
||||
group.setName(name);
|
||||
group.setName(groupName);
|
||||
group.setDescription(description);
|
||||
group.setOwner(username);
|
||||
group.setOwner(userName);
|
||||
group.setDateOfLastUpdate(new Date().getTime());
|
||||
response.setStatus(Response.Status.OK.getStatusCode());
|
||||
Response.status(Response.Status.OK.getStatusCode());
|
||||
groupManagementService.updateGroup(group);
|
||||
return true;
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} catch (GroupManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
log.error(e.getErrorMessage(), e);
|
||||
return false;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/group/id/{groupId}")
|
||||
@Path("/groups/{groupId}")
|
||||
@DELETE
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public boolean deleteGroup(@PathParam("groupId") int groupId,
|
||||
@QueryParam("username") String username) {
|
||||
if (!isAuthorized(username, groupId, "/permission/device-mgt/admin/groups/delete")) {
|
||||
response.setStatus(Response.Status.FORBIDDEN.getStatusCode());
|
||||
return false;
|
||||
public Response deleteGroup(@PathParam("groupId") int groupId, @QueryParam("userName") String userName) {
|
||||
|
||||
if (!checkAuthorize(getCurrentUserName(), groupId, "/permission/device-mgt/admin/groups/delete")) {
|
||||
return Response.status(Response.Status.FORBIDDEN).build();
|
||||
}
|
||||
boolean isDeleted = false;
|
||||
|
||||
try {
|
||||
response.setStatus(Response.Status.OK.getStatusCode());
|
||||
isDeleted = this.getServiceProvider().deleteGroup(groupId);
|
||||
boolean isDeleted = APIUtil.getGroupManagementProviderService().deleteGroup(
|
||||
groupId);
|
||||
if (isDeleted) {
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} else {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
} catch (GroupManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
log.error(e.getErrorMessage(), e);
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
log.error(e.getMessage());
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
return isDeleted;
|
||||
}
|
||||
|
||||
@Path("/group/id/{groupId}")
|
||||
@Path("/groups/{groupId}")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public DeviceGroup getGroup(@PathParam("groupId") int groupId,
|
||||
@FormParam("username") String username) {
|
||||
DeviceGroup deviceGroup = null;
|
||||
public Response getGroup(@PathParam("groupId") int groupId) {
|
||||
try {
|
||||
response.setStatus(Response.Status.OK.getStatusCode());
|
||||
deviceGroup = this.getServiceProvider().getGroup(groupId);
|
||||
DeviceGroup deviceGroup = APIUtil.getGroupManagementProviderService().getGroup(
|
||||
groupId);
|
||||
if (deviceGroup != null) {
|
||||
return Response.status(Response.Status.OK).entity(deviceGroup).build();
|
||||
} else {
|
||||
return Response.status(Response.Status.NOT_FOUND).build();
|
||||
}
|
||||
} catch (GroupManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
log.error(e.getErrorMessage(), e);
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
log.error(e.getMessage(), e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
return deviceGroup;
|
||||
}
|
||||
|
||||
@Path("/group/name/{groupName}")
|
||||
@Path("/groups/search")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public DeviceGroup[] findGroups(@PathParam("groupName") String groupName,
|
||||
@FormParam("username") String username) {
|
||||
DeviceGroup[] deviceGroups = null;
|
||||
public Response findGroups(@QueryParam("groupName") String groupName,
|
||||
@QueryParam("userName") String userName) {
|
||||
try {
|
||||
List<DeviceGroup> groups = this.getServiceProvider().findInGroups(groupName, username);
|
||||
deviceGroups = new DeviceGroup[groups.size()];
|
||||
response.setStatus(Response.Status.OK.getStatusCode());
|
||||
List<DeviceGroup> groups = APIUtil.getGroupManagementProviderService()
|
||||
.findInGroups(groupName, userName);
|
||||
DeviceGroup[] deviceGroups = new DeviceGroup[groups.size()];
|
||||
groups.toArray(deviceGroups);
|
||||
return Response.status(Response.Status.OK).entity(deviceGroups).build();
|
||||
} catch (GroupManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
log.error(e.getErrorMessage(), e);
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
log.error(e.getMessage(), e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
return deviceGroups;
|
||||
}
|
||||
|
||||
@Path("/group/user/{username}/all")
|
||||
@Path("/groups")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public DeviceGroup[] getGroups(@PathParam("username") String username,
|
||||
@QueryParam("permission") String permission) {
|
||||
DeviceGroup[] deviceGroups = null;
|
||||
public Response getGroups(@QueryParam("userName") String userName,
|
||||
@QueryParam("permission") String permission) {
|
||||
try {
|
||||
GroupManagementProviderService groupManagementService = this.getServiceProvider();
|
||||
GroupManagementProviderService groupManagementService = APIUtil.getGroupManagementProviderService();
|
||||
List<DeviceGroup> groups;
|
||||
if (permission != null) {
|
||||
groups = groupManagementService.getGroups(username, permission);
|
||||
groups = groupManagementService.getGroups(userName, permission);
|
||||
} else {
|
||||
groups = groupManagementService.getGroups(username);
|
||||
groups = groupManagementService.getGroups(userName);
|
||||
}
|
||||
deviceGroups = new DeviceGroup[groups.size()];
|
||||
response.setStatus(Response.Status.OK.getStatusCode());
|
||||
DeviceGroup[] deviceGroups = new DeviceGroup[groups.size()];
|
||||
groups.toArray(deviceGroups);
|
||||
return Response.status(Response.Status.OK).entity(deviceGroups).build();
|
||||
} catch (GroupManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
log.error(e.getErrorMessage(), e);
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
log.error(e.getMessage(), e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
return deviceGroups;
|
||||
}
|
||||
|
||||
@Path("/group/user/{username}/all/count")
|
||||
@Path("/groups/count")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public int getGroupCount(@PathParam("username") String username) {
|
||||
int count = -1;
|
||||
public Response getGroupCount(@QueryParam("userName") String userName) {
|
||||
try {
|
||||
response.setStatus(Response.Status.OK.getStatusCode());
|
||||
count = this.getServiceProvider().getGroupCount(username);
|
||||
int count = APIUtil.getGroupManagementProviderService().getGroupCount(userName);
|
||||
return Response.status(Response.Status.OK).entity(count).build();
|
||||
} catch (GroupManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
log.error(e.getErrorMessage(), e);
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
@Path("/group/id/{groupId}/share")
|
||||
@POST
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public boolean shareGroup(@FormParam("username") String username,
|
||||
@FormParam("shareUser") String shareUser,
|
||||
@PathParam("groupId") int groupId,
|
||||
@FormParam("role") String sharingRole) {
|
||||
if (!isAuthorized(username, groupId, "/permission/device-mgt/admin/groups/share")) {
|
||||
response.setStatus(Response.Status.FORBIDDEN.getStatusCode());
|
||||
return false;
|
||||
}
|
||||
boolean isShared = false;
|
||||
try {
|
||||
response.setStatus(Response.Status.OK.getStatusCode());
|
||||
isShared = this.getServiceProvider().shareGroup(shareUser, groupId, sharingRole);
|
||||
} catch (GroupManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
log.error(e.getErrorMessage(), e);
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
}
|
||||
return isShared;
|
||||
}
|
||||
|
||||
@Path("/group/id/{groupId}/unshare")
|
||||
@POST
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public boolean unShareGroup(@FormParam("username") String username,
|
||||
@FormParam("unShareUser") String unShareUser,
|
||||
@PathParam("groupId") int groupId,
|
||||
@FormParam("role") String sharingRole) {
|
||||
if (!isAuthorized(username, groupId, "/permission/device-mgt/admin/groups/share")) {
|
||||
response.setStatus(Response.Status.FORBIDDEN.getStatusCode());
|
||||
return false;
|
||||
}
|
||||
boolean isUnShared = false;
|
||||
try {
|
||||
response.setStatus(Response.Status.OK.getStatusCode());
|
||||
isUnShared = this.getServiceProvider().unshareGroup(unShareUser, groupId, sharingRole);
|
||||
} catch (GroupManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
log.error(e.getErrorMessage(), e);
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
}
|
||||
return isUnShared;
|
||||
}
|
||||
|
||||
@Path("/group/id/{groupId}/role")
|
||||
@POST
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public boolean addSharing(@FormParam("username") String username,
|
||||
@PathParam("groupId") int groupId,
|
||||
@FormParam("role") String roleName,
|
||||
@FormParam("permissions") String[] permissions) {
|
||||
if (!isAuthorized(username, groupId, "/permission/device-mgt/admin/groups/share")) {
|
||||
response.setStatus(Response.Status.FORBIDDEN.getStatusCode());
|
||||
return false;
|
||||
}
|
||||
boolean isAdded = false;
|
||||
try {
|
||||
response.setStatus(Response.Status.OK.getStatusCode());
|
||||
isAdded = this.getServiceProvider().addGroupSharingRole(username, groupId, roleName, permissions);
|
||||
} catch (GroupManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
log.error(e.getErrorMessage(), e);
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
}
|
||||
return isAdded;
|
||||
}
|
||||
|
||||
@Path("/group/id/{groupId}/role/{role}")
|
||||
@DELETE
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public boolean removeSharing(@QueryParam("username") String username,
|
||||
@PathParam("groupId") int groupId,
|
||||
@PathParam("role") String roleName) {
|
||||
if (!isAuthorized(username, groupId, "/permission/device-mgt/admin/groups/share")) {
|
||||
response.setStatus(Response.Status.FORBIDDEN.getStatusCode());
|
||||
}
|
||||
boolean isRemoved = false;
|
||||
try {
|
||||
response.setStatus(Response.Status.OK.getStatusCode());
|
||||
isRemoved = this.getServiceProvider().removeGroupSharingRole(groupId, roleName);
|
||||
} catch (GroupManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
log.error(e.getErrorMessage(), e);
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
}
|
||||
return isRemoved;
|
||||
}
|
||||
|
||||
@Path("/group/id/{groupId}/role/all")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public String[] getRoles(@PathParam("groupId") int groupId) {
|
||||
String[] rolesArray = null;
|
||||
try {
|
||||
List<String> roles = this.getServiceProvider().getRoles(groupId);
|
||||
rolesArray = new String[roles.size()];
|
||||
response.setStatus(Response.Status.OK.getStatusCode());
|
||||
roles.toArray(rolesArray);
|
||||
} catch (GroupManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
log.error(e.getErrorMessage(), e);
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
}
|
||||
return rolesArray;
|
||||
}
|
||||
|
||||
@Path("/group/id/{groupId}/{user}/role/all")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public String[] getRoles(@PathParam("user") String user, @PathParam("groupId") int groupId) {
|
||||
String[] rolesArray = null;
|
||||
try {
|
||||
List<String> roles = this.getServiceProvider().getRoles(user, groupId);
|
||||
rolesArray = new String[roles.size()];
|
||||
response.setStatus(Response.Status.OK.getStatusCode());
|
||||
roles.toArray(rolesArray);
|
||||
} catch (GroupManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
log.error(e.getErrorMessage(), e);
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
}
|
||||
return rolesArray;
|
||||
}
|
||||
|
||||
@Path("/group/id/{groupId}/user/all")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public GroupUser[] getUsers(@PathParam("groupId") int groupId) {
|
||||
GroupUser[] usersArray = null;
|
||||
try {
|
||||
List<GroupUser> users = this.getServiceProvider().getUsers(groupId);
|
||||
usersArray = new GroupUser[users.size()];
|
||||
response.setStatus(Response.Status.OK.getStatusCode());
|
||||
users.toArray(usersArray);
|
||||
} catch (GroupManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
log.error(e.getErrorMessage(), e);
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
}
|
||||
return usersArray;
|
||||
}
|
||||
|
||||
@Path("/group/id/{groupId}/device/all")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public Device[] getDevices(@PathParam("groupId") int groupId) {
|
||||
Device[] deviceArray = null;
|
||||
try {
|
||||
List<Device> devices = this.getServiceProvider().getDevices(groupId);
|
||||
deviceArray = new Device[devices.size()];
|
||||
response.setStatus(Response.Status.OK.getStatusCode());
|
||||
devices.toArray(deviceArray);
|
||||
} catch (GroupManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
log.error(e.getErrorMessage(), e);
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
}
|
||||
return deviceArray;
|
||||
}
|
||||
|
||||
@Path("/group/id/{groupId}/device/count")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public int getDeviceCount(@PathParam("groupId") int groupId) {
|
||||
try {
|
||||
return this.getServiceProvider().getDeviceCount(groupId);
|
||||
} catch (GroupManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
log.error(e.getErrorMessage(), e);
|
||||
return -1;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
log.error(e.getMessage(), e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/group/id/{groupId}/device")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public List<Device> getDevices(@PathParam("groupId") int groupId,
|
||||
@QueryParam("index") int index,
|
||||
@QueryParam("limit") int limit) {
|
||||
try {
|
||||
PaginationRequest request = new PaginationRequest(index, limit);
|
||||
return this.getServiceProvider().getDevices(groupId, request);
|
||||
} catch (GroupManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
log.error(e.getErrorMessage(), e);
|
||||
return null;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/group/id/{groupId}/device/assign")
|
||||
@Path("/groups/{groupId}/share")
|
||||
@PUT
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public boolean addDevice(@PathParam("groupId") int groupId,
|
||||
@FormParam("deviceId") String deviceId,
|
||||
@FormParam("deviceType") String deviceType,
|
||||
@FormParam("username") String username) {
|
||||
if (!isAuthorized(username, groupId, "/permission/device-mgt/admin/groups/add_devices")) {
|
||||
response.setStatus(Response.Status.FORBIDDEN.getStatusCode());
|
||||
return false;
|
||||
public Response shareGroup(@FormParam("userName") String userName,
|
||||
@FormParam("shareUser") String shareUser, @PathParam("groupId") int groupId,
|
||||
@FormParam("roleName") String sharingRole) {
|
||||
if (!checkAuthorize(getCurrentUserName(), groupId, "/permission/device-mgt/admin/groups/share")) {
|
||||
return Response.status(Response.Status.FORBIDDEN).build();
|
||||
}
|
||||
boolean isAdded = false;
|
||||
|
||||
try {
|
||||
DeviceIdentifier deviceIdentifier = new DeviceIdentifier(deviceId, deviceType);
|
||||
response.setStatus(Response.Status.OK.getStatusCode());
|
||||
isAdded = this.getServiceProvider().addDevice(deviceIdentifier, groupId);
|
||||
boolean isShared = APIUtil.getGroupManagementProviderService().shareGroup(
|
||||
shareUser, groupId, sharingRole);
|
||||
if (isShared) {
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} else {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
} catch (GroupManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
log.error(e.getErrorMessage(), e);
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
log.error(e.getMessage(), e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/groups/{groupId}/unshare")
|
||||
@PUT
|
||||
@Produces("application/json")
|
||||
public Response unShareGroup(@FormParam("userName") String userName,
|
||||
@FormParam("unShareUser") String unShareUser,
|
||||
@PathParam("groupId") int groupId,
|
||||
@FormParam("roleName") String sharingRole) {
|
||||
if (!checkAuthorize(getCurrentUserName(), groupId, "/permission/device-mgt/admin/groups/share")) {
|
||||
return Response.status(Response.Status.FORBIDDEN).build();
|
||||
}
|
||||
|
||||
try {
|
||||
boolean isUnShared = APIUtil.getGroupManagementProviderService().unshareGroup(
|
||||
unShareUser, groupId, sharingRole);
|
||||
if (isUnShared) {
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} else {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
} catch (GroupManagementException e) {
|
||||
log.error(e.getMessage(), e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@Path("/groups/{groupId}/share/roles/{roleName}/permissions")
|
||||
@PUT
|
||||
@Produces("application/json")
|
||||
public Response addSharing(@QueryParam("userName") String userName, @PathParam("groupId") int groupId,
|
||||
@PathParam("roleName") String roleName,
|
||||
@FormParam("permissions") String[] permissions) {
|
||||
if (!checkAuthorize(getCurrentUserName(), groupId, "/permission/device-mgt/admin/groups/share")) {
|
||||
return Response.status(Response.Status.FORBIDDEN).build();
|
||||
}
|
||||
|
||||
try {
|
||||
boolean isAdded = APIUtil.getGroupManagementProviderService().addGroupSharingRole(
|
||||
userName, groupId, roleName, permissions);
|
||||
if (isAdded) {
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} else {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
} catch (GroupManagementException e) {
|
||||
log.error(e.getMessage(), e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
return isAdded;
|
||||
}
|
||||
|
||||
@Path("/group/id/{groupId}/device/assign")
|
||||
@DELETE
|
||||
@Consumes("application/json")
|
||||
@Path("/groups/{groupId}/share/roles/{roleName}/permissions")
|
||||
@Produces("application/json")
|
||||
public boolean removeDevice(@PathParam("groupId") int groupId,
|
||||
@FormParam("deviceId") String deviceId,
|
||||
@FormParam("deviceType") String deviceType,
|
||||
@FormParam("username") String username) {
|
||||
if (!isAuthorized(username, groupId, "/permission/device-mgt/admin/groups/remove_devices")) {
|
||||
response.setStatus(Response.Status.FORBIDDEN.getStatusCode());
|
||||
return false;
|
||||
public Response removeSharing(@QueryParam("userName") String userName, @PathParam("groupId") int groupId,
|
||||
@PathParam("roleName") String roleName) {
|
||||
if (!checkAuthorize(getCurrentUserName(), groupId, "/permission/device-mgt/admin/groups/share")) {
|
||||
return Response.status(Response.Status.FORBIDDEN).build();
|
||||
}
|
||||
|
||||
try {
|
||||
boolean isRemoved = APIUtil.getGroupManagementProviderService().removeGroupSharingRole(
|
||||
groupId, roleName);
|
||||
if (isRemoved) {
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} else {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
} catch (GroupManagementException e) {
|
||||
log.error(e.getMessage(), e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/groups/{groupId}/share/roles")
|
||||
@Produces("application/json")
|
||||
public Response getRoles(@PathParam("groupId") int groupId, @QueryParam("userName") String userName) {
|
||||
try {
|
||||
List<String> roles;
|
||||
if (userName != null && !userName.isEmpty()) {
|
||||
roles = APIUtil.getGroupManagementProviderService().getRoles(userName,
|
||||
groupId);
|
||||
} else {
|
||||
roles = APIUtil.getGroupManagementProviderService().getRoles(groupId);
|
||||
}
|
||||
String[] rolesArray = new String[roles.size()];
|
||||
roles.toArray(rolesArray);
|
||||
return Response.status(Response.Status.OK).entity(rolesArray).build();
|
||||
} catch (GroupManagementException e) {
|
||||
log.error(e.getMessage(), e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/groups/{groupId}/users")
|
||||
@Produces("application/json")
|
||||
public Response getUsers(@PathParam("groupId") int groupId) {
|
||||
try {
|
||||
List<GroupUser> users = APIUtil.getGroupManagementProviderService().getUsers(
|
||||
groupId);
|
||||
GroupUser[] usersArray = new GroupUser[users.size()];
|
||||
users.toArray(usersArray);
|
||||
return Response.status(Response.Status.OK).entity(usersArray).build();
|
||||
} catch (GroupManagementException e) {
|
||||
log.error(e.getMessage(), e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/groups/{groupId}/devices/all")
|
||||
@Produces("application/json")
|
||||
public Response getDevices(@PathParam("groupId") int groupId) {
|
||||
try {
|
||||
List<Device> devices = APIUtil.getGroupManagementProviderService().getDevices(
|
||||
groupId);
|
||||
Device[] deviceArray = new Device[devices.size()];
|
||||
devices.toArray(deviceArray);
|
||||
return Response.status(Response.Status.OK).entity(deviceArray).build();
|
||||
} catch (GroupManagementException e) {
|
||||
log.error(e.getMessage(), e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/groups/{groupId}/devices/count")
|
||||
@Produces("application/json")
|
||||
public Response getDeviceCount(@PathParam("groupId") int groupId) {
|
||||
try {
|
||||
int count = APIUtil.getGroupManagementProviderService().getDeviceCount(groupId);
|
||||
return Response.status(Response.Status.OK).entity(count).build();
|
||||
} catch (GroupManagementException e) {
|
||||
log.error(e.getMessage(), e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@PUT
|
||||
@Path("/groups/{groupId}/devices/{deviceType}/{deviceId}")
|
||||
@Produces("application/json")
|
||||
public Response addDevice(@PathParam("groupId") int groupId, @PathParam("deviceId") String deviceId,
|
||||
@PathParam("deviceType") String deviceType,
|
||||
@FormParam("userName") String userName) {
|
||||
if (!checkAuthorize(getCurrentUserName(), groupId,
|
||||
"/permission/device-mgt/admin/groups/add_devices")) {
|
||||
return Response.status(Response.Status.FORBIDDEN).build();
|
||||
}
|
||||
boolean isRemoved = false;
|
||||
try {
|
||||
DeviceIdentifier deviceIdentifier = new DeviceIdentifier(deviceId, deviceType);
|
||||
response.setStatus(Response.Status.OK.getStatusCode());
|
||||
isRemoved = this.getServiceProvider().removeDevice(deviceIdentifier, groupId);
|
||||
boolean isAdded = APIUtil.getGroupManagementProviderService().addDevice(
|
||||
deviceIdentifier, groupId);
|
||||
if (isAdded) {
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} else {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
} catch (GroupManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
log.error(e.getErrorMessage(), e);
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
log.error(e.getMessage(), e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
return isRemoved;
|
||||
}
|
||||
|
||||
@Path("/group/id/{groupId}/user/{username}/permissions")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@DELETE
|
||||
@Path("/groups/{groupId}/devices/{deviceType}/{deviceId}")
|
||||
@Produces("application/json")
|
||||
public String[] getPermissions(@PathParam("username") String username,
|
||||
public Response removeDevice(@PathParam("groupId") int groupId, @PathParam("deviceId") String deviceId,
|
||||
@PathParam("deviceType") String deviceType) {
|
||||
if (!checkAuthorize(getCurrentUserName(), groupId,
|
||||
"/permission/device-mgt/admin/groups/remove_devices")) {
|
||||
return Response.status(Response.Status.FORBIDDEN).build();
|
||||
}
|
||||
try {
|
||||
DeviceIdentifier deviceIdentifier = new DeviceIdentifier(deviceId, deviceType);
|
||||
boolean isRemoved = APIUtil.getGroupManagementProviderService().removeDevice(
|
||||
deviceIdentifier, groupId);
|
||||
if (isRemoved) {
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} else {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
} catch (GroupManagementException e) {
|
||||
log.error(e.getMessage(), e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/groups/{groupId}/users/{userName}/permissions")
|
||||
@Produces("application/json")
|
||||
public Response getPermissions(@PathParam("userName") String userName,
|
||||
@PathParam("groupId") int groupId) {
|
||||
String[] permissions = null;
|
||||
try {
|
||||
response.setStatus(Response.Status.OK.getStatusCode());
|
||||
permissions = this.getServiceProvider().getPermissions(username, groupId);
|
||||
String[] permissions = APIUtil.getGroupManagementProviderService()
|
||||
.getPermissions(userName, groupId);
|
||||
return Response.status(Response.Status.OK).entity(permissions).build();
|
||||
} catch (GroupManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
log.error(e.getErrorMessage(), e);
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
log.error(e.getMessage(), e);
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
return permissions;
|
||||
}
|
||||
|
||||
@Path("/group/id/{groupId}/user/{username}/authorized")
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Path("/groups/{groupId}/users/{userName}/authorized")
|
||||
@Produces("application/json")
|
||||
public boolean isAuthorized(@PathParam("username") String username,
|
||||
@PathParam("groupId") int groupId,
|
||||
@QueryParam("permission") String permission) {
|
||||
boolean isAuthorized = false;
|
||||
try {
|
||||
response.setStatus(Response.Status.OK.getStatusCode());
|
||||
isAuthorized = this.getServiceProvider().isAuthorized(username, groupId, permission);
|
||||
} catch (GroupManagementException e) {
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
log.error(e.getErrorMessage(), e);
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
public Response isAuthorized(@PathParam("userName") String userName, @PathParam("groupId") int groupId,
|
||||
@QueryParam("permission") String permission) {
|
||||
boolean isAuthorized = checkAuthorize(userName, groupId, permission);
|
||||
if (isAuthorized) {
|
||||
return Response.status(Response.Status.OK).build();
|
||||
} else {
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
return isAuthorized;
|
||||
}
|
||||
|
||||
}
|
||||
private boolean checkAuthorize(String userName, int groupId, String permission) {
|
||||
try {
|
||||
return APIUtil.getGroupManagementProviderService().isAuthorized(userName, groupId, permission);
|
||||
} catch (GroupManagementException e) {
|
||||
log.error(e.getMessage(), e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private String getCurrentUserName() {
|
||||
return PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername();
|
||||
}
|
||||
|
||||
}
|
||||
@ -24,6 +24,7 @@ import org.wso2.carbon.context.CarbonContext;
|
||||
import org.wso2.carbon.context.PrivilegedCarbonContext;
|
||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
||||
import org.wso2.carbon.device.mgt.iot.util.APIUtil;
|
||||
import org.wso2.carbon.policy.mgt.common.Policy;
|
||||
import org.wso2.carbon.policy.mgt.common.PolicyAdministratorPoint;
|
||||
import org.wso2.carbon.policy.mgt.common.PolicyManagementException;
|
||||
@ -40,190 +41,108 @@ import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.Response;
|
||||
import java.util.List;
|
||||
|
||||
@WebService
|
||||
public class PolicyManagementService {
|
||||
|
||||
private static Log log = LogFactory.getLog(PolicyManagementService.class);
|
||||
private static final Log log = LogFactory.getLog(PolicyManagementService.class);
|
||||
|
||||
@Context //injected response proxy supporting multiple thread
|
||||
private HttpServletResponse response;
|
||||
|
||||
private PrivilegedCarbonContext ctx;
|
||||
|
||||
private PolicyManagerService getPolicyServiceProvider() throws DeviceManagementException {
|
||||
String tenantDomain = CarbonContext.getThreadLocalCarbonContext().getTenantDomain();
|
||||
PrivilegedCarbonContext.startTenantFlow();
|
||||
ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
|
||||
ctx.setTenantDomain(tenantDomain, true);
|
||||
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Getting thread local carbon context for tenant domain: " + tenantDomain);
|
||||
}
|
||||
|
||||
PolicyManagerService policyManagerService = (PolicyManagerService) ctx.getOSGiService(
|
||||
PolicyManagerService.class, null);
|
||||
|
||||
if (policyManagerService == null) {
|
||||
String msg = "Policy Management service not initialized";
|
||||
log.error(msg);
|
||||
throw new DeviceManagementException(msg);
|
||||
}
|
||||
|
||||
return policyManagerService;
|
||||
}
|
||||
|
||||
private void endTenantFlow() {
|
||||
PrivilegedCarbonContext.endTenantFlow();
|
||||
ctx = null;
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Tenant flow ended");
|
||||
}
|
||||
@POST
|
||||
@Path("/policies/inactive")
|
||||
@Produces("application/json")
|
||||
public Response addInactivePolicy(@FormParam("policy") Policy policy) {
|
||||
return addPolicy(policy);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/inactive-policy")
|
||||
@Path("/policies/active")
|
||||
@Produces("application/json")
|
||||
public boolean addPolicy(Policy policy) {
|
||||
|
||||
try {
|
||||
PolicyManagerService policyManagerService = getPolicyServiceProvider();
|
||||
PolicyAdministratorPoint pap = policyManagerService.getPAP();
|
||||
pap.addPolicy(policy);
|
||||
response.setStatus(Response.Status.CREATED.getStatusCode());
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Policy has been added successfully.");
|
||||
}
|
||||
return true;
|
||||
} catch (PolicyManagementException e) {
|
||||
String error = "Policy Management related exception.";
|
||||
log.error(error, e);
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return false;
|
||||
} catch (DeviceManagementException e) {
|
||||
String error = "Error occurred while invoking Policy Management Service.";
|
||||
log.error(error, e);
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return false;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
}
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/active-policy")
|
||||
@Produces("application/json")
|
||||
public boolean addActivePolicy(Policy policy) {
|
||||
|
||||
public Response addActivePolicy(@FormParam("policy") Policy policy) {
|
||||
policy.setActive(true);
|
||||
return addPolicy(policy);
|
||||
}
|
||||
|
||||
private Response addPolicy(Policy policy) {
|
||||
try {
|
||||
PolicyManagerService policyManagerService = getPolicyServiceProvider();
|
||||
PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();
|
||||
PolicyAdministratorPoint pap = policyManagerService.getPAP();
|
||||
pap.addPolicy(policy);
|
||||
response.setStatus(Response.Status.CREATED.getStatusCode());
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Policy has been added successfully.");
|
||||
}
|
||||
return true;
|
||||
} catch (PolicyManagementException e) {
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} catch (PolicyManagementException e) {
|
||||
String error = "Policy Management related exception.";
|
||||
log.error(error, e);
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return false;
|
||||
} catch (DeviceManagementException e) {
|
||||
String error = "Error occurred while invoking Policy Management Service.";
|
||||
log.error(error, e);
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return false;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/policies")
|
||||
@Produces("application/json")
|
||||
public Policy[] getAllPolicies() {
|
||||
public Response getAllPolicies() {
|
||||
|
||||
try {
|
||||
PolicyManagerService policyManagerService = getPolicyServiceProvider();
|
||||
PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();
|
||||
PolicyAdministratorPoint policyAdministratorPoint = policyManagerService.getPAP();
|
||||
List<Policy> policies = policyAdministratorPoint.getPolicies();
|
||||
return policyAdministratorPoint.getPolicies().toArray(new Policy[policies.size()]);
|
||||
} catch (PolicyManagementException e) {
|
||||
Policy[] policyArr = policyAdministratorPoint.getPolicies().toArray(new Policy[policies.size()]);
|
||||
return Response.status(Response.Status.OK).entity(policyArr).build();
|
||||
} catch (PolicyManagementException e) {
|
||||
String error = "Policy Management related exception";
|
||||
log.error(error, e);
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return null;
|
||||
} catch (DeviceManagementException e) {
|
||||
String error = "Error occurred while invoking Policy Management Service.";
|
||||
log.error(error, e);
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return null;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/policies/{policyId}")
|
||||
@Produces("application/json")
|
||||
@Path("/{id}")
|
||||
public Policy getPolicy(@PathParam("id") int policyId) {
|
||||
public Response getPolicy(@PathParam("policyId") int policyId) {
|
||||
|
||||
try {
|
||||
PolicyManagerService policyManagerService = getPolicyServiceProvider();
|
||||
PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();
|
||||
PolicyAdministratorPoint policyAdministratorPoint = policyManagerService.getPAP();
|
||||
Policy policy = policyAdministratorPoint.getPolicy(policyId);
|
||||
if (policy != null) {
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Sending policy for ID " + policyId);
|
||||
}
|
||||
return policy;
|
||||
return Response.status(Response.Status.OK).entity(policy).build();
|
||||
} else {
|
||||
log.error("Policy for ID " + policyId + " not found.");
|
||||
response.setStatus(Response.Status.NOT_FOUND.getStatusCode());
|
||||
return null;
|
||||
return Response.status(Response.Status.NOT_FOUND).build();
|
||||
}
|
||||
} catch (PolicyManagementException e) {
|
||||
} catch (PolicyManagementException e) {
|
||||
String error = "Policy Management related exception";
|
||||
log.error(error, e);
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return null;
|
||||
} catch (DeviceManagementException e) {
|
||||
String error = "Error occurred while invoking Policy Management Service.";
|
||||
log.error(error, e);
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return null;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/count")
|
||||
public int getPolicyCount() {
|
||||
@Path("/policies/inactive/count")
|
||||
@Produces("application/json")
|
||||
public Response getPolicyCount() {
|
||||
|
||||
try {
|
||||
PolicyManagerService policyManagerService = getPolicyServiceProvider();
|
||||
PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();
|
||||
PolicyAdministratorPoint policyAdministratorPoint = policyManagerService.getPAP();
|
||||
return policyAdministratorPoint.getPolicyCount();
|
||||
} catch (PolicyManagementException e) {
|
||||
int policyCount = policyAdministratorPoint.getPolicyCount();
|
||||
return Response.status(Response.Status.OK).entity(policyCount).build();
|
||||
} catch (PolicyManagementException e) {
|
||||
String error = "Policy Management related exception";
|
||||
log.error(error, e);
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return -1;
|
||||
} catch (DeviceManagementException e) {
|
||||
String error = "Error occurred while invoking Policy Management Service.";
|
||||
log.error(error, e);
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return -1;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
}
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@PUT
|
||||
@Path("/{id}")
|
||||
@Path("/policies/{policyId}")
|
||||
@Produces("application/json")
|
||||
public boolean updatePolicy(Policy policy, @PathParam("id") int policyId) {
|
||||
public Response updatePolicy(@FormParam("policy") Policy policy, @PathParam("policyId") int policyId) {
|
||||
|
||||
try {
|
||||
PolicyManagerService policyManagerService = getPolicyServiceProvider();
|
||||
PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();
|
||||
PolicyAdministratorPoint pap = policyManagerService.getPAP();
|
||||
Policy previousPolicy = pap.getPolicy(policyId);
|
||||
policy.setProfile(pap.getProfile(previousPolicy.getProfileId()));
|
||||
@ -232,64 +151,49 @@ public class PolicyManagementService {
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Policy with ID " + policyId + " has been updated successfully.");
|
||||
}
|
||||
return true;
|
||||
} catch (PolicyManagementException e) {
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} catch (PolicyManagementException e) {
|
||||
String error = "Policy Management related exception";
|
||||
log.error(error, e);
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return false;
|
||||
} catch (DeviceManagementException e) {
|
||||
String error = "Error occurred while invoking Policy Management Service.";
|
||||
log.error(error, e);
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return false;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@PUT
|
||||
@Path("/priorities")
|
||||
@Path("/policies/priorities")
|
||||
@Consumes("application/json")
|
||||
@Produces("application/json")
|
||||
public boolean updatePolicyPriorities(List<Policy> priorityUpdatedPolicies) {
|
||||
public Response updatePolicyPriorities(@FormParam("policies") List<Policy> priorityUpdatedPolicies) {
|
||||
|
||||
try {
|
||||
PolicyManagerService policyManagerService = getPolicyServiceProvider();
|
||||
PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();
|
||||
PolicyAdministratorPoint pap = policyManagerService.getPAP();
|
||||
boolean policiesUpdated = pap.updatePolicyPriorities(priorityUpdatedPolicies);
|
||||
if (policiesUpdated) {
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Policy Priorities successfully updated.");
|
||||
}
|
||||
return true;
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} else {
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Policy priorities did not update. Bad Request.");
|
||||
}
|
||||
response.setStatus(Response.Status.BAD_REQUEST.getStatusCode());
|
||||
return false;
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
} catch (PolicyManagementException e) {
|
||||
} catch (PolicyManagementException e) {
|
||||
String error = "Exception in updating policy priorities.";
|
||||
log.error(error, e);
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return false;
|
||||
} catch (DeviceManagementException e) {
|
||||
String error = "Error occurred while invoking Policy Management Service.";
|
||||
log.error(error, e);
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return false;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@DELETE
|
||||
@Path("/{id}")
|
||||
@Path("/policies/{policyId}")
|
||||
@Produces("application/json")
|
||||
public boolean deletePolicy(@PathParam("id") int policyId) {
|
||||
public Response deletePolicy(@PathParam("policyId") int policyId) {
|
||||
|
||||
try {
|
||||
PolicyManagerService policyManagerService = getPolicyServiceProvider();
|
||||
PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();
|
||||
PolicyAdministratorPoint pap = policyManagerService.getPAP();
|
||||
Policy policy = pap.getPolicy(policyId);
|
||||
boolean policyDeleted = pap.deletePolicy(policy);
|
||||
@ -297,211 +201,156 @@ public class PolicyManagementService {
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Policy by id:" + policyId + " has been successfully deleted.");
|
||||
}
|
||||
return true;
|
||||
return Response.status(Response.Status.OK).build();
|
||||
} else {
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Policy by id:" + policyId + " does not exist.");
|
||||
}
|
||||
response.setStatus(Response.Status.NOT_FOUND.getStatusCode());
|
||||
return false;
|
||||
return Response.status(Response.Status.NOT_FOUND).build();
|
||||
}
|
||||
} catch (PolicyManagementException e) {
|
||||
} catch (PolicyManagementException e) {
|
||||
String error = "Exception in deleting policy by id:" + policyId;
|
||||
log.error(error, e);
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return false;
|
||||
} catch (DeviceManagementException e) {
|
||||
String error = "Error occurred while invoking Policy Management Service.";
|
||||
log.error(error, e);
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return false;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@PUT
|
||||
@Path("/policies/{policyId}/activate")
|
||||
@Produces("application/json")
|
||||
@Path("/activate/{id}")
|
||||
public boolean activatePolicy(@PathParam("id") int policyId) {
|
||||
public Response activatePolicy(@PathParam("policyId") int policyId) {
|
||||
|
||||
try {
|
||||
PolicyManagerService policyManagerService = getPolicyServiceProvider();
|
||||
PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();
|
||||
PolicyAdministratorPoint pap = policyManagerService.getPAP();
|
||||
pap.activatePolicy(policyId);
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Policy by id:" + policyId + " has been successfully activated.");
|
||||
}
|
||||
return true;
|
||||
} catch (PolicyManagementException e) {
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} catch (PolicyManagementException e) {
|
||||
String error = "Exception in activating policy by id:" + policyId;
|
||||
log.error(error, e);
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return false;
|
||||
} catch (DeviceManagementException e) {
|
||||
String error = "Error occurred while invoking Policy Management Service.";
|
||||
log.error(error, e);
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return false;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@PUT
|
||||
@Path("/policies/{policyId}/inactivate")
|
||||
@Produces("application/json")
|
||||
@Path("/inactivate/{id}")
|
||||
public boolean inactivatePolicy(@PathParam("id") int policyId) {
|
||||
public Response inactivatePolicy(@PathParam("policyId") int policyId) {
|
||||
|
||||
try {
|
||||
PolicyManagerService policyManagerService = getPolicyServiceProvider();
|
||||
PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();
|
||||
PolicyAdministratorPoint pap = policyManagerService.getPAP();
|
||||
pap.inactivatePolicy(policyId);
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Policy by id:" + policyId + " has been successfully inactivated.");
|
||||
}
|
||||
return true;
|
||||
} catch (PolicyManagementException e) {
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} catch (PolicyManagementException e) {
|
||||
String error = "Exception in inactivating policy by id:" + policyId;
|
||||
log.error(error, e);
|
||||
return false;
|
||||
} catch (DeviceManagementException e) {
|
||||
String error = "Error occurred while invoking Policy Management Service.";
|
||||
log.error(error, e);
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return false;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@PUT
|
||||
@Path("/policies/publish-changes")
|
||||
@Produces("application/json")
|
||||
@Path("/apply-changes")
|
||||
public boolean applyChanges() {
|
||||
public Response publishChanges() {
|
||||
|
||||
try {
|
||||
PolicyManagerService policyManagerService = getPolicyServiceProvider();
|
||||
PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();
|
||||
PolicyAdministratorPoint pap = policyManagerService.getPAP();
|
||||
pap.publishChanges();
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Changes have been successfully updated.");
|
||||
}
|
||||
return true;
|
||||
} catch (PolicyManagementException e) {
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} catch (PolicyManagementException e) {
|
||||
String error = "Exception in applying changes.";
|
||||
log.error(error, e);
|
||||
return false;
|
||||
} catch (DeviceManagementException e) {
|
||||
String error = "Error occurred while invoking Policy Management Service.";
|
||||
log.error(error, e);
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return false;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/start-task/{milliseconds}")
|
||||
public boolean startTaskService(@PathParam("milliseconds") int monitoringFrequency) {
|
||||
@PUT
|
||||
@Path("/policies/monitor-task/start")
|
||||
@Produces("application/json")
|
||||
public Response startTaskService(@FormParam("milliseconds") int monitoringFrequency) {
|
||||
|
||||
try {
|
||||
PolicyManagerService policyManagerService = getPolicyServiceProvider();
|
||||
PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();
|
||||
TaskScheduleService taskScheduleService = policyManagerService.getTaskScheduleService();
|
||||
taskScheduleService.startTask(monitoringFrequency);
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Policy monitoring service started successfully.");
|
||||
}
|
||||
return true;
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} catch (PolicyMonitoringTaskException e) {
|
||||
String error = "Policy Management related exception.";
|
||||
log.error(error, e);
|
||||
return false;
|
||||
} catch (DeviceManagementException e) {
|
||||
String error = "Error occurred while invoking Policy Management Service.";
|
||||
log.error(error, e);
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return false;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/update-task/{milliseconds}")
|
||||
public boolean updateTaskService(@PathParam("milliseconds") int monitoringFrequency) {
|
||||
@PUT
|
||||
@Path("/policies/monitor-task/update")
|
||||
@Produces("application/json")
|
||||
public Response updateTaskService(@FormParam("milliseconds") int monitoringFrequency) {
|
||||
|
||||
try {
|
||||
PolicyManagerService policyManagerService = getPolicyServiceProvider();
|
||||
PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();;
|
||||
TaskScheduleService taskScheduleService = policyManagerService.getTaskScheduleService();
|
||||
taskScheduleService.updateTask(monitoringFrequency);
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Policy monitoring service updated successfully.");
|
||||
}
|
||||
return true;
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} catch (PolicyMonitoringTaskException e) {
|
||||
String error = "Policy Management related exception.";
|
||||
log.error(error, e);
|
||||
return false;
|
||||
} catch (DeviceManagementException e) {
|
||||
String error = "Error occurred while invoking Policy Management Service.";
|
||||
log.error(error, e);
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return false;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/stop-task")
|
||||
public boolean stopTaskService() {
|
||||
|
||||
@PUT
|
||||
@Path("/policies/monitor-task/stop")
|
||||
@Produces("application/json")
|
||||
public Response stopTaskService() {
|
||||
try {
|
||||
PolicyManagerService policyManagerService = getPolicyServiceProvider();
|
||||
PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();
|
||||
TaskScheduleService taskScheduleService = policyManagerService.getTaskScheduleService();
|
||||
taskScheduleService.stopTask();
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Policy monitoring service stopped successfully.");
|
||||
}
|
||||
return true;
|
||||
return Response.status(Response.Status.NO_CONTENT).build();
|
||||
} catch (PolicyMonitoringTaskException e) {
|
||||
String error = "Policy Management related exception.";
|
||||
log.error(error, e);
|
||||
return false;
|
||||
} catch (DeviceManagementException e) {
|
||||
String error = "Error occurred while invoking Policy Management Service.";
|
||||
log.error(error, e);
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return false;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
}
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/{type}/{id}")
|
||||
public ComplianceData getComplianceDataOfDevice(@PathParam("id") String deviceId,
|
||||
@PathParam("type") String deviceType) {
|
||||
@Path("/policies/compliance/{deviceType}/{deviceId}")
|
||||
@Produces("application/json")
|
||||
public Response getComplianceDataOfDevice(@PathParam("deviceId") String deviceId,
|
||||
@PathParam("deviceType") String deviceType) {
|
||||
try {
|
||||
PolicyManagerService policyManagerService = getPolicyServiceProvider();
|
||||
PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();
|
||||
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
|
||||
deviceIdentifier.setType(deviceType);
|
||||
deviceIdentifier.setId(deviceId);
|
||||
return policyManagerService.getDeviceCompliance(deviceIdentifier);
|
||||
} catch (PolicyComplianceException e) {
|
||||
ComplianceData complianceData = policyManagerService.getDeviceCompliance(deviceIdentifier);
|
||||
return Response.status(Response.Status.OK).entity(complianceData).build();
|
||||
} catch (PolicyComplianceException e) {
|
||||
String error = "Error occurred while getting the compliance data.";
|
||||
log.error(error, e);
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return null;
|
||||
} catch (DeviceManagementException e) {
|
||||
String error = "Error occurred while invoking Policy Management Service.";
|
||||
log.error(error, e);
|
||||
response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
|
||||
return null;
|
||||
} finally {
|
||||
this.endTenantFlow();
|
||||
}
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,69 @@
|
||||
/*
|
||||
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.wso2.carbon.device.mgt.iot.util;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.wso2.carbon.context.PrivilegedCarbonContext;
|
||||
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
|
||||
import org.wso2.carbon.device.mgt.core.service.GroupManagementProviderService;
|
||||
import org.wso2.carbon.policy.mgt.core.PolicyManagerService;
|
||||
|
||||
/**
|
||||
* This class provides utility functions used by REST-API.
|
||||
*/
|
||||
public class APIUtil {
|
||||
private static Log log = LogFactory.getLog(APIUtil.class);
|
||||
|
||||
public static GroupManagementProviderService getGroupManagementProviderService() {
|
||||
PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
|
||||
GroupManagementProviderService groupManagementProviderService =
|
||||
(GroupManagementProviderService) ctx.getOSGiService(GroupManagementProviderService.class, null);
|
||||
if (groupManagementProviderService == null) {
|
||||
String msg = "Group Management service has not initialized.";
|
||||
log.error(msg);
|
||||
throw new IllegalStateException(msg);
|
||||
}
|
||||
return groupManagementProviderService;
|
||||
}
|
||||
|
||||
public static DeviceManagementProviderService getDeviceManagementService() {
|
||||
PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
|
||||
DeviceManagementProviderService deviceManagementProviderService =
|
||||
(DeviceManagementProviderService) ctx.getOSGiService(DeviceManagementProviderService.class, null);
|
||||
if (deviceManagementProviderService == null) {
|
||||
String msg = "Device Management service has not initialized.";
|
||||
log.error(msg);
|
||||
throw new IllegalStateException(msg);
|
||||
}
|
||||
return deviceManagementProviderService;
|
||||
}
|
||||
|
||||
public static PolicyManagerService getPolicyManagerService() {
|
||||
PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
|
||||
PolicyManagerService policyManagerService =
|
||||
(PolicyManagerService) ctx.getOSGiService(PolicyManagerService.class, null);
|
||||
if (policyManagerService == null) {
|
||||
String msg = "Policy management service has not initialized.";
|
||||
log.error(msg);
|
||||
throw new IllegalStateException(msg);
|
||||
}
|
||||
return policyManagerService;
|
||||
}
|
||||
}
|
||||
@ -83,8 +83,8 @@
|
||||
org.wso2.carbon.utils.*;version="${carbon.kernel.version.range}",
|
||||
org.wso2.carbon.device.mgt.common.*,
|
||||
org.eclipse.paho.client.mqttv3.*;version="${eclipse.paho.version}",
|
||||
javax.ws.rs.core,
|
||||
javax.xml
|
||||
javax.xml;resolution:=optional,
|
||||
javax.net.ssl;resolution:=optional
|
||||
</Import-Package>
|
||||
<Export-Package>
|
||||
!org.wso2.carbon.device.mgt.iot.internal,
|
||||
|
||||
@ -33,10 +33,9 @@ import org.apache.http.util.EntityUtils;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
import org.wso2.carbon.device.mgt.iot.exception.DeviceControllerException;
|
||||
import org.wso2.carbon.device.mgt.iot.exception.IoTException;
|
||||
import org.wso2.carbon.device.mgt.iot.util.IoTUtil;
|
||||
|
||||
import javax.ws.rs.core.MediaType;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.MalformedURLException;
|
||||
@ -54,6 +53,7 @@ public class XmppServerClient {
|
||||
@SuppressWarnings("unused")
|
||||
private static final String APPLICATION_JSON_MT = "application/json";
|
||||
private static final String DEVICEMGT_CONFIG_FILE = "devicemgt-config.xml";
|
||||
private static final String APPLICATION_JSON = "application/json";
|
||||
private String xmppEndpoint;
|
||||
private String xmppUsername;
|
||||
private String xmppPassword;
|
||||
@ -100,7 +100,7 @@ public class XmppServerClient {
|
||||
|
||||
StringEntity requestEntity;
|
||||
try {
|
||||
requestEntity = new StringEntity(jsonRequest, MediaType.APPLICATION_JSON,
|
||||
requestEntity = new StringEntity(jsonRequest, APPLICATION_JSON,
|
||||
StandardCharsets.UTF_8.toString());
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
return false;
|
||||
@ -140,7 +140,7 @@ public class XmppServerClient {
|
||||
EntityUtils.consume(httpResponse.getEntity());
|
||||
return true;
|
||||
}
|
||||
} catch (IOException | IoTException e) {
|
||||
} catch (IOException e) {
|
||||
String errorMsg = "Error occured whilst trying a 'POST' at : " + xmppUsersAPIEndpoint;
|
||||
log.error(errorMsg);
|
||||
throw new DeviceControllerException(errorMsg, e);
|
||||
@ -199,7 +199,7 @@ public class XmppServerClient {
|
||||
return false;
|
||||
}
|
||||
|
||||
} catch (IOException | IoTException e) {
|
||||
} catch (IOException e) {
|
||||
String errorMsg = "Error occured whilst trying a 'GET' at : " + xmppCheckUserAPIEndpoint;
|
||||
log.error(errorMsg);
|
||||
throw new DeviceControllerException(errorMsg, e);
|
||||
@ -250,7 +250,7 @@ public class XmppServerClient {
|
||||
|
||||
HttpGet httpGet = new HttpGet(xmppSessionsAPIEndpoint);
|
||||
httpGet.addHeader(HttpHeaders.AUTHORIZATION, authorizationHeader);
|
||||
httpGet.addHeader(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON);
|
||||
httpGet.addHeader(HttpHeaders.ACCEPT, APPLICATION_JSON);
|
||||
|
||||
try {
|
||||
HttpResponse httpResponse = httpClient.execute(httpGet);
|
||||
@ -266,7 +266,7 @@ public class XmppServerClient {
|
||||
xmppSessions = new JSONObject(response).getJSONArray("session");
|
||||
return xmppSessions;
|
||||
|
||||
} catch (IOException | IoTException e) {
|
||||
} catch (IOException e) {
|
||||
String errorMsg = "Error occured whilst trying a 'GET' at : " + xmppSessionsAPIEndpoint;
|
||||
log.error(errorMsg);
|
||||
throw new DeviceControllerException(errorMsg, e);
|
||||
|
||||
@ -1,54 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.wso2.carbon.device.mgt.iot.internal;
|
||||
|
||||
import org.wso2.carbon.base.ServerConfiguration;
|
||||
import org.wso2.carbon.databridge.core.DataBridgeReceiverService;
|
||||
|
||||
public class IoTCommonDataHolder {
|
||||
|
||||
private static IoTCommonDataHolder thisInstance = new IoTCommonDataHolder();
|
||||
String trustStoreLocaiton;
|
||||
String trustStorePassword;
|
||||
private IoTCommonDataHolder() {
|
||||
|
||||
}
|
||||
|
||||
public void initialize(){
|
||||
setTrustStore();
|
||||
}
|
||||
|
||||
public static IoTCommonDataHolder getInstance() {
|
||||
return thisInstance;
|
||||
}
|
||||
|
||||
private void setTrustStore(){
|
||||
this.trustStoreLocaiton = ServerConfiguration.getInstance().getFirstProperty("Security.TrustStore.Location");
|
||||
this.trustStorePassword = ServerConfiguration.getInstance().getFirstProperty("Security.TrustStore.Password");
|
||||
}
|
||||
|
||||
public String getTrustStoreLocation(){
|
||||
return trustStoreLocaiton;
|
||||
}
|
||||
|
||||
public String getTrustStorePassword(){
|
||||
return trustStorePassword;
|
||||
}
|
||||
|
||||
}
|
||||
@ -54,7 +54,6 @@ public class IotDeviceManagementServiceComponent {
|
||||
/* Initialize the data source configuration */
|
||||
DeviceManagementConfigurationManager.getInstance().initConfig();
|
||||
bundleContext.registerService(ServerStartupObserver.class.getName(), new IoTServerStartupListener(), null);
|
||||
IoTCommonDataHolder.getInstance().initialize();
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Iot Device Management Service Component has been successfully activated");
|
||||
}
|
||||
|
||||
@ -22,18 +22,13 @@ import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.apache.http.HttpResponse;
|
||||
import org.apache.http.client.HttpClient;
|
||||
import org.apache.http.conn.scheme.PlainSocketFactory;
|
||||
import org.apache.http.conn.scheme.Scheme;
|
||||
import org.apache.http.conn.scheme.SchemeRegistry;
|
||||
import org.apache.http.conn.ssl.SSLSocketFactory;
|
||||
import org.apache.http.impl.client.DefaultHttpClient;
|
||||
import org.apache.http.impl.conn.PoolingClientConnectionManager;
|
||||
import org.apache.http.params.BasicHttpParams;
|
||||
import org.apache.http.params.HttpParams;
|
||||
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
|
||||
import org.apache.http.conn.ssl.SSLContextBuilder;
|
||||
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
|
||||
import org.apache.http.impl.client.HttpClients;
|
||||
import org.apache.http.util.EntityUtils;
|
||||
import org.wso2.carbon.base.ServerConfiguration;
|
||||
import org.wso2.carbon.device.mgt.iot.exception.IoTException;
|
||||
import org.wso2.carbon.device.mgt.iot.internal.IoTCommonDataHolder;
|
||||
import org.wso2.carbon.utils.NetworkUtils;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
@ -43,49 +38,33 @@ import java.net.SocketException;
|
||||
import java.security.KeyManagementException;
|
||||
import java.security.KeyStoreException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.UnrecoverableKeyException;
|
||||
|
||||
public class IoTUtil {
|
||||
|
||||
public static final String HOST_NAME = "HostName";
|
||||
private static final Log log = LogFactory.getLog(IoTUtil.class);
|
||||
private static final String HTTPS_PROTOCOL = "https";
|
||||
|
||||
/**
|
||||
* Return a http client instance
|
||||
*
|
||||
* @param port - server port
|
||||
* @param protocol- service endpoint protocol http/https
|
||||
* @return
|
||||
*/
|
||||
public static HttpClient getHttpClient(int port, String protocol)
|
||||
throws UnrecoverableKeyException, NoSuchAlgorithmException, KeyStoreException,
|
||||
KeyManagementException {
|
||||
SchemeRegistry registry = new SchemeRegistry();
|
||||
|
||||
if ("https".equals(protocol)) {
|
||||
System.setProperty("javax.net.ssl.trustStrore", IoTCommonDataHolder.getInstance().getTrustStoreLocation());
|
||||
System.setProperty("javax.net.ssl.trustStorePassword",
|
||||
IoTCommonDataHolder.getInstance().getTrustStorePassword());
|
||||
|
||||
if (port >= 0) {
|
||||
registry.register(new Scheme("https", port, SSLSocketFactory.getSocketFactory()));
|
||||
} else {
|
||||
registry.register(new Scheme("https", 443, SSLSocketFactory.getSocketFactory()));
|
||||
}
|
||||
} else if ("http".equals(protocol)) {
|
||||
if (port >= 0) {
|
||||
registry.register(new Scheme("http", port, PlainSocketFactory.getSocketFactory()));
|
||||
} else {
|
||||
registry.register(new Scheme("http", 80, PlainSocketFactory.getSocketFactory()));
|
||||
}
|
||||
throws IOException, KeyStoreException, NoSuchAlgorithmException, KeyManagementException {
|
||||
HttpClient httpclient;
|
||||
if (HTTPS_PROTOCOL.equals(protocol)) {
|
||||
SSLContextBuilder builder = new SSLContextBuilder();
|
||||
builder.loadTrustMaterial(null, new TrustSelfSignedStrategy());
|
||||
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(builder.build());
|
||||
httpclient = HttpClients.custom().setSSLSocketFactory(sslsf).build();
|
||||
} else {
|
||||
httpclient = HttpClients.createDefault();
|
||||
}
|
||||
HttpParams params = new BasicHttpParams();
|
||||
PoolingClientConnectionManager tcm = new PoolingClientConnectionManager(registry);
|
||||
HttpClient client = new DefaultHttpClient(tcm, params);
|
||||
return client;
|
||||
return httpclient;
|
||||
}
|
||||
|
||||
public static String getResponseString(HttpResponse httpResponse) throws IoTException {
|
||||
public static String getResponseString(HttpResponse httpResponse) throws IOException {
|
||||
BufferedReader br = null;
|
||||
try {
|
||||
br = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent()));
|
||||
@ -95,9 +74,6 @@ public class IoTUtil {
|
||||
response += readLine;
|
||||
}
|
||||
return response;
|
||||
} catch (IOException e) {
|
||||
throw new IoTException("Error while reading the response from the remote. "
|
||||
+ e.getMessage(), e);
|
||||
} finally {
|
||||
EntityUtils.consumeQuietly(httpResponse.getEntity());
|
||||
if (br != null) {
|
||||
|
||||
@ -21,16 +21,15 @@
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>device-mgt-iot-raspberrypi</artifactId>
|
||||
<artifactId>raspberrypi-plugin</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
|
||||
<version>2.0.4-SNAPSHOT</version>
|
||||
<version>2.1.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl</artifactId>
|
||||
<version>2.0.4-SNAPSHOT</version>
|
||||
<artifactId>org.wso2.carbon.device.mgt.iot.raspberrypi.api</artifactId>
|
||||
<packaging>war</packaging>
|
||||
<name>WSO2 Carbon - IoT Server RaspberryPi API</name>
|
||||
<description>WSO2 Carbon - RaspberryPi Service API Implementation</description>
|
||||
@ -93,7 +92,7 @@
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
|
||||
<artifactId>org.wso2.carbon.device.mgt.iot.raspberrypi.plugin.impl</artifactId>
|
||||
<artifactId>org.wso2.carbon.device.mgt.iot.raspberrypi.plugin</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
@ -120,7 +119,6 @@
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>org.wso2.carbon.device.mgt.analytics.data.publisher</artifactId>
|
||||
<version>1.1.0-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@ -135,7 +133,7 @@
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>org.wso2.carbon.device.mgt.jwt.client.extension</artifactId>
|
||||
<artifactId>org.wso2.carbon.identity.jwt.client.extension</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@ -37,10 +37,10 @@ import org.wso2.carbon.device.mgt.iot.raspberrypi.plugin.constants.RaspberrypiCo
|
||||
import org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl.util.APIUtil;
|
||||
import org.wso2.carbon.device.mgt.iot.util.ZipArchive;
|
||||
import org.wso2.carbon.device.mgt.iot.util.ZipUtil;
|
||||
import org.wso2.carbon.device.mgt.jwt.client.extension.JWTClient;
|
||||
import org.wso2.carbon.device.mgt.jwt.client.extension.JWTClientManager;
|
||||
import org.wso2.carbon.device.mgt.jwt.client.extension.dto.AccessTokenInfo;
|
||||
import org.wso2.carbon.device.mgt.jwt.client.extension.exception.JWTClientException;
|
||||
import org.wso2.carbon.identity.jwt.client.extension.JWTClient;
|
||||
import org.wso2.carbon.identity.jwt.client.extension.JWTClientManager;
|
||||
import org.wso2.carbon.identity.jwt.client.extension.dto.AccessTokenInfo;
|
||||
import org.wso2.carbon.identity.jwt.client.extension.exception.JWTClientException;
|
||||
import org.wso2.carbon.user.api.UserStoreException;
|
||||
|
||||
import javax.ws.rs.core.Response;
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user