From 7c7768101f32f90cb095ed25d06aa435c60a5f25 Mon Sep 17 00:00:00 2001 From: harshanL Date: Wed, 10 Dec 2014 14:53:15 +0530 Subject: [PATCH 1/4] Modified Android enrollment APIs and changed isRegistered to isEnrolled --- .../mgt/common/spi/DeviceManagerService.java | 2 +- .../carbon/device/mgt/core/DeviceManager.java | 4 +- .../core/service/DeviceManagementService.java | 4 +- .../android/AndroidDeviceManagerService.java | 2 +- .../impl/ios/IOSDeviceManagerService.java | 2 +- .../windows/WindowsDeviceManagerService.java | 2 +- .../main/java/cdm/api/android/Enrollment.java | 102 ++++++++++++++---- 7 files changed, 88 insertions(+), 30 deletions(-) diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/spi/DeviceManagerService.java b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/spi/DeviceManagerService.java index 93469177a..319acca3c 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/spi/DeviceManagerService.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/spi/DeviceManagerService.java @@ -65,7 +65,7 @@ public interface DeviceManagerService { * @return Status of enrollment * @throws DeviceManagementException If some unusual behaviour is observed while enrolling a device */ - boolean isRegistered(DeviceIdentifier deviceId) throws DeviceManagementException; + boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException; /** * Method to retrieve the status of a particular device. diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/DeviceManager.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/DeviceManager.java index 1d541a7da..a7c6ef815 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/DeviceManager.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/DeviceManager.java @@ -84,10 +84,10 @@ public class DeviceManager implements DeviceManagerService { } @Override - public boolean isRegistered(DeviceIdentifier deviceId) throws DeviceManagementException { + public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException { DeviceManagerService dms = this.getPluginRepository().getDeviceManagementProvider(deviceId.getType()); - return dms.isRegistered(deviceId); + return dms.isEnrolled(deviceId); } @Override diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementService.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementService.java index 5a30f8cd7..d7508fb78 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementService.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementService.java @@ -46,8 +46,8 @@ public class DeviceManagementService implements DeviceManagerService { } @Override - public boolean isRegistered(DeviceIdentifier deviceId) throws DeviceManagementException { - return DeviceManagementDataHolder.getInstance().getDeviceManager().isRegistered(deviceId); + public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException { + return DeviceManagementDataHolder.getInstance().getDeviceManager().isEnrolled(deviceId); } @Override diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/android/AndroidDeviceManagerService.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/android/AndroidDeviceManagerService.java index 59f44f928..648fd2c92 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/android/AndroidDeviceManagerService.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/android/AndroidDeviceManagerService.java @@ -50,7 +50,7 @@ public class AndroidDeviceManagerService implements DeviceManagerService { } @Override - public boolean isRegistered(DeviceIdentifier deviceId) throws DeviceManagementException { + public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException { return true; } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/ios/IOSDeviceManagerService.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/ios/IOSDeviceManagerService.java index 4baee059d..a458b5952 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/ios/IOSDeviceManagerService.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/ios/IOSDeviceManagerService.java @@ -50,7 +50,7 @@ public class IOSDeviceManagerService implements DeviceManagerService { } @Override - public boolean isRegistered(DeviceIdentifier deviceId) throws DeviceManagementException { + public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException { return true; } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/windows/WindowsDeviceManagerService.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/windows/WindowsDeviceManagerService.java index b144670b5..1cc845faa 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/windows/WindowsDeviceManagerService.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/windows/WindowsDeviceManagerService.java @@ -50,7 +50,7 @@ public class WindowsDeviceManagerService implements DeviceManagerService { } @Override - public boolean isRegistered(DeviceIdentifier deviceId) throws DeviceManagementException { + public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException { return true; } diff --git a/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/Enrollment.java b/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/Enrollment.java index a78f8051c..50c3488fe 100644 --- a/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/Enrollment.java +++ b/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/Enrollment.java @@ -36,66 +36,124 @@ import javax.ws.rs.core.Response; public class Enrollment { private static Log log = LogFactory.getLog(Enrollment.class); + @POST public Response enrollDevice() { - JsonObject result = new JsonObject(); - result.addProperty("senderId","jwwfowrjwqporqwrpqworpq"); + boolean result = false; + int status = 0; + String msg = ""; CarbonContext context = CarbonContext.getThreadLocalCarbonContext(); - DeviceManagementService dmService = (DeviceManagementService) context.getOSGiService(DeviceManagementService.class,null); - Device device = AndroidAPIUtil.convertToDeviceObject(result); + DeviceManagementService dmService = (DeviceManagementService) context + .getOSGiService(DeviceManagementService.class, null); + Device device = AndroidAPIUtil.convertToDeviceObject(null); try { - dmService.enrollDevice(device); + result = dmService.enrollDevice(device); + status = 1; } catch (DeviceManagementException e) { - String msg = "Error occurred while enrolling the device"; + msg = "Error occurred while enrolling the device"; log.error(msg, e); + status = -1; + } + switch (status) { + case 1: + if (result) { + return Response.status(201).entity("Registration Successful").build(); + } + break; + case -1: + return Response.status(500).entity(msg).build(); } - return Response.status(201).entity("Registration Successful").build(); + return Response.status(400).entity("Registration Failed").build(); } @GET @Path("{id}") public Response isEnrolled(@PathParam("id") String id) { - boolean status = false; + boolean result = false; + int status = 0; + String msg = ""; CarbonContext context = CarbonContext.getThreadLocalCarbonContext(); - DeviceManagementService dmService = (DeviceManagementService) context.getOSGiService(DeviceManagementService.class,null); + DeviceManagementService dmService = (DeviceManagementService) context + .getOSGiService(DeviceManagementService.class, null); try { DeviceIdentifier deviceIdentifier = AndroidAPIUtil.convertToDeviceIdentifierObject(id); - status = dmService.isRegistered(deviceIdentifier); + result = dmService.isEnrolled(deviceIdentifier); + status = 1; } catch (DeviceManagementException e) { - String msg = "Error occurred while checking enrollment of the device"; + msg = "Error occurred while checking enrollment of the device"; log.error(msg, e); + status = -1; + } + switch (status) { + case 1: + if (result) { + return Response.status(200).entity(result).build(); + } + break; + case -1: + return Response.status(500).entity(msg).build(); } - return Response.status(200).entity(status).build(); + return Response.status(404).entity(result).build(); } @PUT @Consumes("application/json") @Path("{id}") public Response modifyEnrollment(@PathParam("id") String id) { - boolean status = false; + boolean result = false; + int status = 0; + String msg = ""; CarbonContext context = CarbonContext.getThreadLocalCarbonContext(); - DeviceManagementService dmService = (DeviceManagementService) context.getOSGiService(DeviceManagementService.class,null); + DeviceManagementService dmService = (DeviceManagementService) context + .getOSGiService(DeviceManagementService.class, null); + Device device = AndroidAPIUtil.convertToDeviceObject(null); try { - status = dmService.isRegistered(null); + result = dmService.modifyEnrollment(device); + status = 1; } catch (DeviceManagementException e) { - String msg = "Error occurred while modifying enrollment of the device"; + msg = "Error occurred while modifying enrollment of the device"; log.error(msg, e); + status = -1; } - return Response.status(201).entity(status).build(); + switch (status) { + case 1: + if (result) { + return Response.status(200).entity("Device information modified").build(); + } + break; + case -1: + return Response.status(500).entity(msg).build(); + } + return Response.status(400).entity("Update enrollment failed").build(); } @DELETE @Path("{id}") public Response disenrollDevice(@PathParam("id") String id) { - boolean status = false; + boolean result = false; + int status = 0; + String msg = ""; CarbonContext context = CarbonContext.getThreadLocalCarbonContext(); - DeviceManagementService dmService = (DeviceManagementService) context.getOSGiService(DeviceManagementService.class,null); + DeviceManagementService dmService = (DeviceManagementService) context + .getOSGiService(DeviceManagementService.class, null); try { - status = dmService.isRegistered(null); + DeviceIdentifier deviceIdentifier = AndroidAPIUtil.convertToDeviceIdentifierObject(id); + result = dmService.disenrollDevice(deviceIdentifier); + status = 1; } catch (DeviceManagementException e) { - String msg = "Error occurred while disenrolling the device"; + msg = "Error occurred while disenrolling the device"; log.error(msg, e); + status = -1; + } + switch (status) { + case 1: + if (result) { + return Response.status(200).entity(result).build(); + } + break; + case -1: + return Response.status(500).entity(msg).build(); } - return Response.status(201).entity(status).build(); + return Response.status(404).entity("Device not found").build(); } } From 65433dda57763e93a63febe4293edc0595f39dbd Mon Sep 17 00:00:00 2001 From: Geeth Munasinghe Date: Wed, 10 Dec 2014 15:08:31 +0530 Subject: [PATCH 2/4] Fixing pom issues --- product/modules/agents/android/jax-rs/pom.xml | 4 ++-- product/modules/distribution/src/assembly/bin.xml | 4 ++-- product/pom.xml | 1 + 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/product/modules/agents/android/jax-rs/pom.xml b/product/modules/agents/android/jax-rs/pom.xml index 306d7c24d..427747049 100644 --- a/product/modules/agents/android/jax-rs/pom.xml +++ b/product/modules/agents/android/jax-rs/pom.xml @@ -20,7 +20,7 @@ org.wso2.cdmserver - wso2cdmserver-parent + wso2cdmserver-product 2.0.0-SNAPSHOT ../../../../pom.xml @@ -47,7 +47,7 @@ maven-war-plugin 2.2 - WEB-INF/lib/*.jar + WEB-INF/lib/*cxf*.jar ${project.artifactId} diff --git a/product/modules/distribution/src/assembly/bin.xml b/product/modules/distribution/src/assembly/bin.xml index 2b569559c..eee52239e 100644 --- a/product/modules/distribution/src/assembly/bin.xml +++ b/product/modules/distribution/src/assembly/bin.xml @@ -323,12 +323,12 @@ wso2cdm-${project.version}/repository/conf/multitenancy/ true - + src/repository/conf/application-authenticators.xml wso2cdm-${project.version}/repository/conf/security/ diff --git a/product/pom.xml b/product/pom.xml index ecd5db07f..c9fbafc3d 100644 --- a/product/pom.xml +++ b/product/pom.xml @@ -34,6 +34,7 @@ WSO2 Connected Device Manager (CDM) - Parent + modules/p2-profile-gen modules/distribution modules/integration From 963e426e04ba13837e9d438b9f5ab6b01b8c5062 Mon Sep 17 00:00:00 2001 From: harshanL Date: Wed, 10 Dec 2014 15:31:44 +0530 Subject: [PATCH 3/4] added super-tenant flow --- .../main/java/cdm/api/android/Enrollment.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/Enrollment.java b/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/Enrollment.java index 50c3488fe..866bae0cf 100644 --- a/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/Enrollment.java +++ b/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/Enrollment.java @@ -21,10 +21,12 @@ import com.google.gson.JsonObject; 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.core.service.DeviceManagementService; +import org.wso2.carbon.utils.multitenancy.MultitenantConstants; import javax.ws.rs.*; import javax.ws.rs.core.Response; @@ -42,9 +44,18 @@ public class Enrollment { boolean result = false; int status = 0; String msg = ""; - CarbonContext context = CarbonContext.getThreadLocalCarbonContext(); - DeviceManagementService dmService = (DeviceManagementService) context - .getOSGiService(DeviceManagementService.class, null); + DeviceManagementService dmService; + try { + PrivilegedCarbonContext.startTenantFlow(); + PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext(); + ctx.setTenantDomain(MultitenantConstants.SUPER_TENANT_DOMAIN_NAME); + ctx.setTenantId(MultitenantConstants.SUPER_TENANT_ID); + + dmService = (DeviceManagementService) ctx + .getOSGiService(DeviceManagementService.class, null); + } finally { + PrivilegedCarbonContext.endTenantFlow(); + } Device device = AndroidAPIUtil.convertToDeviceObject(null); try { result = dmService.enrollDevice(device); From efdaf6e7a55b1d2cb8159864033b2fc203e9f90a Mon Sep 17 00:00:00 2001 From: harshanL Date: Wed, 10 Dec 2014 16:41:16 +0530 Subject: [PATCH 4/4] Added parent pom info --- product/modules/agents/android/jax-rs/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product/modules/agents/android/jax-rs/pom.xml b/product/modules/agents/android/jax-rs/pom.xml index 5ddb0774b..744ae057a 100644 --- a/product/modules/agents/android/jax-rs/pom.xml +++ b/product/modules/agents/android/jax-rs/pom.xml @@ -22,7 +22,7 @@ org.wso2.cdmserver wso2cdmserver-product 2.0.0-SNAPSHOT - ../../../../../pom.xml + ../../../../pom.xml 4.0.0