Merge pull request #8 from milanperera/master

Implemented policy compliance checking function for Android plugin
merge-requests/1/head
Dilshan Edirisuriya 9 years ago
commit 5e9ac514ef

@ -76,7 +76,8 @@
org.wso2.carbon.registry.core.service,
org.wso2.carbon.registry.core.session,
org.wso2.carbon.registry.api,
org.wso2.carbon.device.mgt.extensions.license.mgt.registry
org.wso2.carbon.device.mgt.extensions.license.mgt.registry,
com.google.gson.*
</Import-Package>
<Export-Package>
!org.wso2.carbon.device.mgt.mobile.internal,
@ -165,5 +166,9 @@
<artifactId>h2-database-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
</dependencies>
</project>

@ -19,6 +19,10 @@
package org.wso2.carbon.device.mgt.mobile.impl.android;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.device.mgt.common.Device;
@ -35,36 +39,49 @@ import java.util.List;
public class AndroidPolicyMonitoringService implements PolicyMonitoringService {
private static Log log = LogFactory.getLog(AndroidPolicyMonitoringService.class);
private static Log log = LogFactory.getLog(AndroidPolicyMonitoringService.class);
@Override
public void notifyDevices(List<Device> list) throws PolicyComplianceException {
@Override
public void notifyDevices(List<Device> list) throws PolicyComplianceException {
}
}
@Override
public ComplianceData checkPolicyCompliance(DeviceIdentifier deviceIdentifier, Policy policy, Object o) throws PolicyComplianceException {
ComplianceData complianceData = new ComplianceData();
if (log.isDebugEnabled()) {
log.debug("Checking policy compliance status of device '" + deviceIdentifier.getId() + "'");
}
if (o == null || policy == null) {
return null;
}
List<ComplianceFeature> complianceFeatures = (List<ComplianceFeature>) o;
complianceData.setComplianceFeatures(complianceFeatures);
@Override
public ComplianceData checkPolicyCompliance(DeviceIdentifier deviceIdentifier, Policy policy,
Object compliancePayload) throws PolicyComplianceException {
if (log.isDebugEnabled()) {
log.debug("Checking policy compliance status of device '" + deviceIdentifier.getId() + "'");
}
if (compliancePayload == null || policy == null) {
return null;
}
ComplianceData complianceData = new ComplianceData();
List<ComplianceFeature> complianceFeatures = new ArrayList<ComplianceFeature>();
for (ComplianceFeature cf : complianceFeatures) {
if(!cf.isCompliance()){
complianceData.setStatus(false);
break;
}
}
return complianceData;
}
// Parsing json string to get compliance features.
JsonElement jsonElement = new JsonParser().parse((String) compliancePayload);
JsonArray jsonArray = jsonElement.getAsJsonArray();
Gson gson = new Gson();
ComplianceFeature complianceFeature;
@Override
public String getType() {
return DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID;
}
for (int i = 0; i < jsonArray.size(); i++) {
complianceFeature = gson.fromJson(jsonArray.get(i), ComplianceFeature.class);
complianceFeatures.add(complianceFeature);
}
complianceData.setComplianceFeatures(complianceFeatures);
for (ComplianceFeature cf : complianceFeatures) {
if (!cf.isCompliance()) {
complianceData.setStatus(false);
break;
}
}
return complianceData;
}
@Override
public String getType() {
return DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID;
}
}

@ -58,6 +58,10 @@
<artifactId>org.wso2.carbon.device.mgt.extensions.feature</artifactId>
<type>zip</type>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
</dependencies>
<build>

@ -511,6 +511,11 @@
<artifactId>axis2</artifactId>
<version>${axis2.orbit.version}</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${google.gson.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
@ -577,6 +582,7 @@
<bouncycastle.version>1.49</bouncycastle.version>
<apache.wss4j.version>2.0.0</apache.wss4j.version>
<codehaus.plexus.version>3.0.21</codehaus.plexus.version>
<google.gson.version>2.2.4</google.gson.version>
</properties>

Loading…
Cancel
Save