diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml index 2dc4ed6d83..35c9b3526f 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml @@ -78,6 +78,7 @@ org.apache.commons.logging, javax.servlet, javax.xml.*, + javax.xml.parsers;version="${javax.xml.parsers.import.pkg.version}";resolution:=optional, org.apache.commons.lang, @@ -89,4 +90,4 @@ - \ No newline at end of file + diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/src/main/java/org/wso2/carbon/apimgt/application/extension/APIManagementProviderServiceImpl.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/src/main/java/org/wso2/carbon/apimgt/application/extension/APIManagementProviderServiceImpl.java index 304cab7df0..51be025f2b 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/src/main/java/org/wso2/carbon/apimgt/application/extension/APIManagementProviderServiceImpl.java +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/src/main/java/org/wso2/carbon/apimgt/application/extension/APIManagementProviderServiceImpl.java @@ -159,14 +159,8 @@ public class APIManagementProviderServiceImpl implements APIManagementProviderSe } } - String[] allowedDomains = new String[1]; - if (isAllowedAllDomains) { - allowedDomains[0] = ApiApplicationConstants.ALLOWED_DOMAINS; - } else { - allowedDomains[0] = APIManagerUtil.getTenantDomain(); - } apiConsumer.mapExistingOAuthClient(jsonString, username, clientId, applicationName, - ApiApplicationConstants.DEFAULT_TOKEN_TYPE, allowedDomains); + ApiApplicationConstants.DEFAULT_TOKEN_TYPE); if (tags != null && tags.length > 0) { createApplicationAndSubscribeToAPIs(applicationName, tags, username); } @@ -327,11 +321,7 @@ public class APIManagementProviderServiceImpl implements APIManagementProviderSe if (consumer != null) { synchronized (consumer) { if (consumer.getSubscriber(subscriberName) == null) { - Subscriber subscriber = new Subscriber(subscriberName); - subscriber.setSubscribedDate(new Date()); - subscriber.setEmail(subscriberEmail); - subscriber.setTenantId(tenantId); - consumer.addSubscriber(subscriber, groupId); + consumer.addSubscriber(subscriberName, groupId); if (log.isDebugEnabled()) { log.debug("Successfully created subscriber with name : " + subscriberName + " with groupID : " + groupId); @@ -365,7 +355,7 @@ public class APIManagementProviderServiceImpl implements APIManagementProviderSe Subscriber subscriber = apiConsumer.getSubscriber(username); Set userVisibleAPIs = null; for (String tag : tags) { - Set tagAPIs = apiConsumer.getAPIsWithTag(tag); + Set tagAPIs = apiConsumer.getAPIsWithTag(tag, APIManagerUtil.getTenantDomain()); if (userVisibleAPIs == null) { userVisibleAPIs = tagAPIs; } else { diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/pom.xml index 116a75a615..1b3a0ebb4b 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/pom.xml +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/pom.xml @@ -143,6 +143,7 @@ org.apache.commons.logging, javax.servlet, javax.xml.*, + javax.xml.parsers;version="${javax.xml.parsers.import.pkg.version}";resolution:=optional, com.google.gson.*, org.apache.catalina, org.apache.catalina.core, @@ -168,4 +169,4 @@ - \ No newline at end of file + diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIConfig.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIConfig.java index c71a0cba5b..02200f1c76 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIConfig.java +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIConfig.java @@ -56,6 +56,7 @@ public class APIConfig { private String contextTemplate; private String endpoint; private String version; + private String policy; private String transports; private APIProvider provider; private boolean isSecured; @@ -73,6 +74,16 @@ public class APIConfig { } } + @XmlElement(name = "Policy", required = true) + public String getPolicy() { + return policy; + } + + @SuppressWarnings("unused") + public void setPolicy(String policy) { + this.policy = policy; + } + @XmlElement(name = "ContextTemplate", required = true) public String getContextTemplate() { return contextTemplate; diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherUtil.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherUtil.java index 289037e58e..3e46d4182f 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherUtil.java +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherUtil.java @@ -47,6 +47,7 @@ public class APIPublisherUtil { private static final String PARAM_MANAGED_API_ENDPOINT = "managed-api-endpoint"; private static final String PARAM_MANAGED_API_OWNER = "managed-api-owner"; private static final String PARAM_MANAGED_API_TRANSPORTS = "managed-api-transports"; + private static final String PARAM_MANAGED_API_POLICY = "managed-api-policy"; private static final String PARAM_MANAGED_API_IS_SECURED = "managed-api-isSecured"; private static final String PARAM_SHARED_WITH_ALL_TENANTS = "isSharedWithAllTenants"; private static final String PARAM_PROVIDER_TENANT_DOMAIN = "providerTenantDomain"; @@ -80,6 +81,7 @@ public class APIPublisherUtil { api.setEndpointSecured(true); api.setStatus(APIStatus.CREATED); api.setTransports(config.getTransports()); + api.setApiLevelPolicy(config.getPolicy()); api.setContextTemplate(config.getContextTemplate()); Set environments = new HashSet<>(); environments.add(API_PUBLISH_ENVIRONMENT); @@ -309,6 +311,16 @@ public class APIPublisherUtil { } apiConfig.setUriTemplates(uriTemplates); + String policy = servletContext.getInitParameter(PARAM_MANAGED_API_POLICY); + if (policy == null || policy.isEmpty()) { + if (log.isDebugEnabled()) { + log.debug("'managed-api-policy' attribute is not configured. Therefore using the default, " + + "which is 'null'"); + } + policy = null; + } + apiConfig.setPolicy(policy); + return apiConfig; } diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.api/pom.xml b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.api/pom.xml index 915209c7d1..769015dd8d 100644 --- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.api/pom.xml +++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.api/pom.xml @@ -161,6 +161,10 @@ io.swagger swagger-core + + com.fasterxml.jackson.core + jackson-annotations + org.slf4j slf4j-api @@ -170,6 +174,16 @@ io.swagger swagger-jaxrs + + + com.fasterxml.jackson.module + jackson-module-jaxb-annotations + + + org.slf4j + slf4j-api + + javax.servlet diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/pom.xml b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/pom.xml index 6126bfd3d4..4c655c8511 100644 --- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/pom.xml +++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/pom.xml @@ -166,6 +166,12 @@ io.swagger swagger-jaxrs + + + org.slf4j + slf4j-api + + javax.servlet diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/pom.xml b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/pom.xml index cf3adbdcaf..c1ee115741 100644 --- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/pom.xml +++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/pom.xml @@ -57,13 +57,14 @@ org.apache.commons.logging, javax.security.auth.x500, javax.xml.*, + javax.xml.parsers;version="${javax.xml.parsers.import.pkg.version}";resolution:=optional, org.apache.commons.codec.binary, org.bouncycastle.asn1, org.bouncycastle.asn1.x500, org.bouncycastle.asn1.x509, org.bouncycastle.asn1.pkcs, - org.bouncycastle.cert, - org.bouncycastle.cert.jcajce, + org.bouncycastle.cert; version="${bcprov.wso2.version.range}", + org.bouncycastle.cert.jcajce; version="${bcprov.wso2.version.range}", org.bouncycastle.cms, org.bouncycastle.jce.provider, org.bouncycastle.operator, @@ -89,6 +90,7 @@ org.wso2.carbon.device.mgt.common.*, io.swagger.annotations.*;resolution:=optional, org.wso2.carbon.device.mgt.core.*, + org.wso2.carbon.registry.indexing.*, @@ -134,19 +136,15 @@ org.wso2.carbon.logging - org.bouncycastle.wso2 + org.wso2.orbit.org.bouncycastle bcprov-jdk15on - org.bouncycastle.wso2 + org.wso2.orbit.org.bouncycastle bcpkix-jdk15on - org.bouncycastle.wso2 - bcmail-jdk15on - - - com.google.code.jscep.wso2 + org.wso2.orbit.com.google.code.jscep jscep @@ -179,7 +177,15 @@ org.wso2.carbon.user.core 4.4.3 + + org.wso2.carbon.registry + org.wso2.carbon.registry.indexing + + + org.slf4j + slf4j-simple + test + - diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/src/main/java/org/wso2/carbon/certificate/mgt/core/internal/CertificateManagementServiceComponent.java b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/src/main/java/org/wso2/carbon/certificate/mgt/core/internal/CertificateManagementServiceComponent.java index 82582e1b40..80198c9560 100644 --- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/src/main/java/org/wso2/carbon/certificate/mgt/core/internal/CertificateManagementServiceComponent.java +++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/src/main/java/org/wso2/carbon/certificate/mgt/core/internal/CertificateManagementServiceComponent.java @@ -27,6 +27,8 @@ import org.wso2.carbon.certificate.mgt.core.config.CertificateManagementConfig; import org.wso2.carbon.certificate.mgt.core.config.datasource.DataSourceConfig; import org.wso2.carbon.certificate.mgt.core.dao.CertificateManagementDAOFactory; import org.wso2.carbon.certificate.mgt.core.exception.CertificateManagementException; +import org.wso2.carbon.certificate.mgt.core.scep.SCEPManager; +import org.wso2.carbon.certificate.mgt.core.scep.SCEPManagerImpl; import org.wso2.carbon.certificate.mgt.core.service.CertificateManagementService; import org.wso2.carbon.certificate.mgt.core.service.CertificateManagementServiceImpl; import org.wso2.carbon.certificate.mgt.core.util.CertificateManagementConstants; @@ -72,6 +74,9 @@ public class CertificateManagementServiceComponent { bundleContext.registerService(CertificateManagementService.class.getName(), CertificateManagementServiceImpl.getInstance(), null); + bundleContext.registerService(SCEPManager.class.getName(), + new SCEPManagerImpl(), null); + if (log.isDebugEnabled()) { log.debug("Certificate management core bundle has been successfully initialized"); } diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/src/main/java/org/wso2/carbon/certificate/mgt/core/internal/SCEPManagerServiceComponent.java b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/src/main/java/org/wso2/carbon/certificate/mgt/core/internal/SCEPManagerServiceComponent.java deleted file mode 100644 index 2f9fc8e22c..0000000000 --- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/src/main/java/org/wso2/carbon/certificate/mgt/core/internal/SCEPManagerServiceComponent.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.wso2.carbon.certificate.mgt.core.internal; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.osgi.framework.BundleContext; -import org.osgi.service.component.ComponentContext; -import org.wso2.carbon.certificate.mgt.core.scep.SCEPManager; -import org.wso2.carbon.certificate.mgt.core.scep.SCEPManagerImpl; -import org.wso2.carbon.device.mgt.core.app.mgt.ApplicationManagementProviderService; - -/** - * @scr.component name="org.wso2.carbon.certificate.mgt.core.scep" immediate="true" - * @scr.reference name="app.mgt.service" - * interface="org.wso2.carbon.device.mgt.core.app.mgt.ApplicationManagementProviderService" - * cardinality="1..1" - * policy="dynamic" - * bind="setApplicationManagementProviderService" - * unbind="unsetApplicationManagementProviderService" - */ -public class SCEPManagerServiceComponent { - - private static final Log log = LogFactory.getLog(SCEPManagerServiceComponent.class); - - protected void activate(ComponentContext componentContext) { - - try { - if (log.isDebugEnabled()) { - log.debug("Initializing SCEP core bundle"); - } - - BundleContext bundleContext = componentContext.getBundleContext(); - bundleContext.registerService(SCEPManager.class.getName(), - new SCEPManagerImpl(), null); - - if (log.isDebugEnabled()) { - log.debug("SCEP core bundle has been successfully initialized"); - } - } catch (Throwable e) { - String msg = "Error occurred while initializing SCEP core bundle"; - log.error(msg, e); - } - } - - protected void deactivate(ComponentContext ctx) { - if (log.isDebugEnabled()) { - log.debug("Deactivating SCEP core bundle"); - } - } - - protected void unsetApplicationManagementProviderService(ApplicationManagementProviderService - applicationManagementProviderService) { - //do nothing - } - - protected void setApplicationManagementProviderService(ApplicationManagementProviderService - applicationManagementProviderService) { - //do nothing - } - -} diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/src/main/java/org/wso2/carbon/certificate/mgt/core/scep/SCEPManagerImpl.java b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/src/main/java/org/wso2/carbon/certificate/mgt/core/scep/SCEPManagerImpl.java index 63bd2d2f60..dfcc05626e 100644 --- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/src/main/java/org/wso2/carbon/certificate/mgt/core/scep/SCEPManagerImpl.java +++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/src/main/java/org/wso2/carbon/certificate/mgt/core/scep/SCEPManagerImpl.java @@ -19,12 +19,12 @@ package org.wso2.carbon.certificate.mgt.core.scep; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.wso2.carbon.certificate.mgt.core.internal.CertificateManagementDataHolder; 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.core.dao.DeviceDAO; -import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOException; -import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory; +import org.wso2.carbon.device.mgt.common.DeviceManagementException; +import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService; import org.wso2.carbon.user.api.UserStoreException; import org.wso2.carbon.user.core.service.RealmService; import org.wso2.carbon.utils.multitenancy.MultitenantConstants; @@ -33,19 +33,18 @@ import java.sql.SQLException; import java.util.HashMap; public class SCEPManagerImpl implements SCEPManager { - private DeviceDAO deviceDAO; private static final Log log = LogFactory.getLog(SCEPManagerImpl.class); + DeviceManagementProviderService dms; public SCEPManagerImpl() { - deviceDAO = DeviceManagementDAOFactory.getDeviceDAO(); + this.dms = CertificateManagementDataHolder.getInstance().getDeviceManagementService(); } @Override public TenantedDeviceWrapper getValidatedDevice(DeviceIdentifier deviceIdentifier) throws SCEPException { TenantedDeviceWrapper tenantedDeviceWrapper = new TenantedDeviceWrapper(); try { - DeviceManagementDAOFactory.openConnection(); - HashMap deviceHashMap = deviceDAO.getDevice(deviceIdentifier); + HashMap deviceHashMap = dms.getTenantedDevice(deviceIdentifier); Object[] keySet = deviceHashMap.keySet().toArray(); if (keySet == null || keySet.length == 0) { @@ -71,15 +70,12 @@ public class SCEPManagerImpl implements SCEPManager { String tenantDomain = realmService.getTenantManager().getDomain(tenantId); tenantedDeviceWrapper.setTenantDomain(tenantDomain); - } catch (SQLException e) { - throw new SCEPException("Error occurred while getting the datasource connection.", e); - } catch (DeviceManagementDAOException e) { - throw new SCEPException("Error occurred while reading the device dao.", e); } catch (UserStoreException e) { throw new SCEPException("Error occurred while getting the tenant domain.", e); + } catch (DeviceManagementException e) { + throw new SCEPException("Error occurred while getting device '" + deviceIdentifier + "'.", e); } finally { PrivilegedCarbonContext.endTenantFlow(); - DeviceManagementDAOFactory.closeConnection(); } return tenantedDeviceWrapper; } diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.gcm/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.gcm/pom.xml index 8af1096ba7..64496be804 100644 --- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.gcm/pom.xml +++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.gcm/pom.xml @@ -55,8 +55,8 @@ org.wso2.carbon.device.mgt.core - org.apache.ws.commons.axiom - axiom-api + org.apache.ws.commons.axiom.wso2 + axiom org.wso2.carbon diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt/pom.xml index 54f056436e..0d7f75bc16 100644 --- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt/pom.xml +++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt/pom.xml @@ -55,8 +55,8 @@ org.wso2.carbon.device.mgt.core - org.apache.ws.commons.axiom - axiom-api + org.apache.ws.commons.axiom.wso2 + axiom org.wso2.carbon @@ -139,6 +139,7 @@ org.wso2.carbon.context, org.wso2.carbon.device.mgt.common.operation.mgt, org.wso2.carbon.device.mgt.common.push.notification, + org.wso2.carbon.device.mgt.common, org.wso2.carbon.device.mgt.core.service, org.wso2.carbon.event.output.adapter.core, org.wso2.carbon.event.output.adapter.core.exception, diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt/src/main/java/org/wso2/carbon/device/mgt/extensions/push/notification/provider/mqtt/MQTTNotificationStrategy.java b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt/src/main/java/org/wso2/carbon/device/mgt/extensions/push/notification/provider/mqtt/MQTTNotificationStrategy.java index ee4105922d..29d623b349 100644 --- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt/src/main/java/org/wso2/carbon/device/mgt/extensions/push/notification/provider/mqtt/MQTTNotificationStrategy.java +++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt/src/main/java/org/wso2/carbon/device/mgt/extensions/push/notification/provider/mqtt/MQTTNotificationStrategy.java @@ -20,6 +20,7 @@ package org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.wso2.carbon.context.PrivilegedCarbonContext; import org.wso2.carbon.device.mgt.common.push.notification.NotificationContext; import org.wso2.carbon.device.mgt.common.push.notification.NotificationStrategy; import org.wso2.carbon.device.mgt.common.push.notification.PushNotificationConfig; @@ -32,6 +33,7 @@ import org.wso2.carbon.event.output.adapter.core.exception.OutputEventAdapterExc import java.util.HashMap; import java.util.Map; +import java.util.Properties; public class MQTTNotificationStrategy implements NotificationStrategy { @@ -75,7 +77,15 @@ public class MQTTNotificationStrategy implements NotificationStrategy { @Override public void execute(NotificationContext ctx) throws PushNotificationExecutionFailedException { Map dynamicProperties = new HashMap<>(); - dynamicProperties.put("topic", (String) ctx.getOperation().getProperties().get(MQTT_ADAPTER_TOPIC)); + Properties properties = ctx.getOperation().getProperties(); + if (properties != null && properties.get(MQTT_ADAPTER_TOPIC) != null) { + dynamicProperties.put("topic", (String) properties.get(MQTT_ADAPTER_TOPIC)); + } else { + String topic = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain(true) + "/" + + ctx.getDeviceId().getType() + "/" + ctx.getDeviceId().getId() + "/" + ctx.getOperation().getType(); + dynamicProperties.put("topic", topic); + } + MQTTDataHolder.getInstance().getOutputEventAdapterService().publish(mqttAdapterName, dynamicProperties, ctx.getOperation().getPayLoad()); } diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp/pom.xml index 5c756fb848..6f92797c92 100644 --- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp/pom.xml +++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp/pom.xml @@ -55,8 +55,8 @@ org.wso2.carbon.device.mgt.core - org.apache.ws.commons.axiom - axiom-api + org.apache.ws.commons.axiom.wso2 + axiom org.wso2.carbon diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml index 607d58f2af..ab37f25e99 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml @@ -82,6 +82,10 @@ org.wso2.carbon.registry org.wso2.carbon.registry.indexing + + org.wso2.carbon.registry + org.wso2.carbon.registry.common + org.json.wso2 json @@ -122,6 +126,7 @@ org.wso2.carbon.registry.indexing.*; version="${carbon.registry.imp.pkg.version.range}", org.json;version="${commons-json.version}", javax.xml.*, + javax.xml.parsers;version="${javax.xml.parsers.import.pkg.version}";resolution:=optional, org.w3c.dom, org.wso2.carbon.base @@ -131,4 +136,4 @@ - \ No newline at end of file + diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.api/pom.xml index 142eb0cc5f..a53c50bcaa 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/pom.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/pom.xml @@ -222,15 +222,37 @@ io.swagger swagger-core + + com.fasterxml.jackson.module + jackson-module-jaxb-annotations + org.slf4j slf4j-api + + com.fasterxml.jackson.core + jackson-core + io.swagger swagger-jaxrs + + + com.fasterxml.jackson.module + jackson-module-jaxb-annotations + + + org.slf4j + slf4j-api + + + com.fasterxml.jackson.core + jackson-core + + javax.servlet @@ -250,7 +272,6 @@ com.fasterxml.jackson.core jackson-annotations - provided org.hibernate diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.common/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.common/pom.xml index 61a6f541ed..e33265ac2b 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.common/pom.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.common/pom.xml @@ -49,8 +49,8 @@ javax.xml.bind.annotation, - com.fasterxml.jackson.annotation, - org.wso2.carbon.apimgt.api.model, + com.fasterxml.jackson.annotation;version="${jackson-annotations.version}", + org.wso2.carbon.apimgt.api.model.*;version="${carbon.api.mgt.version.range}", io.swagger.annotations.*;resolution:=optional diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.core/pom.xml index 5a00b996ed..1f98fef208 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/pom.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/pom.xml @@ -58,6 +58,7 @@ org.apache.commons.logging, javax.naming, javax.xml.*, + javax.xml.parsers;version="${javax.xml.parsers.import.pkg.version}";resolution:=optional, javax.servlet.*, org.xml.sax, javax.sql.*, @@ -142,6 +143,12 @@ org.wso2.carbon org.wso2.carbon.ndatasource.core + + + commons-lang + commons-lang + + com.h2database.wso2 @@ -185,17 +192,17 @@ axis2-transport-mail - org.apache.ws.commons.axiom - axiom-api + org.apache.ws.commons.axiom.wso2 + axiom - - org.apache.ws.commons.axiom + org.wso2.carbon.apimgt org.wso2.carbon.apimgt.api diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/app/mgt/ApplicationManagerFactory.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/app/mgt/ApplicationManagerFactory.java index f0a11ad25d..9fb7509826 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/app/mgt/ApplicationManagerFactory.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/app/mgt/ApplicationManagerFactory.java @@ -19,7 +19,6 @@ package org.wso2.carbon.device.mgt.core.app.mgt; import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManager; -import org.wso2.carbon.device.mgt.core.DeviceManagementPluginRepository; import org.wso2.carbon.device.mgt.core.app.mgt.config.AppManagementConfig; public class ApplicationManagerFactory { diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementServiceComponent.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementServiceComponent.java index a7827370ad..887f5d966e 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementServiceComponent.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementServiceComponent.java @@ -241,11 +241,6 @@ public class DeviceManagementServiceComponent { = new NotificationManagementServiceImpl(); bundleContext.registerService(NotificationManagementService.class.getName(), notificationManagementService, null); - /* Registering PermissionManager Service */ - PermissionManagerService permissionManagerService - = PermissionManagerServiceImpl.getInstance(); - bundleContext.registerService(PermissionManagerService.class.getName(), permissionManagerService, null); - /* Registering DeviceAccessAuthorization Service */ DeviceAccessAuthorizationService deviceAccessAuthorizationService = new DeviceAccessAuthorizationServiceImpl(); DeviceManagementDataHolder.getInstance().setDeviceAccessAuthorizationService(deviceAccessAuthorizationService); @@ -262,6 +257,10 @@ public class DeviceManagementServiceComponent { } catch (ApplicationManagementException e) { log.error("Application management service not registered.", e); } + + /* Registering PermissionManager Service */ + PermissionManagerService permissionManagerService = PermissionManagerServiceImpl.getInstance(); + bundleContext.registerService(PermissionManagerService.class.getName(), permissionManagerService, null); } private void setupDeviceManagementSchema(DataSourceConfig config) throws DeviceManagementException { diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/notification/mgt/dao/impl/AbstractNotificationDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/notification/mgt/dao/impl/AbstractNotificationDAOImpl.java index aa6ebe316a..bf80177509 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/notification/mgt/dao/impl/AbstractNotificationDAOImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/notification/mgt/dao/impl/AbstractNotificationDAOImpl.java @@ -18,12 +18,8 @@ package org.wso2.carbon.device.mgt.core.notification.mgt.dao.impl; -import org.wso2.carbon.device.mgt.common.PaginationRequest; -import org.wso2.carbon.device.mgt.common.PaginationResult; import org.wso2.carbon.device.mgt.common.notification.mgt.Notification; import org.wso2.carbon.device.mgt.common.notification.mgt.NotificationManagementException; -import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOException; -import org.wso2.carbon.device.mgt.core.dao.util.DeviceManagementDAOUtil; import org.wso2.carbon.device.mgt.core.notification.mgt.dao.NotificationDAO; import org.wso2.carbon.device.mgt.core.notification.mgt.dao.NotificationManagementDAOFactory; import org.wso2.carbon.device.mgt.core.notification.mgt.dao.util.NotificationDAOUtil; @@ -80,7 +76,7 @@ public abstract class AbstractNotificationDAOImpl implements NotificationDAO { conn = NotificationManagementDAOFactory.getConnection(); String sql = "SELECT NOTIFICATION_ID, OPERATION_ID, DESCRIPTION, STATUS FROM DM_NOTIFICATION WHERE " + - "TENANT_ID = ? AND NOTIFICATION_ID = ?"; + "TENANT_ID = ? AND NOTIFICATION_ID = ?"; stmt = conn.prepareStatement(sql); stmt.setInt(1, tenantId); stmt.setInt(2, notificationId); @@ -165,7 +161,7 @@ public abstract class AbstractNotificationDAOImpl implements NotificationDAO { rs = stmt.executeQuery(); notifications = new ArrayList<>(); while (rs.next()) { - notifications.add(NotificationDAOUtil.getNotification(rs)); + notifications.add(NotificationDAOUtil.getNotificationWithDeviceInfo(rs)); } } catch (SQLException e) { throw new NotificationManagementException( @@ -238,7 +234,7 @@ public abstract class AbstractNotificationDAOImpl implements NotificationDAO { rs = stmt.executeQuery(); notifications = new ArrayList<>(); while (rs.next()) { - notifications.add(NotificationDAOUtil.getNotification(rs)); + notifications.add(NotificationDAOUtil.getNotificationWithDeviceInfo(rs)); } } catch (SQLException e) { throw new NotificationManagementException( diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/notification/mgt/dao/util/NotificationDAOUtil.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/notification/mgt/dao/util/NotificationDAOUtil.java index abfddf13ee..68519f0742 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/notification/mgt/dao/util/NotificationDAOUtil.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/notification/mgt/dao/util/NotificationDAOUtil.java @@ -126,6 +126,15 @@ public class NotificationDAOUtil { } public static Notification getNotification(ResultSet rs) throws SQLException { + Notification notification = new Notification(); + notification.setNotificationId(rs.getInt("NOTIFICATION_ID")); + notification.setOperationId(rs.getInt("OPERATION_ID")); + notification.setDescription(rs.getString("DESCRIPTION")); + notification.setStatus(rs.getString("STATUS")); + return notification; + } + + public static Notification getNotificationWithDeviceInfo(ResultSet rs) throws SQLException { Notification notification = new Notification(); notification.setNotificationId(rs.getInt("NOTIFICATION_ID")); notification.setOperationId(rs.getInt("OPERATION_ID")); diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/operation/mgt/OperationManagerImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/operation/mgt/OperationManagerImpl.java index bd2b6d6f52..6944d60511 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/operation/mgt/OperationManagerImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/operation/mgt/OperationManagerImpl.java @@ -120,8 +120,8 @@ public class OperationManagerImpl implements OperationManager { boolean isNotRepeated = false; boolean hasExistingTaskOperation; int enrolmentId; - if (operationDto.getControl() == - org.wso2.carbon.device.mgt.core.dto.operation.mgt.Operation.Control.NO_REPEAT) { + if (org.wso2.carbon.device.mgt.core.dto.operation.mgt.Operation.Control.NO_REPEAT == operationDto. + getControl()) { isNotRepeated = true; } @@ -357,12 +357,25 @@ public class OperationManagerImpl implements OperationManager { deviceId.getId() + "'"); } - int enrolmentId = this.getEnrolmentByStatus(deviceId, EnrolmentInfo.Status.ACTIVE); - if (enrolmentId < 0) { + // + EnrolmentInfo enrolmentInfo = this.getEnrolmentInfo(deviceId); + if (enrolmentInfo == null) { throw new OperationManagementException("Device not found for the given device Identifier:" + deviceId.getId() + " and given type:" + deviceId.getType()); } + int enrolmentId = enrolmentInfo.getId(); + //Changing the enrollment status & attempt count if the device is marked as inactive or unreachable + switch (enrolmentInfo.getStatus()) { + case ACTIVE: + this.resetAttemptCount(enrolmentId); + break; + case INACTIVE: + case UNREACHABLE: + this.resetAttemptCount(enrolmentId); + this.setEnrolmentStatus(deviceId, EnrolmentInfo.Status.ACTIVE); + break; + } try { OperationManagementDAOFactory.openConnection(); @@ -886,6 +899,65 @@ public class OperationManagerImpl implements OperationManager { return enrolmentId; } + private EnrolmentInfo getEnrolmentInfo(DeviceIdentifier deviceId) throws OperationManagementException { + EnrolmentInfo enrolmentInfo; + try { + DeviceManagementDAOFactory.openConnection(); + int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId(); + String user = this.getUser(); + enrolmentInfo = deviceDAO.getEnrolment(deviceId, user, tenantId); + } catch (DeviceManagementDAOException e) { + throw new OperationManagementException("Error occurred while retrieving enrollment data of '" + + deviceId.getType() + "' device carrying the identifier '" + + deviceId.getId() + "'", e); + } catch (SQLException e) { + throw new OperationManagementException( + "Error occurred while opening a connection to the data source", e); + } finally { + DeviceManagementDAOFactory.closeConnection(); + } + return enrolmentInfo; + } + + private boolean setEnrolmentStatus(DeviceIdentifier deviceId, EnrolmentInfo.Status status) throws OperationManagementException { + boolean updateStatus; + try { + DeviceManagementDAOFactory.beginTransaction(); + int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId(); + String user = this.getUser(); + updateStatus = deviceDAO.setEnrolmentStatus(deviceId, user, status, tenantId); + DeviceManagementDAOFactory.commitTransaction(); + } catch (DeviceManagementDAOException e) { + DeviceManagementDAOFactory.rollbackTransaction(); + throw new OperationManagementException("Error occurred while updating enrollment status of '" + + deviceId.getType() + "' device carrying the identifier '" + + deviceId.getId() + "'", e); + } catch (TransactionManagementException e) { + throw new OperationManagementException("Error occurred while initiating a transaction", e); + } finally { + DeviceManagementDAOFactory.closeConnection(); + } + return updateStatus; + } + + private boolean resetAttemptCount(int enrolmentId) throws OperationManagementException { + boolean resetStatus; + try { + OperationManagementDAOFactory.beginTransaction(); + resetStatus = operationDAO.resetAttemptCount(enrolmentId); + OperationManagementDAOFactory.commitTransaction(); + } catch (OperationManagementDAOException e) { + OperationManagementDAOFactory.rollbackTransaction(); + throw new OperationManagementException("Error occurred while resetting attempt count of device id : '" + + enrolmentId + "'", e); + } catch (TransactionManagementException e) { + throw new OperationManagementException("Error occurred while initiating a transaction", e); + } finally { + OperationManagementDAOFactory.closeConnection(); + } + return resetStatus; + } + private boolean isTaskScheduledOperation(Operation operation) { TaskConfiguration taskConfiguration = DeviceConfigurationManager.getInstance().getDeviceManagementConfig(). getTaskConfiguration(); @@ -896,5 +968,4 @@ public class OperationManagerImpl implements OperationManager { } return false; } - -} +} \ No newline at end of file diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/operation/mgt/dao/OperationDAO.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/operation/mgt/dao/OperationDAO.java index e07d251319..99c71a5ba1 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/operation/mgt/dao/OperationDAO.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/operation/mgt/dao/OperationDAO.java @@ -79,4 +79,6 @@ public interface OperationDAO { int getActivityCountUpdatedAfter(long timestamp) throws OperationManagementDAOException; + boolean resetAttemptCount(int enrolmentId) throws OperationManagementDAOException; + } \ No newline at end of file diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/operation/mgt/dao/impl/GenericOperationDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/operation/mgt/dao/impl/GenericOperationDAOImpl.java index 8a16220032..760a2f6e75 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/operation/mgt/dao/impl/GenericOperationDAOImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/operation/mgt/dao/impl/GenericOperationDAOImpl.java @@ -37,6 +37,7 @@ import org.wso2.carbon.device.mgt.core.operation.mgt.dao.util.OperationDAOUtil; import java.io.*; import java.sql.*; import java.util.ArrayList; +import java.util.Calendar; import java.util.Date; import java.util.List; @@ -1072,4 +1073,29 @@ public class GenericOperationDAOImpl implements OperationDAO { } return operations; } + + @Override + public boolean resetAttemptCount(int enrolmentId) throws OperationManagementDAOException { + boolean status = false; + Connection conn; + PreparedStatement stmt = null; + Timestamp currentTimestamp = new Timestamp(Calendar.getInstance().getTime().getTime()); + int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); + try { + conn = OperationManagementDAOFactory.getConnection(); + String query = "UPDATE DM_POLICY_COMPLIANCE_STATUS SET ATTEMPTS = 0, LAST_REQUESTED_TIME = ? " + + "WHERE ENROLMENT_ID = ? AND TENANT_ID = ?"; + stmt = conn.prepareStatement(query); + stmt.setTimestamp(1, currentTimestamp); + stmt.setInt(2, enrolmentId); + stmt.setInt(3, tenantId); + stmt.executeUpdate(); + status = true; + } catch (SQLException e) { + throw new OperationManagementDAOException("Unable to reset the attempt count in database.", e); + } finally { + OperationManagementDAOUtil.cleanupResources(stmt, null); + } + return status; + } } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderService.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderService.java index 200291ce4c..17732fea86 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderService.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderService.java @@ -24,6 +24,7 @@ import org.wso2.carbon.device.mgt.common.operation.mgt.Activity; import org.wso2.carbon.device.mgt.common.operation.mgt.Operation; import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException; +import java.util.HashMap; import java.util.Date; import java.util.List; @@ -33,8 +34,23 @@ import java.util.List; */ public interface DeviceManagementProviderService { + /** + * Method to retrieve all the devices of a given device type. + * + * @param deviceType Device-type of the required devices + * @return List of devices of given device-type. + * @throws DeviceManagementException If some unusual behaviour is observed while fetching the + * devices. + */ List getAllDevices(String deviceType) throws DeviceManagementException; + /** + * Method to retrieve all the devices registered in the system. + * + * @return List of registered devices. + * @throws DeviceManagementException If some unusual behaviour is observed while fetching the + * devices. + */ List getAllDevices() throws DeviceManagementException; /** @@ -207,6 +223,8 @@ public interface DeviceManagementProviderService { Device getDevice(DeviceIdentifier deviceId, Date since) throws DeviceManagementException; + HashMap getTenantedDevice(DeviceIdentifier deviceIdentifier) throws DeviceManagementException; + Device getDevice(DeviceIdentifier deviceId, EnrolmentInfo.Status status) throws DeviceManagementException; List getAvailableDeviceTypes() throws DeviceManagementException; diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java index 1e308f508c..dda2caf592 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java @@ -757,6 +757,30 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv } } + @Override + public HashMap getTenantedDevice(DeviceIdentifier deviceIdentifier) throws DeviceManagementException { + HashMap deviceHashMap; + try { + DeviceManagementDAOFactory.openConnection(); + deviceHashMap = deviceDAO.getDevice(deviceIdentifier); + if (deviceHashMap == null) { + if (log.isDebugEnabled()) { + log.debug("No device is found upon the type '" + deviceIdentifier.getType() + "' and id '" + + deviceIdentifier.getId() + "'"); + } + return null; + } + } catch (DeviceManagementDAOException e) { + throw new DeviceManagementException("Error occurred while obtaining the device for id " + + "'" + deviceIdentifier.getId() + "'", e); + } catch (SQLException e) { + throw new DeviceManagementException("Error occurred while opening a connection to the data source", e); + } finally { + DeviceManagementDAOFactory.closeConnection(); + } + return deviceHashMap; + } + @Override public Device getDevice(DeviceIdentifier deviceId) throws DeviceManagementException { Device device; diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/impl/DeviceTaskManagerImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/impl/DeviceTaskManagerImpl.java index 263237f7d5..5041f71a6c 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/impl/DeviceTaskManagerImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/impl/DeviceTaskManagerImpl.java @@ -84,29 +84,28 @@ public class DeviceTaskManagerImpl implements DeviceTaskManager { @Override public void addOperations() throws DeviceMgtTaskException { - DeviceManagementProviderService deviceManagementProviderService = - DeviceManagementDataHolder.getInstance().getDeviceManagementProvider(); + DeviceManagementProviderService deviceManagementProviderService = DeviceManagementDataHolder.getInstance(). + getDeviceManagementProvider(); try { - List devices = deviceManagementProviderService.getAllDevices(); + List deviceTypes = deviceManagementProviderService.getAvailableDeviceTypes(); + List devices; List operations = this.getValidOperationNames(); - if (!devices.isEmpty()) { - for (String str : operations) { - CommandOperation operation = new CommandOperation(); - operation.setEnabled(true); - operation.setType(Operation.Type.COMMAND); - operation.setCode(str); - //TODO: Fix this properly later adding device type to be passed in when the task manage executes "addOperations()" - String type = null; - if (devices.size() > 0) { - type = devices.get(0).getType(); + for (String deviceType : deviceTypes) { + devices = deviceManagementProviderService.getAllDevices(deviceType); + if (!devices.isEmpty()) { + for (String str : operations) { + CommandOperation operation = new CommandOperation(); + operation.setEnabled(true); + operation.setType(Operation.Type.COMMAND); + operation.setCode(str); + deviceManagementProviderService.addOperation(deviceType, operation, + DeviceManagerUtil.getValidDeviceIdentifiers(devices)); + } + } else { + if (log.isDebugEnabled()) { + log.debug("No devices are available to perform the operations."); } - deviceManagementProviderService.addOperation(type, operation, - DeviceManagerUtil.convertDevices(devices)); - } - } else { - if (log.isDebugEnabled()) { - log.debug("No devices are available to perform the operations."); } } } catch (InvalidDeviceException e) { diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/util/DeviceManagerUtil.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/util/DeviceManagerUtil.java index 17023a5a31..033e3fccca 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/util/DeviceManagerUtil.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/util/DeviceManagerUtil.java @@ -184,6 +184,27 @@ public final class DeviceManagerUtil { return deviceIdentifiers; } + public static List getValidDeviceIdentifiers(List devices) { + List deviceIdentifiers = new ArrayList<>(); + for (Device device : devices) { + if (device.getEnrolmentInfo() != null) { + switch (device.getEnrolmentInfo().getStatus()) { + case BLOCKED: + case REMOVED: + case SUSPENDED: + break; + default: + DeviceIdentifier identifier = new DeviceIdentifier(); + identifier.setId(device.getDeviceIdentifier()); + identifier.setType(device.getType()); + deviceIdentifiers.add(identifier); + } + } + } + return deviceIdentifiers; + } + + public static String getServerBaseHttpsUrl() { String hostName = "localhost"; try { diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/pom.xml index 8d96afdd2e..a160e0103a 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/pom.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/pom.xml @@ -55,8 +55,8 @@ org.wso2.carbon.device.mgt.core - org.apache.ws.commons.axiom - axiom-api + org.apache.ws.commons.axiom.wso2 + axiom org.wso2.carbon diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/api/device-api.jag b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/api/device-api.jag index d0fc9c4f70..3e4c75a337 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/api/device-api.jag +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/api/device-api.jag @@ -48,27 +48,28 @@ if (!user) { var deviceType = request.getParameter("deviceType"); // need a better solution here deviceTypeConfig = utility.getDeviceTypeConfig(deviceType); if (deviceTypeConfig && deviceTypeConfig.deviceType.downloadAgentUri) { + hearders = [{"name": constants["ACCEPT_IDENTIFIER"], "value": constants["APPLICATION_ZIP"]}]; sketchDownloadEndPoint = devicemgtProps["httpsURL"] + "/" + deviceTypeConfig.deviceType.downloadAgentUri; serviceInvokers.HttpClient.get(sketchDownloadEndPoint + queryString, function (responsePayload, responseHeaders) { - if (responseHeaders) { - for (var i = 0; i < responseHeaders.length; i++) { - var header = responseHeaders[i] - var headerName = String(header.getName()); - var headerValue = String(header.getValue()); - response.addHeader(headerName, headerValue); - } - var streamObject = new Stream(responsePayload); - print(streamObject); - } else { - return responsePayload; - } - }, function (responsePayload) { - log.error(responsePayload) - var response = {}; - response["status"] = "error"; - return response; - } - ); + if (responseHeaders) { + for (var i = 0; i < responseHeaders.length; i++) { + var header = responseHeaders[i]; + var headerName = String(header.getName()); + var headerValue = String(header.getValue()); + response.addHeader(headerName, headerValue); + } + var streamObject = new Stream(responsePayload); + print(streamObject); + } else { + return responsePayload; + } + }, function (responsePayload) { + log.error(responsePayload); + var response = {}; + response["status"] = "error"; + return response; + } + , hearders); } else { result = 400; } @@ -143,14 +144,14 @@ if (!user) { } serviceInvokers.XMLHttp.get( - targetURL, function (responsePayload) { - response.status = 200; - result = responsePayload; - }, - function (responsePayload) { - response.status = responsePayload.status; - result = responsePayload.responseText; - }); + targetURL, function (responsePayload) { + response.status = 200; + result = responsePayload; + }, + function (responsePayload) { + response.status = responsePayload.status; + result = responsePayload.responseText; + }); } else if (uriMatcher.match("/{context}/api/devices/")) { if (userModule.isAuthorized("/permission/admin/device-mgt/devices/list")) { result = deviceModule.listDevices(); diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/business-controllers/device.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/business-controllers/device.js index 6c7dbcc174..d743797ba3 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/business-controllers/device.js +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/business-controllers/device.js @@ -20,26 +20,14 @@ var deviceModule; deviceModule = function () { var log = new Log("/app/modules/business-controllers/device.js"); - var utility = require('/app/modules/utility.js').utility; + var utility = require('/app/modules/utility.js')["utility"]; var constants = require('/app/modules/constants.js'); var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"]; var serviceInvokers = require("/app/modules/oauth/token-protected-service-invokers.js")["invokers"]; -// var ArrayList = Packages.java.util.ArrayList; -// var Properties = Packages.java.util.Properties; -// var DeviceIdentifier = Packages.org.wso2.carbon.device.mgt.common.DeviceIdentifier; -// var DeviceManagerUtil = Packages.org.wso2.carbon.device.mgt.core.util.DeviceManagerUtil; -// var SimpleOperation = Packages.org.wso2.carbon.device.mgt.core.operation.mgt.SimpleOperation; -// var ConfigOperation = Packages.org.wso2.carbon.device.mgt.core.operation.mgt.ConfigOperation; -// var CommandOperation = Packages.org.wso2.carbon.device.mgt.core.operation.mgt.CommandOperation; - - var deviceManagementService = utility.getDeviceManagementService(); - var publicMethods = {}; var privateMethods = {}; -// var deviceCloudService = devicemgtProps["httpsURL"] + "/common/device_manager"; - /** * Only GET method is implemented for now since there are no other type of methods used this method. * @param url - URL to call the backend without the host @@ -67,170 +55,9 @@ deviceModule = function () { }; privateMethods.validateAndReturn = function (value) { - return (value == undefined || value == null) ? constants.UNSPECIFIED : value; + return (value == undefined || value == null) ? constants["UNSPECIFIED"] : value; }; - /* - @Deprecated - */ -// publicMethods.listDevices = function () { -// var carbonUser = session.get(constants.USER_SESSION_KEY); -// var utility = require('/app/modules/utility.js').utility; -// if (!carbonUser) { -// log.error("User object was not found in the session"); -// throw constants.ERRORS.USER_NOT_FOUND; -// } -// try { -// utility.startTenantFlow(carbonUser); -// var deviceManagementService = utility.getDeviceManagementService(); -// var devices = deviceManagementService.getAllDevices(); -// var deviceList = []; -// var i, device, propertiesList, deviceObject; -// for (i = 0; i < devices.size(); i++) { -// device = devices.get(i); -// propertiesList = DeviceManagerUtil.convertDevicePropertiesToMap(device.getProperties()); -// -// deviceObject = {}; -// deviceObject[constants.DEVICE_IDENTIFIER] = -// privateMethods.validateAndReturn(device.getDeviceIdentifier()); -// deviceObject[constants.DEVICE_NAME] = -// privateMethods.validateAndReturn(device.getName()); -// deviceObject[constants.DEVICE_OWNERSHIP] = -// privateMethods.validateAndReturn(device.getEnrolmentInfo().getOwnership()); -// deviceObject[constants.DEVICE_OWNER] = -// privateMethods.validateAndReturn(device.getEnrolmentInfo().getOwner()); -// deviceObject[constants.DEVICE_TYPE] = -// privateMethods.validateAndReturn(device.getType()); -// deviceObject[constants.DEVICE_PROPERTIES] = {}; -// if (device.getType() == constants.PLATFORM_IOS) { -// deviceObject[constants.DEVICE_PROPERTIES][constants.DEVICE_MODEL] = -// privateMethods.validateAndReturn(propertiesList.get(constants.DEVICE_PRODUCT)); -// deviceObject[constants.DEVICE_PROPERTIES][constants.DEVICE_VENDOR] = constants.VENDOR_APPLE; -// } else { -// deviceObject[constants.DEVICE_PROPERTIES][constants.DEVICE_MODEL] = -// privateMethods.validateAndReturn(propertiesList.get(constants.DEVICE_MODEL)); -// deviceObject[constants.DEVICE_PROPERTIES][constants.DEVICE_VENDOR] = -// privateMethods.validateAndReturn(propertiesList.get(constants.DEVICE_VENDOR)); -// } -// deviceObject[constants.DEVICE_PROPERTIES][constants.DEVICE_OS_VERSION] = -// privateMethods.validateAndReturn(propertiesList.get(constants.DEVICE_OS_VERSION)); -// -// deviceList.push(deviceObject); -// } -// return deviceList; -// } catch (e) { -// throw e; -// } finally { -// utility.endTenantFlow(); -// } -// }; - - /* - @Deprecated - */ - /* - Get the supported features by the device type - */ -// publicMethods.getFeatures = function (deviceType) { -// var carbonUser = session.get(constants.USER_SESSION_KEY); -// var utility = require('/app/modules/utility.js').utility; -// if (!carbonUser) { -// log.error("User object was not found in the session"); -// throw constants.ERRORS.USER_NOT_FOUND; -// } -// try { -// utility.startTenantFlow(carbonUser); -// var deviceManagementService = utility.getDeviceManagementService(); -// var features = deviceManagementService.getFeatureManager(deviceType).getFeatures(); -// var featuresConverted = {}; -// if (features) { -// var i, feature, featureObject; -// for (i = 0; i < features.size(); i++) { -// feature = features.get(i); -// featureObject = {}; -// featureObject[constants.FEATURE_NAME] = feature.getName(); -// featureObject[constants.FEATURE_DESCRIPTION] = feature.getDescription(); -// featuresConverted[feature.getName()] = featureObject; -// } -// } -// return featuresConverted; -// } catch (e) { -// throw e; -// } finally { -// utility.endTenantFlow(); -// } -// }; - - /* - @Deprecated - */ -// publicMethods.performOperation = function (devices, operation) { -// var carbonUser = session.get(constants.USER_SESSION_KEY); -// var utility = require('/app/modules/utility.js').utility; -// if (!carbonUser) { -// log.error("User object was not found in the session"); -// throw constants.ERRORS.USER_NOT_FOUND; -// } -// try { -// utility.startTenantFlow(carbonUser); -// var deviceManagementService = utility.getDeviceManagementService(); -// var operationInstance; -// if (operation.type == "COMMAND") { -// operationInstance = new CommandOperation(); -// } else if (operation.type == "CONFIG") { -// operationInstance = new ConfigOperation(); -// } else { -// operationInstance = new SimpleOperation(); -// } -// operationInstance.setCode(operation.featureName); -// var props = new Properties(); -// var i, object; -// for (i = 0; i < operation.properties.length; i++) { -// object = properties[i]; -// props.setProperty(object.key, object.value); -// } -// operationInstance.setProperties(props); -// var deviceList = new ArrayList(); -// var j, device, deviceIdentifier; -// for (j = 0; j < devices.length; i++) { -// device = devices[j]; -// deviceIdentifier = new DeviceIdentifier(); -// deviceIdentifier.setId(device.id); -// deviceIdentifier.setType(device.type); -// deviceList.add(deviceIdentifier); -// } -// deviceManagementService.addOperation(operationInstance, deviceList); -// } catch (e) { -// throw e; -// } finally { -// utility.endTenantFlow(); -// } -// }; - - /* - @Deprecated - */ -// privateMethods.getDevice = function (type, deviceId) { -// var carbonUser = session.get(constants.USER_SESSION_KEY); -// var utility = require('/app/modules/utility.js').utility; -// if (!carbonUser) { -// log.error("User object was not found in the session"); -// throw constants.ERRORS.USER_NOT_FOUND; -// } -// try { -// utility.startTenantFlow(carbonUser); -// var deviceManagementService = utility.getDeviceManagementService(); -// var deviceIdentifier = new DeviceIdentifier(); -// deviceIdentifier.setType(type); -// deviceIdentifier.setId(deviceId); -// return deviceManagementService.getDevice(deviceIdentifier); -// } catch (e) { -// throw e; -// } finally { -// utility.endTenantFlow(); -// } -// }; - /* @Updated */ @@ -243,7 +70,6 @@ deviceModule = function () { var utility = require('/app/modules/utility.js')["utility"]; try { utility.startTenantFlow(carbonUser); - //var url = mdmProps["httpsURL"] + "/mdm-admin/devices/view?type=" + deviceType + "&id=" + deviceId; var url = devicemgtProps["httpsURL"] + "/api/device-mgt/v1.0/devices/" + deviceType + "/" + deviceId; return serviceInvokers.XMLHttp.get( url, @@ -271,11 +97,18 @@ deviceModule = function () { properties[constants["DEVICE_VENDOR"]] = constants["VENDOR_APPLE"]; } deviceObject[constants["DEVICE_PROPERTIES"]] = properties; + if (device["deviceInfo"]) { + deviceObject[constants["DEVICE_INFO"]] = device["deviceInfo"]; + } + response["content"] = deviceObject; return response; } else if (backendResponse.status == 401) { response["status"] = "unauthorized"; return response; + } else if (backendResponse.status == 404) { + response["status"] = "notFound"; + return response; } else { response["status"] = "error"; return response; @@ -298,10 +131,10 @@ deviceModule = function () { var url; if (uiPermissions.LIST_DEVICES) { url = devicemgtProps["httpsURL"] + - devicemgtProps["backendRestEndpoints"]["deviceMgt"] + "/devices?offset=0&limit=1"; + devicemgtProps["backendRestEndpoints"]["deviceMgt"] + "/devices?offset=0&limit=1"; } else if (uiPermissions.LIST_OWN_DEVICES) { url = devicemgtProps["httpsURL"] + devicemgtProps["backendRestEndpoints"]["deviceMgt"] + - "/devices?offset=0&limit=1&user=" + carbonUser.username; + "/devices?offset=0&limit=1&user=" + carbonUser.username; } else { log.error("Access denied for user: " + carbonUser.username); return -1; @@ -330,8 +163,6 @@ deviceModule = function () { return response; }; - //Old methods - //TODO: make sure these methods are updated /* @Updated */ diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/constants.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/constants.js index 5cafff394d..b79f0160c8 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/constants.js +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/constants.js @@ -34,6 +34,7 @@ var DEVICE_OS_BUILD_DATE = "osBuildDate"; var DEVICE_PROPERTIES = "properties"; var DEVICE_ENROLLMENT_INFO = "enrolmentInfo"; var DEVICE_STATUS = "status"; +var DEVICE_INFO = "deviceInfo"; var FEATURE_NAME = "featureName"; var FEATURE_DESCRIPTION = "featureDescription"; diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/oauth/token-protected-service-invokers.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/oauth/token-protected-service-invokers.js index 6520a819b5..d4fdbc3e89 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/oauth/token-protected-service-invokers.js +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/oauth/token-protected-service-invokers.js @@ -66,11 +66,15 @@ var invokers = function () { * @param endpoint Backend REST API url. * @param responseCallback a function to be called with response retrieved. * @param count a counter which hold the number of recursive execution + * @param headers a list of name value pairs for additional http headers */ - privateMethods["execute"] = function (httpMethod, requestPayload, endpoint, responseCallback, count) { + privateMethods["execute"] = function (httpMethod, requestPayload, endpoint, responseCallback, count, headers) { var xmlHttpRequest = new XMLHttpRequest(); xmlHttpRequest.open(httpMethod, endpoint); + for(var i in headers){ + xmlHttpRequest.setRequestHeader(headers[i].name, headers[i].value); + } xmlHttpRequest.setRequestHeader(constants["CONTENT_TYPE_IDENTIFIER"], constants["APPLICATION_JSON"]); xmlHttpRequest.setRequestHeader(constants["ACCEPT_IDENTIFIER"], constants["APPLICATION_JSON"]); @@ -82,7 +86,7 @@ var invokers = function () { }); } else { xmlHttpRequest.setRequestHeader(constants["AUTHORIZATION_HEADER"], - constants["BEARER_PREFIX"] + accessToken); + constants["BEARER_PREFIX"] + accessToken); } } @@ -98,9 +102,9 @@ var invokers = function () { log.debug("Response payload if any : " + xmlHttpRequest.responseText); if (xmlHttpRequest.status == 401 && (xmlHttpRequest.responseText == TOKEN_EXPIRED || - xmlHttpRequest.responseText == TOKEN_INVALID ) && count < 5) { + xmlHttpRequest.responseText == TOKEN_INVALID ) && count < 5) { tokenUtil.refreshTokenPair(); - return privateMethods.execute(httpMethod, requestPayload, endpoint, responseCallback, ++count); + return privateMethods.execute(httpMethod, requestPayload, endpoint, responseCallback, ++count, headers); } else { return responseCallback(xmlHttpRequest); } @@ -113,8 +117,8 @@ var invokers = function () { * @param endpoint Backend REST API url. * @param responseCallback a function to be called with response retrieved. */ - privateMethods["initiateXMLHTTPRequest"] = function (httpMethod, requestPayload, endpoint, responseCallback) { - return privateMethods.execute(httpMethod, requestPayload, endpoint, responseCallback, 0); + privateMethods["initiateXMLHTTPRequest"] = function (httpMethod, requestPayload, endpoint, responseCallback, headers) { + return privateMethods.execute(httpMethod, requestPayload, endpoint, responseCallback, 0, headers); }; /** @@ -122,9 +126,9 @@ var invokers = function () { * @param endpoint Backend REST API url. * @param responseCallback a function to be called with response retrieved. */ - publicXMLHTTPInvokers["get"] = function (endpoint, responseCallback) { + publicXMLHTTPInvokers["get"] = function (endpoint, responseCallback, headers) { var requestPayload = null; - return privateMethods.initiateXMLHTTPRequest(constants["HTTP_GET"], requestPayload, endpoint, responseCallback); + return privateMethods.initiateXMLHTTPRequest(constants["HTTP_GET"], requestPayload, endpoint, responseCallback, headers); }; /** @@ -133,8 +137,8 @@ var invokers = function () { * @param requestPayload payload/data if exists which is needed to be send. * @param responseCallback a function to be called with response retrieved. */ - publicXMLHTTPInvokers["post"] = function (endpoint, requestPayload, responseCallback) { - return privateMethods.initiateXMLHTTPRequest(constants["HTTP_POST"], requestPayload, endpoint, responseCallback); + publicXMLHTTPInvokers["post"] = function (endpoint, requestPayload, responseCallback, headers) { + return privateMethods.initiateXMLHTTPRequest(constants["HTTP_POST"], requestPayload, endpoint, responseCallback, headers); }; /** @@ -143,8 +147,8 @@ var invokers = function () { * @param requestPayload payload/data if exists which is needed to be send. * @param responseCallback a function to be called with response retrieved. */ - publicXMLHTTPInvokers["put"] = function (endpoint, requestPayload, responseCallback) { - return privateMethods.initiateXMLHTTPRequest(constants["HTTP_PUT"], requestPayload, endpoint, responseCallback); + publicXMLHTTPInvokers["put"] = function (endpoint, requestPayload, responseCallback, headers) { + return privateMethods.initiateXMLHTTPRequest(constants["HTTP_PUT"], requestPayload, endpoint, responseCallback, headers); }; /** @@ -152,9 +156,9 @@ var invokers = function () { * @param endpoint Backend REST API url. * @param responseCallback a function to be called with response retrieved. */ - publicXMLHTTPInvokers["delete"] = function (endpoint, responseCallback) { + publicXMLHTTPInvokers["delete"] = function (endpoint, responseCallback, headers) { var requestPayload = null; - return privateMethods.initiateXMLHTTPRequest(constants["HTTP_DELETE"], requestPayload, endpoint, responseCallback); + return privateMethods.initiateXMLHTTPRequest(constants["HTTP_DELETE"], requestPayload, endpoint, responseCallback, headers); }; /** @@ -239,8 +243,9 @@ var invokers = function () { * @param payload payload/data which need to be send. * @param successCallback a function to be called if the respond if successful. * @param errorCallback a function to be called if en error is reserved. + * @param headers a list of name value pairs for additional http headers. */ - privateMethods["initiateHTTPClientRequest"] = function (method, url, successCallback, errorCallback, payload) { + privateMethods["initiateHTTPClientRequest"] = function (method, url, successCallback, errorCallback, payload, headers) { //noinspection JSUnresolvedVariable var HttpClient = Packages.org.apache.commons.httpclient.HttpClient; var httpMethodObject; @@ -269,8 +274,16 @@ var invokers = function () { //noinspection JSUnresolvedFunction throw new IllegalArgumentException("Invalid HTTP request method: " + method); } + //noinspection JSUnresolvedVariable var Header = Packages.org.apache.commons.httpclient.Header; + for(var i in headers){ + var header = new Header(); + header.setName(headers[i].name); + header.setValue(headers[i].value); + httpMethodObject.addRequestHeader(header); + } + var header = new Header(); header.setName(constants["CONTENT_TYPE_IDENTIFIER"]); header.setValue(constants["APPLICATION_JSON"]); @@ -295,9 +308,12 @@ var invokers = function () { } } //noinspection JSUnresolvedFunction - var stringRequestEntity = new StringRequestEntity(stringify(payload)); - //noinspection JSUnresolvedFunction - httpMethodObject.setRequestEntity(stringRequestEntity); + if (payload != null) { + var StringRequestEntity = Packages.org.apache.commons.httpclient.methods.StringRequestEntity; + var stringRequestEntity = new StringRequestEntity(stringify(payload)); + //noinspection JSUnresolvedFunction + httpMethodObject.setRequestEntity(stringRequestEntity); + } var client = new HttpClient(); try { //noinspection JSUnresolvedFunction @@ -305,17 +321,22 @@ var invokers = function () { //noinspection JSUnresolvedFunction var status = httpMethodObject.getStatusCode(); if (status == 200) { - //noinspection JSUnresolvedFunction - return successCallback(httpMethodObject.getResponseBody()); + var responseContentDispositionHeader = httpMethodObject.getResponseHeader(constants["CONTENT_DISPOSITION_IDENTIFIER"]); + if (responseContentDispositionHeader) { + return successCallback(httpMethodObject.getResponseBodyAsStream(), httpMethodObject.getResponseHeaders()); + } else { + return successCallback(httpMethodObject.getResponseBody()); + } } else { - //noinspection JSUnresolvedFunction return errorCallback(httpMethodObject.getResponseBody()); } } catch (e) { return errorCallback(response); } finally { //noinspection JSUnresolvedFunction - method.releaseConnection(); + if (method != constants["HTTP_GET"]) { + method.releaseConnection(); + } } }; @@ -324,11 +345,12 @@ var invokers = function () { * @param url target url. * @param successCallback a function to be called if the respond if successful. * @param errorCallback a function to be called if en error is reserved. + * @param headers a list of name value pairs for additional http headers. */ - publicHTTPClientInvokers["get"] = function (url, successCallback, errorCallback) { + publicHTTPClientInvokers["get"] = function (url, successCallback, errorCallback, headers) { var requestPayload = null; return privateMethods. - initiateHTTPClientRequest(constants["HTTP_GET"], url, successCallback, errorCallback, requestPayload); + initiateHTTPClientRequest(constants["HTTP_GET"], url, successCallback, errorCallback, requestPayload, headers); }; /** @@ -337,10 +359,11 @@ var invokers = function () { * @param payload payload/data which need to be send. * @param successCallback a function to be called if the respond if successful. * @param errorCallback a function to be called if en error is reserved. + * @param headers a list of name value pairs for additional http headers. */ - publicHTTPClientInvokers["post"] = function (url, payload, successCallback, errorCallback) { + publicHTTPClientInvokers["post"] = function (url, payload, successCallback, errorCallback, headers) { return privateMethods. - initiateHTTPClientRequest(constants["HTTP_POST"], url, successCallback, errorCallback, payload); + initiateHTTPClientRequest(constants["HTTP_POST"], url, successCallback, errorCallback, payload, headers); }; /** @@ -349,10 +372,11 @@ var invokers = function () { * @param payload payload/data which need to be send. * @param successCallback a function to be called if the respond if successful. * @param errorCallback a function to be called if en error is reserved. + * @param headers a list of name value pairs for additional http headers. */ - publicHTTPClientInvokers["put"] = function (url, payload, successCallback, errorCallback) { + publicHTTPClientInvokers["put"] = function (url, payload, successCallback, errorCallback, headers) { return privateMethods. - initiateHTTPClientRequest(constants["HTTP_PUT"], url, successCallback, errorCallback, payload); + initiateHTTPClientRequest(constants["HTTP_PUT"], url, successCallback, errorCallback, payload, headers); }; /** @@ -360,11 +384,12 @@ var invokers = function () { * @param url target url. * @param successCallback a function to be called if the respond if successful. * @param errorCallback a function to be called if en error is reserved. + * @param headers a list of name value pairs for additional http headers. */ - publicHTTPClientInvokers["delete"] = function (url, successCallback, errorCallback) { + publicHTTPClientInvokers["delete"] = function (url, successCallback, errorCallback, headers) { var requestPayload = null; return privateMethods. - initiateHTTPClientRequest(constants["HTTP_DELETE"], url, successCallback, errorCallback, requestPayload); + initiateHTTPClientRequest(constants["HTTP_DELETE"], url, successCallback, errorCallback, requestPayload, headers); }; var publicMethods = {}; diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.devices/devices.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.devices/devices.js index d7a19da36b..ae506f4b07 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.devices/devices.js +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.devices/devices.js @@ -24,22 +24,22 @@ function onRequest(context) { var groupName = request.getParameter("groupName"); var groupOwner = request.getParameter("groupOwner"); - var page = {}; + var viewModel = {}; var title = "Devices"; if (groupName) { title = groupName + " " + title; - page.groupName = groupName; + viewModel.groupName = groupName; } - page.title = title; + viewModel.title = title; var currentUser = session.get(constants.USER_SESSION_KEY); if (currentUser) { - page.permissions = {}; + viewModel.permissions = {}; var uiPermissions = userModule.getUIPermissions(); - page.permissions.list = stringify(uiPermissions); + viewModel.permissions.list = stringify(uiPermissions); if (uiPermissions.ADD_DEVICE) { - page.permissions.enroll = true; + viewModel.permissions.enroll = true; } - page.currentUser = currentUser; + viewModel.currentUser = currentUser; var deviceCount = 0; if (groupName && groupOwner) { var groupModule = require("/app/modules/business-controllers/group.js")["groupModule"]; @@ -48,30 +48,30 @@ function onRequest(context) { deviceCount = deviceModule.getDevicesCount(); } if (deviceCount > 0) { - page.deviceCount = deviceCount; + viewModel.deviceCount = deviceCount; var utility = require("/app/modules/utility.js").utility; var typesListResponse = deviceModule.getDeviceTypes(); var deviceTypes = []; if (typesListResponse["status"] == "success") { - var data = typesListResponse["content"]; + var data = typesListResponse.content.deviceTypes; if (data) { for (var i = 0; i < data.length; i++) { - var config = utility.getDeviceTypeConfig(data[i].name); + var config = utility.getDeviceTypeConfig(data[i]); if (!config) { continue; } var deviceType = config.deviceType; deviceTypes.push({ - "type": data[i].name, - "category": deviceType.category, - "label": deviceType.label, - "thumb": utility.getDeviceThumb(data[i].name) - }); + "type": data[i], + "category": deviceType.category, + "label": deviceType.label, + "thumb": utility.getDeviceThumb(data[i]) + }); } } } - page.deviceTypes = stringify(deviceTypes); + viewModel.deviceTypes = stringify(deviceTypes); } } - return page; + return viewModel; } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.create/create.hbs b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.create/create.hbs index 9867540a55..b0088ff964 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.create/create.hbs +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.create/create.hbs @@ -103,12 +103,12 @@ - {{#if canViewRoles}} +
- - -
- -
- -
- -
- - - -
- -
- - - -
- -
- - - - -
- -
- + {{#if canManage}} + +
+
+ +
+
+

Edit User

+

Please note that * sign represents required fields of data.

+
+
+
+ + +
+ +
+ +
+ +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + + +
+ {{#if canViewRoles}} + +
+ +
+ {{/if}}
+
+
-
-
-
- -
- -{{else}} -

- Permission Denied -

-
- You not authorized to enter User Management Section. -
-{{/if}} + + {{else}} +

+ Permission Denied +

+
+ You not authorized to enter User Management Section. +
+ {{/if}} {{/zone}} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.edit/edit.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.edit/edit.js index 95d5b41059..38b824c9f0 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.edit/edit.js +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.edit/edit.js @@ -22,7 +22,7 @@ function onRequest() { var userName = request.getParameter("username"); var user = userModule.getUser(userName)["content"]; - + if (user) { var title; if (user.firstname && user.lastname) { @@ -63,6 +63,9 @@ function onRequest() { if (userModule.isAuthorized("/permission/admin/device-mgt/users/manage")) { page.canManage = true; } + if (userModule.isAuthorized("/permission/admin/device-mgt/roles/view")) { + page.canViewRoles = true; + } page["usernameJSRegEx"] = devicemgtProps["userValidationConfig"]["usernameJSRegEx"]; page["usernameRegExViolationErrorMsg"] = devicemgtProps["userValidationConfig"]["usernameRegExViolationErrorMsg"]; diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.edit/public/js/bottomJs.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.edit/public/js/bottomJs.js index 13192b0cda..295195e3f7 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.edit/public/js/bottomJs.js +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.edit/public/js/bottomJs.js @@ -75,7 +75,7 @@ var disableInlineError = function (inputField, errorMsg, errorSign) { */ validateInline["user-name"] = function () { var usernameinput = $("input#username"); - if (inputIsValid( usernameinput.data("regex"), usernameinput.val())) { + if (inputIsValid(usernameinput.data("regex"), usernameinput.val())) { disableInlineError("usernameInputField", "usernameEmpty", "usernameError"); } else { enableInlineError("usernameInputField", "usernameEmpty", "usernameError"); @@ -113,12 +113,12 @@ validateInline["last-name"] = function () { validateInline["emailAddress"] = function () { var email = $("#emailAddress").val(); if (!email) { - enableInlineError("emailField", "email-required" , "emailError"); + enableInlineError("emailField", "email-required", "emailError"); } else if (emailIsValid(email)) { - disableInlineError("emailField", "email-required" , "emailError"); - disableInlineError("emailField", "email-invalid" , "emailError"); + disableInlineError("emailField", "email-required", "emailError"); + disableInlineError("emailField", "email-invalid", "emailError"); } else { - enableInlineError("emailField", "email-invalid" , "emailError"); + enableInlineError("emailField", "email-invalid", "emailError"); } }; @@ -148,8 +148,8 @@ clearInline["last-name"] = function () { * clear Validation messages when gain focus to the field. */ clearInline["emailAddress"] = function () { - disableInlineError("emailField", "email-required" , "emailError"); - disableInlineError("emailField", "email-invalid" , "emailError"); + disableInlineError("emailField", "email-required", "emailError"); + disableInlineError("emailField", "email-invalid", "emailError"); }; /** @@ -168,11 +168,16 @@ $(document).ready(function () { $("select.select2[multiple=multiple]").select2({ tags: false }); - var roleList = $("#roles").attr("selectedVals").trim().replace(/ /g, ""); - roleList = roleList.replace(/(\r\n|\n|\r)/gm, ""); - var roleArr = roleList.split(","); - $("#roles").val(roleArr).trigger("change"); + var roleList, roleArr; + if ($("#roles").length > 0) { + roleList = $("#roles").attr("selectedVals").trim().replace(/ /g, ""); + roleList = roleList.replace(/(\r\n|\n|\r)/gm, ""); + roleArr = roleList.split(","); + } + if ($("#roles").length > 0) { + $("#roles").val(roleArr).trigger("change"); + } /** * Following click function would execute * when a user clicks on "Add User" button @@ -188,7 +193,10 @@ $(document).ready(function () { var firstname = firstnameInput.val(); var lastname = lastnameInput.val(); var emailAddress = $("input#emailAddress").val(); - var roles = $("select#roles").val(); + var roles; + if ($("#roles").length > 0) { + var roles = $("select#roles").val(); + } var errorMsgWrapper = "#user-create-error-msg"; var errorMsg = "#user-create-error-msg span"; if (!username) { @@ -255,27 +263,27 @@ $(document).ready(function () { } }); - $("#emailAddress").focus(function() { + $("#emailAddress").focus(function () { clearInline["emailAddress"](); }); - $("#emailAddress").blur(function() { + $("#emailAddress").blur(function () { validateInline["emailAddress"](); }); - $("#lastname").focus(function() { + $("#lastname").focus(function () { clearInline["last-name"](); }); - $("#lastname").blur(function() { + $("#lastname").blur(function () { validateInline["last-name"](); }); - $("#firstname").focus(function() { + $("#firstname").focus(function () { clearInline["first-name"](); }); - $("#firstname").blur(function() { + $("#firstname").blur(function () { validateInline["first-name"](); }); }); \ No newline at end of file diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.data-tables-extended/public/js/dataTables.extended.serversidepaging.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.data-tables-extended/public/js/dataTables.extended.serversidepaging.js index 3c8f6ce103..e33d3ce60a 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.data-tables-extended/public/js/dataTables.extended.serversidepaging.js +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.data-tables-extended/public/js/dataTables.extended.serversidepaging.js @@ -37,6 +37,10 @@ $.fn.datatables_extended_serverside_paging = function (settings , url, dataFilte if (InitiateViewOption) { $(".viewEnabledIcon").bind("click", InitiateViewOption); } + + var deviceType; + var ownership; + //--- End of EMM related codes $(elem).DataTable( @@ -111,14 +115,32 @@ $.fn.datatables_extended_serverside_paging = function (settings , url, dataFilte .draw(); if (filterColumn.eq(column.index()).hasClass('data-platform')) { - if (!val) { + deviceType = val; + if (!deviceType || !ownership) { $("#operation-bar").addClass("hidden"); $("#operation-guide").removeClass("hidden"); } else { $("#operation-guide").addClass("hidden"); $("#operation-bar").removeClass("hidden"); //noinspection JSUnresolvedFunction - loadOperationBar(val); + if (deviceType && ownership) { + loadOperationBar(deviceType, ownership); + } + } + } + + if (filterColumn.eq(column.index()).hasClass('data-ownership')) { + ownership = val; + if (!deviceType || !ownership) { + $("#operation-bar").addClass("hidden"); + $("#operation-guide").removeClass("hidden"); + } else { + $("#operation-guide").addClass("hidden"); + $("#operation-bar").removeClass("hidden"); + //noinspection JSUnresolvedFunction + if (deviceType && ownership) { + loadOperationBar(deviceType, ownership); + } } } }); diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.operation-mod/public/js/operation-mod.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.operation-mod/public/js/operation-mod.js index 98b3e2ad9f..0ea06a2ab0 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.operation-mod/public/js/operation-mod.js +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.operation-mod/public/js/operation-mod.js @@ -107,7 +107,6 @@ var operationModule = function () { "NOTIFICATION_OPERATION_CODE": "NOTIFICATION", "CALENDAR_SUBSCRIPTION_OPERATION_CODE": "CALENDAR_SUBSCRIPTION", "APN_OPERATION_CODE": "APN", - "DOMAIN_CODE": "DOMAIN", "CELLULAR_OPERATION_CODE": "CELLULAR", "PER_APP_VPN_OPERATION_CODE": "PER_APP_VPN", "APP_TO_PER_APP_VPN_MAPPING_OPERATION_CODE": "APP_TO_PER_APP_VPN_MAPPING" @@ -116,20 +115,10 @@ var operationModule = function () { publicMethods.getIOSServiceEndpoint = function (operationCode) { var featureMap = { "DEVICE_LOCK": "lock", - "VPN": "vpn", - "PER_APP_VPN": "per-app-vpn", - "APP_TO_PER_APP_VPN_MAPPING": "app-to-per-app-vpn-mapping", - "RING": "ring", "LOCATION": "location", + "ENTERPRISE_WIPE": "enterprise-wipe", "NOTIFICATION": "notification", - "AIR_PLAY": "airplay", - "RESTRICTION": "restriction", - "CELLULAR": "cellular", - "WIFI": "wifi", - "INSTALL_STORE_APPLICATION": "store-application", - "INSTALL_ENTERPRISE_APPLICATION": "enterprise-application", - "REMOVE_APPLICATION": "remove-application", - "ENTERPRISE_WIPE": "enterprise-wipe" + "RING": "ring" }; return "/api/device-mgt/ios/v1.0/admin/devices/" + featureMap[operationCode]; }; @@ -851,6 +840,24 @@ var operationModule = function () { "restrictedApplications": operationPayload["restricted-applications"] }; break; + case androidOperationConstants["SYSTEM_UPDATE_POLICY_CODE"]: + if (operationPayload["type"] != "window") { + payload = { + "cosuSystemUpdatePolicyType": operationPayload["type"] + }; + } else { + payload = { + "cosuSystemUpdatePolicyType": operationPayload["type"], + "cosuSystemUpdatePolicyWindowStartTime": operationPayload["startTime"], + "cosuSystemUpdatePolicyWindowEndTime": operationPayload["endTime"] + }; + } + break; + case androidOperationConstants["KIOSK_APPS_CODE"]: + payload = { + "cosuWhitelistedApplications": operationPayload["whitelistedApplications"] + }; + break; } return payload; }; @@ -1187,12 +1194,13 @@ var operationModule = function () { publicMethods.getWindowsServiceEndpoint = function (operationCode) { var featureMap = { "DEVICE_LOCK": "lock-devices", + "DISENROLL": "disenroll", "DEVICE_RING": "ring-devices", "LOCK_RESET": "lock-reset-devices", "WIPE_DATA": "wipe-devices" }; //return "/mdm-windows-agent/services/windows/operation/" + featureMap[operationCode]; - return "/api/device-mgt/windows/v1.0/admin/devices/" + featureMap[operationCode]; + return "/api/device-mgt/windows/v1.0/services/windows/admin/devices/" + featureMap[operationCode]; }; /** * Get the icon for the featureCode @@ -1203,16 +1211,16 @@ var operationModule = function () { var featureMap = { "DEVICE_LOCK": "fw-lock", "DEVICE_LOCATION": "fw-map-location", - "CLEAR_PASSWORD": "fw-key", - "ENTERPRISE_WIPE": "fw-clear", - "WIPE_DATA": "fw-database", + "CLEAR_PASSWORD": "fw-clear", + "ENTERPRISE_WIPE": "fw-block", + "WIPE_DATA": "fw-delete", "DEVICE_RING": "fw-dial-up", "DEVICE_REBOOT": "fw-refresh", - "UPGRADE_FIRMWARE": "fw-up-arrow", + "UPGRADE_FIRMWARE": "fw-hardware", "DEVICE_MUTE": "fw-mute", "NOTIFICATION": "fw-message", "CHANGE_LOCK_CODE": "fw-security", - "DEVICE_UNLOCK": "fw-lock" + "DEVICE_UNLOCK": "fw-key" }; return featureMap[operationCode]; }; @@ -1226,8 +1234,9 @@ var operationModule = function () { var featureMap = { "DEVICE_LOCK": "fw-lock", "DEVICE_RING": "fw-dial-up", + "DISENROLL": "fw-export", "LOCK_RESET": "fw-key", - "WIPE_DATA": "fw-clear" + "WIPE_DATA": "fw-delete" }; return featureMap[operationCode]; }; @@ -1241,7 +1250,7 @@ var operationModule = function () { var featureMap = { "DEVICE_LOCK": "fw-lock", "LOCATION": "fw-map-location", - "ENTERPRISE_WIPE": "fw-clear", + "ENTERPRISE_WIPE": "fw-block", "NOTIFICATION": "fw-message", "RING": "fw-dial-up" }; @@ -1576,7 +1585,7 @@ var operationModule = function () { var operationCode = operationCodes[i]; var payload = publicMethods.generatePayload(platformType, operationCode, null); - if(platformType == platformTypeConstants["ANDROID"] && + if (platformType == platformTypeConstants["ANDROID"] && operationCodes[i] == androidOperationConstants["CAMERA_OPERATION_CODE"]){ var operations = payload["operation"]; for (var key in operations){ diff --git a/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml b/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml index 7f935ae398..5ec87547a3 100644 --- a/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml +++ b/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml @@ -57,16 +57,17 @@ org.osgi.service.component, org.apache.commons.logging, javax.xml.*, + javax.xml.parsers;version="${javax.xml.parsers.import.pkg.version}";resolution:=optional, org.wso2.carbon.context, org.wso2.carbon.utils.*, org.wso2.carbon.registry.api, org.w3c.dom, - org.apache.velocity, - org.apache.velocity.app, - org.apache.velocity.context, - org.apache.velocity.exception, - org.apache.velocity.runtime.resource, - org.apache.velocity.runtime.resource.loader, + org.apache.velocity;version="${velocity.version}", + org.apache.velocity.app;version="${velocity.version}", + org.apache.velocity.context;version="${velocity.version}", + org.apache.velocity.exception;version="${velocity.version}", + org.apache.velocity.runtime.resource;version="${velocity.version}", + org.apache.velocity.runtime.resource.loader;version="${velocity.version}", org.apache.commons.io, org.apache.axis2.transport.mail, org.wso2.carbon.registry.core.service, @@ -129,7 +130,7 @@ axis2 - org.apache.velocity + org.wso2.orbit.org.apache.velocity velocity diff --git a/components/identity-extensions/dynamic-client-registration/dynamic-client-web-proxy/pom.xml b/components/identity-extensions/dynamic-client-registration/dynamic-client-web-proxy/pom.xml index 2ed10951b6..e9893f43d9 100644 --- a/components/identity-extensions/dynamic-client-registration/dynamic-client-web-proxy/pom.xml +++ b/components/identity-extensions/dynamic-client-registration/dynamic-client-web-proxy/pom.xml @@ -55,16 +55,16 @@ org.wso2.carbon.utils provided - - org.apache.ws.commons.axiom + org.apache.ws.commons.axiom.wso2 axiom diff --git a/components/identity-extensions/dynamic-client-registration/dynamic-client-web/pom.xml b/components/identity-extensions/dynamic-client-registration/dynamic-client-web/pom.xml index aa19fec296..3fe8b932d3 100644 --- a/components/identity-extensions/dynamic-client-registration/dynamic-client-web/pom.xml +++ b/components/identity-extensions/dynamic-client-registration/dynamic-client-web/pom.xml @@ -60,16 +60,16 @@ - - org.apache.ws.commons.axiom + org.apache.ws.commons.axiom.wso2 axiom diff --git a/components/identity-extensions/org.wso2.carbon.device.mgt.oauth.extensions/pom.xml b/components/identity-extensions/org.wso2.carbon.device.mgt.oauth.extensions/pom.xml index 36975e2b21..bb35e62d8c 100644 --- a/components/identity-extensions/org.wso2.carbon.device.mgt.oauth.extensions/pom.xml +++ b/components/identity-extensions/org.wso2.carbon.device.mgt.oauth.extensions/pom.xml @@ -125,7 +125,7 @@ org.wso2.carbon.device.mgt.core.*, javax.xml.bind, javax.xml.bind.annotation, - javax.xml.parsers, + javax.xml.parsers;version="${javax.xml.parsers.import.pkg.version}";resolution:=optional, org.w3c.dom, org.wso2.carbon.apimgt.keymgt, org.wso2.carbon.apimgt.keymgt.handlers, @@ -133,7 +133,7 @@ org.apache.commons.codec.binary, org.wso2.carbon.identity.application.authentication.framework.model, org.apache.oltu.oauth2.common, - org.wso2.carbon.base + org.wso2.carbon.base, diff --git a/components/identity-extensions/org.wso2.carbon.device.mgt.oauth.extensions/src/main/java/org/wso2/carbon/device/mgt/oauth/extensions/internal/OAuthExtensionServiceComponent.java b/components/identity-extensions/org.wso2.carbon.device.mgt.oauth.extensions/src/main/java/org/wso2/carbon/device/mgt/oauth/extensions/internal/OAuthExtensionServiceComponent.java index 8e483bd1a4..d43c86297f 100644 --- a/components/identity-extensions/org.wso2.carbon.device.mgt.oauth.extensions/src/main/java/org/wso2/carbon/device/mgt/oauth/extensions/internal/OAuthExtensionServiceComponent.java +++ b/components/identity-extensions/org.wso2.carbon.device.mgt.oauth.extensions/src/main/java/org/wso2/carbon/device/mgt/oauth/extensions/internal/OAuthExtensionServiceComponent.java @@ -96,7 +96,7 @@ public class OAuthExtensionServiceComponent { List whiteList; // Read scope whitelist from Configuration. - whiteList = configuration.getProperty(APIConstants.API_KEY_MANGER_SCOPE_WHITELIST); + whiteList = configuration.getProperty(APIConstants.WHITELISTED_SCOPES); // If whitelist is null, default scopes will be put. if (whiteList == null) { diff --git a/components/identity-extensions/org.wso2.carbon.identity.jwt.client.extension/pom.xml b/components/identity-extensions/org.wso2.carbon.identity.jwt.client.extension/pom.xml index a445015ce8..160a1cc3c5 100644 --- a/components/identity-extensions/org.wso2.carbon.identity.jwt.client.extension/pom.xml +++ b/components/identity-extensions/org.wso2.carbon.identity.jwt.client.extension/pom.xml @@ -51,8 +51,8 @@ org.wso2.carbon.device.mgt.common - org.apache.ws.commons.axiom - axiom-api + org.apache.ws.commons.axiom.wso2 + axiom org.wso2.carbon @@ -175,4 +175,4 @@ - \ No newline at end of file + diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/monitor/ComplianceDecisionPoint.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/monitor/ComplianceDecisionPoint.java index 8799653fe3..57f52e8fc0 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/monitor/ComplianceDecisionPoint.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/monitor/ComplianceDecisionPoint.java @@ -32,6 +32,8 @@ public interface ComplianceDecisionPoint { void setDevicesAsUnreachable(List deviceIdentifiers) throws PolicyComplianceException; + void setDevicesAsInactive(List deviceIdentifiers) throws PolicyComplianceException; + void setDevicesAsUnreachableWith(List devices) throws PolicyComplianceException; void setDeviceAsReachable(DeviceIdentifier deviceIdentifier) throws PolicyComplianceException; diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/pom.xml b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/pom.xml index 188401fa1c..9808791120 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/pom.xml +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/pom.xml @@ -61,6 +61,7 @@ javax.cache, javax.naming, javax.xml.*, + javax.xml.parsers;version="${javax.xml.parsers.import.pkg.version}";resolution:=optional, org.w3c.dom, org.wso2.carbon.policy.mgt.common.*, org.wso2.carbon.user.core.*, diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/PolicyManagerServiceImpl.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/PolicyManagerServiceImpl.java index 26d896886a..a3079fcb4c 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/PolicyManagerServiceImpl.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/PolicyManagerServiceImpl.java @@ -54,6 +54,8 @@ public class PolicyManagerServiceImpl implements PolicyManagerService { policyAdministratorPoint = new PolicyAdministratorPointImpl(); monitoringManager = new MonitoringManagerImpl(); policyManager = new PolicyManagerImpl(); + PolicyManagementDataHolder.getInstance().setMonitoringManager(monitoringManager); + PolicyManagementDataHolder.getInstance().setPolicyManager(policyManager); } @Override @@ -202,4 +204,4 @@ public class PolicyManagerServiceImpl implements PolicyManagerService { public boolean isCompliance(DeviceIdentifier deviceIdentifier) throws PolicyComplianceException { return monitoringManager.isCompliance(deviceIdentifier); } -} +} \ No newline at end of file diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/MonitoringDAO.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/MonitoringDAO.java index a7f42df06c..c097494d2a 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/MonitoringDAO.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/MonitoringDAO.java @@ -60,9 +60,8 @@ public interface MonitoringDAO { void deleteNoneComplianceData(int policyComplianceStatusId) throws MonitoringDAOException; - void updateAttempts(int deviceId, boolean reset) throws MonitoringDAOException; + boolean updateAttempts(int deviceId, boolean reset) throws MonitoringDAOException; void updateAttempts(List deviceId, boolean reset) throws MonitoringDAOException; - -} +} \ No newline at end of file diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/impl/MonitoringDAOImpl.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/impl/MonitoringDAOImpl.java index 20dac46f78..4a5d0e0bb9 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/impl/MonitoringDAOImpl.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/impl/MonitoringDAOImpl.java @@ -400,7 +400,8 @@ public class MonitoringDAOImpl implements MonitoringDAO { } @Override - public void updateAttempts(int deviceId, boolean reset) throws MonitoringDAOException { + public boolean updateAttempts(int deviceId, boolean reset) throws MonitoringDAOException { + boolean status = false; Connection conn; PreparedStatement stmt = null; Timestamp currentTimestamp = new Timestamp(Calendar.getInstance().getTime().getTime()); @@ -420,11 +421,13 @@ public class MonitoringDAOImpl implements MonitoringDAO { stmt.setInt(2, deviceId); stmt.setInt(3, tenantId); stmt.executeUpdate(); + status = true; } catch (SQLException e) { throw new MonitoringDAOException("Unable to update the attempts data in database.", e); } finally { PolicyManagementDAOUtil.cleanupResources(stmt, null); } + return status; } @Override diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/impl/ComplianceDecisionPointImpl.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/impl/ComplianceDecisionPointImpl.java index 77c00033d4..7baf29bf79 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/impl/ComplianceDecisionPointImpl.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/impl/ComplianceDecisionPointImpl.java @@ -66,6 +66,22 @@ public class ComplianceDecisionPointImpl implements ComplianceDecisionPoint { } + @Override + public void setDevicesAsInactive(List deviceIdentifiers) throws PolicyComplianceException { + try { + DeviceManagementProviderService service = this.getDeviceManagementProviderService(); + for (DeviceIdentifier deviceIdentifier : deviceIdentifiers) { + Device device = service.getDevice(deviceIdentifier); + service.setStatus(deviceIdentifier, device.getEnrolmentInfo().getOwner(), + EnrolmentInfo.Status.INACTIVE); + } + } catch (DeviceManagementException e) { + String msg = "Error occurred while setting the device as inactive"; + log.error(msg, e); + throw new PolicyComplianceException(msg, e); + } + } + @Override public void setDevicesAsUnreachableWith(List devices) throws PolicyComplianceException { try { diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/internal/PolicyManagementDataHolder.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/internal/PolicyManagementDataHolder.java index dd4519eb5b..584bd2ec08 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/internal/PolicyManagementDataHolder.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/internal/PolicyManagementDataHolder.java @@ -23,6 +23,8 @@ import org.wso2.carbon.ntask.core.service.TaskService; import org.wso2.carbon.policy.mgt.common.PolicyEvaluationPoint; import org.wso2.carbon.policy.mgt.common.PolicyInformationPoint; import org.wso2.carbon.policy.mgt.common.spi.PolicyMonitoringService; +import org.wso2.carbon.policy.mgt.core.mgt.MonitoringManager; +import org.wso2.carbon.policy.mgt.core.mgt.PolicyManager; import org.wso2.carbon.user.core.service.RealmService; import org.wso2.carbon.user.core.tenant.TenantManager; @@ -36,6 +38,8 @@ public class PolicyManagementDataHolder { private PolicyEvaluationPoint policyEvaluationPoint; private PolicyInformationPoint policyInformationPoint; private DeviceManagementProviderService deviceManagementService; + private MonitoringManager monitoringManager; + private PolicyManager policyManager; private Map policyMonitoringServiceMap = new HashMap<>(); private TaskService taskService; @@ -47,6 +51,22 @@ public class PolicyManagementDataHolder { return thisInstance; } + public PolicyManager getPolicyManager() { + return policyManager; + } + + public void setPolicyManager(PolicyManager policyManager) { + this.policyManager = policyManager; + } + + public MonitoringManager getMonitoringManager() { + return monitoringManager; + } + + public void setMonitoringManager(MonitoringManager monitoringManager) { + this.monitoringManager = monitoringManager; + } + public RealmService getRealmService() { return realmService; } diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/mgt/MonitoringManager.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/mgt/MonitoringManager.java index 883d49237d..2b6e7d5eae 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/mgt/MonitoringManager.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/mgt/MonitoringManager.java @@ -21,7 +21,6 @@ package org.wso2.carbon.policy.mgt.core.mgt; import org.wso2.carbon.device.mgt.common.Device; import org.wso2.carbon.device.mgt.common.DeviceIdentifier; -import org.wso2.carbon.device.mgt.core.dto.DeviceType; import org.wso2.carbon.policy.mgt.common.monitor.ComplianceData; import org.wso2.carbon.policy.mgt.common.monitor.ComplianceFeature; import org.wso2.carbon.policy.mgt.common.monitor.PolicyComplianceException; @@ -40,6 +39,6 @@ public interface MonitoringManager { void addMonitoringOperation(List devices) throws PolicyComplianceException; - List getDeviceTypes() throws PolicyComplianceException; + List getDeviceTypes() throws PolicyComplianceException; } diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/mgt/impl/MonitoringManagerImpl.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/mgt/impl/MonitoringManagerImpl.java index adebb6ed38..91d16cb01a 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/mgt/impl/MonitoringManagerImpl.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/mgt/impl/MonitoringManagerImpl.java @@ -16,12 +16,10 @@ * under the License. */ - package org.wso2.carbon.policy.mgt.core.mgt.impl; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -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; @@ -30,12 +28,8 @@ import org.wso2.carbon.device.mgt.common.operation.mgt.Operation; import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException; import org.wso2.carbon.device.mgt.core.config.DeviceConfigurationManager; import org.wso2.carbon.device.mgt.core.config.policy.PolicyConfiguration; -import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory; -import org.wso2.carbon.device.mgt.core.dao.DeviceTypeDAO; -import org.wso2.carbon.device.mgt.core.dto.DeviceType; import org.wso2.carbon.device.mgt.core.operation.mgt.CommandOperation; import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService; -import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderServiceImpl; import org.wso2.carbon.policy.mgt.common.Policy; import org.wso2.carbon.policy.mgt.common.PolicyManagementException; import org.wso2.carbon.policy.mgt.common.ProfileFeature; @@ -56,8 +50,6 @@ import java.util.Map; public class MonitoringManagerImpl implements MonitoringManager { private PolicyDAO policyDAO; - // private DeviceDAO deviceDAO; - private DeviceTypeDAO deviceTypeDAO; private MonitoringDAO monitoringDAO; private ComplianceDecisionPoint complianceDecisionPoint; private PolicyConfiguration policyConfiguration; @@ -69,8 +61,6 @@ public class MonitoringManagerImpl implements MonitoringManager { public MonitoringManagerImpl() { this.policyDAO = PolicyManagementDAOFactory.getPolicyDAO(); -// this.deviceDAO = DeviceManagementDAOFactory.getDeviceDAO(); - this.deviceTypeDAO = DeviceManagementDAOFactory.getDeviceTypeDAO(); this.monitoringDAO = PolicyManagementDAOFactory.getMonitoringDAO(); this.complianceDecisionPoint = new ComplianceDecisionPointImpl(); this.policyConfiguration = @@ -84,8 +74,9 @@ public class MonitoringManagerImpl implements MonitoringManager { List complianceFeatures = new ArrayList<>(); try { - DeviceManagementProviderService service = new DeviceManagementProviderServiceImpl(); - PolicyManager manager = new PolicyManagerImpl(); + DeviceManagementProviderService service = + PolicyManagementDataHolder.getInstance().getDeviceManagementService(); + PolicyManager manager = PolicyManagementDataHolder.getInstance().getPolicyManager(); Device device = service.getDevice(deviceIdentifier); Policy policy = manager.getAppliedPolicyToDevice(deviceIdentifier); if (policy != null) { @@ -99,7 +90,7 @@ public class MonitoringManagerImpl implements MonitoringManager { PolicyManagementDAOFactory.openConnection(); ComplianceData cmd = monitoringDAO.getCompliance(device.getId(), device.getEnrolmentInfo().getId()); complianceData = monitoringService.checkPolicyCompliance(deviceIdentifier, - policy, deviceResponse); + policy, deviceResponse); complianceData.setId(cmd.getId()); complianceData.setPolicy(policy); @@ -109,8 +100,9 @@ public class MonitoringManagerImpl implements MonitoringManager { } catch (SQLException e) { throw new PolicyComplianceException("Error occurred while opening a data source connection", e); } catch (MonitoringDAOException e) { - throw new PolicyComplianceException("Unable to add the none compliance features to database for device " + - deviceIdentifier.getId() + " - " + deviceIdentifier.getType(), e); + throw new PolicyComplianceException( + "Unable to add the none compliance features to database for device " + + deviceIdentifier.getId() + " - " + deviceIdentifier.getType(), e); } finally { PolicyManagementDAOFactory.closeConnection(); } @@ -121,19 +113,20 @@ public class MonitoringManagerImpl implements MonitoringManager { try { PolicyManagementDAOFactory.beginTransaction(); monitoringDAO.setDeviceAsNoneCompliance(device.getId(), device.getEnrolmentInfo().getId(), - policy.getId()); + policy.getId()); if (log.isDebugEnabled()) { log.debug("Compliance status primary key " + complianceData.getId()); } monitoringDAO.deleteNoneComplianceData(complianceData.getId()); monitoringDAO.addNonComplianceFeatures(complianceData.getId(), device.getId(), - complianceFeatures); + complianceFeatures); PolicyManagementDAOFactory.commitTransaction(); } catch (MonitoringDAOException e) { PolicyManagementDAOFactory.rollbackTransaction(); - throw new PolicyComplianceException("Unable to add the none compliance features to database for device " + - deviceIdentifier.getId() + " - " + deviceIdentifier.getType(), e); + throw new PolicyComplianceException( + "Unable to add the none compliance features to database for device " + + deviceIdentifier.getId() + " - " + deviceIdentifier.getType(), e); } finally { PolicyManagementDAOFactory.closeConnection(); } @@ -155,8 +148,9 @@ public class MonitoringManagerImpl implements MonitoringManager { PolicyManagementDAOFactory.commitTransaction(); } catch (MonitoringDAOException e) { PolicyManagementDAOFactory.rollbackTransaction(); - throw new PolicyComplianceException("Unable to remove the none compliance features from database for device " + - deviceIdentifier.getId() + " - " + deviceIdentifier.getType(), e); + throw new PolicyComplianceException( + "Unable to remove the none compliance features from database for device " + + deviceIdentifier.getId() + " - " + deviceIdentifier.getType(), e); } finally { PolicyManagementDAOFactory.closeConnection(); } @@ -168,10 +162,10 @@ public class MonitoringManagerImpl implements MonitoringManager { } } catch (DeviceManagementException e) { throw new PolicyComplianceException("Unable tor retrieve device data from DB for " + - deviceIdentifier.getId() + " - " + deviceIdentifier.getType(), e); + deviceIdentifier.getId() + " - " + deviceIdentifier.getType(), e); } catch (PolicyManagerDAOException | PolicyManagementException e) { throw new PolicyComplianceException("Unable tor retrieve policy data from DB for device " + - deviceIdentifier.getId() + " - " + deviceIdentifier.getType(), e); + deviceIdentifier.getId() + " - " + deviceIdentifier.getType(), e); } return complianceFeatures; } @@ -179,21 +173,22 @@ public class MonitoringManagerImpl implements MonitoringManager { @Override public boolean isCompliance(DeviceIdentifier deviceIdentifier) throws PolicyComplianceException { try { - DeviceManagementProviderService service = new DeviceManagementProviderServiceImpl(); + DeviceManagementProviderService service = + PolicyManagementDataHolder.getInstance().getDeviceManagementService(); Device device = service.getDevice(deviceIdentifier); PolicyManagementDAOFactory.openConnection(); ComplianceData complianceData = monitoringDAO.getCompliance(device.getId(), device.getEnrolmentInfo() - .getId()); + .getId()); if (complianceData == null || !complianceData.isStatus()) { return false; } } catch (DeviceManagementException e) { throw new PolicyComplianceException("Unable to retrieve device data for " + deviceIdentifier.getId() + - " - " + deviceIdentifier.getType(), e); + " - " + deviceIdentifier.getType(), e); } catch (MonitoringDAOException e) { throw new PolicyComplianceException("Unable to retrieve compliance status for " + deviceIdentifier.getId() + - " - " + deviceIdentifier.getType(), e); + " - " + deviceIdentifier.getType(), e); } catch (SQLException e) { throw new PolicyComplianceException("Error occurred while opening a connection to the data source", e); } finally { @@ -204,12 +199,12 @@ public class MonitoringManagerImpl implements MonitoringManager { @Override public ComplianceData getDevicePolicyCompliance(DeviceIdentifier deviceIdentifier) throws - PolicyComplianceException { - + PolicyComplianceException { ComplianceData complianceData; try { PolicyManagementDAOFactory.openConnection(); - DeviceManagementProviderService service = new DeviceManagementProviderServiceImpl(); + DeviceManagementProviderService service = + PolicyManagementDataHolder.getInstance().getDeviceManagementService(); Device device = service.getDevice(deviceIdentifier); complianceData = monitoringDAO.getCompliance(device.getId(), device.getEnrolmentInfo().getId()); List complianceFeatures = @@ -218,11 +213,11 @@ public class MonitoringManagerImpl implements MonitoringManager { } catch (DeviceManagementException e) { throw new PolicyComplianceException("Unable to retrieve device data for " + deviceIdentifier.getId() + - " - " + deviceIdentifier.getType(), e); + " - " + deviceIdentifier.getType(), e); } catch (MonitoringDAOException e) { throw new PolicyComplianceException("Unable to retrieve compliance data for " + deviceIdentifier.getId() + - " - " + deviceIdentifier.getType(), e); + " - " + deviceIdentifier.getType(), e); } catch (SQLException e) { throw new PolicyComplianceException("Error occurred while opening a connection to the data source", e); } finally { @@ -241,6 +236,7 @@ public class MonitoringManagerImpl implements MonitoringManager { try { PolicyManagementDAOFactory.openConnection(); + //TODO: Return a map from getCompliance to reduce O(n^2) -> O(n) List cd = monitoringDAO.getCompliance(); for (Device device : devices) { @@ -275,7 +271,7 @@ public class MonitoringManagerImpl implements MonitoringManager { Map deviceIdsToAddOperation = new HashMap<>(); Map deviceIdsWithExistingOperation = new HashMap<>(); Map inactiveDeviceIds = new HashMap<>(); - Map deviceToMarkUnreachable = new HashMap<>(); + Map devicesToMarkUnreachable = new HashMap<>(); //Map firstTimeDeviceIdsWithPolicyIds = new HashMap<>(); List firstTimeDevices = new ArrayList<>(); @@ -290,18 +286,18 @@ public class MonitoringManagerImpl implements MonitoringManager { if (complianceData.getAttempts() == 0) { deviceIdsToAddOperation.put(complianceData.getDeviceId(), - deviceIds.get(complianceData.getDeviceId())); + deviceIds.get(complianceData.getDeviceId())); } else { deviceIdsWithExistingOperation.put(complianceData.getDeviceId(), - deviceIds.get(complianceData.getDeviceId())); + deviceIds.get(complianceData.getDeviceId())); if (complianceData.getAttempts() >= policyConfiguration.getMinRetriesToMarkUnreachable()) { - deviceToMarkUnreachable.put(complianceData.getDeviceId(), - deviceIds.get(complianceData.getDeviceId())); + devicesToMarkUnreachable.put(complianceData.getDeviceId(), + deviceIds.get(complianceData.getDeviceId())); } } if (complianceData.getAttempts() >= policyConfiguration.getMinRetriesToMarkInactive()) { inactiveDeviceIds.put(complianceData.getDeviceId(), - deviceIds.get(complianceData.getDeviceId())); + deviceIds.get(complianceData.getDeviceId())); } } } @@ -325,14 +321,14 @@ public class MonitoringManagerImpl implements MonitoringManager { log.debug("These devices are in the system for the first time"); for (PolicyDeviceWrapper wrapper : firstTimeDevices) { log.debug("First time device primary key : " + wrapper.getDeviceId() + " & policy id " + - wrapper.getPolicyId()); + wrapper.getPolicyId()); } } PolicyManagementDAOFactory.beginTransaction(); if (!deviceIdsToAddOperation.isEmpty()) { -// monitoringDAO.addComplianceDetails(firstTimeDeviceIdsWithPolicyIds); + // monitoringDAO.addComplianceDetails(firstTimeDeviceIdsWithPolicyIds); monitoringDAO.addComplianceDetails(firstTimeDevices); monitoringDAO.updateAttempts(new ArrayList<>(deviceIdsToAddOperation.keySet()), false); } @@ -365,26 +361,29 @@ public class MonitoringManagerImpl implements MonitoringManager { // TODO : This should be uncommented, this is to mark the device as unreachable, But given the current // implementation we are not able to do so. -// if(!deviceToMarkUnreachable.isEmpty()) { -// ComplianceDecisionPoint decisionPoint = new ComplianceDecisionPointImpl(); -// decisionPoint.setDevicesAsUnreachable(this.getDeviceIdentifiersFromDevices( -// new ArrayList<>(deviceToMarkUnreachable.values()))); -// } + if (!devicesToMarkUnreachable.isEmpty()) { + ComplianceDecisionPoint decisionPoint = new ComplianceDecisionPointImpl(); + decisionPoint.setDevicesAsUnreachable(this.getDeviceIdentifiersFromDevices( + new ArrayList<>(devicesToMarkUnreachable.values()))); + } + + if (!inactiveDeviceIds.isEmpty()) { + ComplianceDecisionPoint decisionPoint = new ComplianceDecisionPointImpl(); + decisionPoint.setDevicesAsInactive(this.getDeviceIdentifiersFromDevices( + new ArrayList<>(inactiveDeviceIds.values()))); + } } @Override - public List getDeviceTypes() throws PolicyComplianceException { + public List getDeviceTypes() throws PolicyComplianceException { - List deviceTypes = new ArrayList<>(); + List deviceTypes = new ArrayList<>(); try { - DeviceManagementDAOFactory.openConnection(); - int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); - deviceTypes = deviceTypeDAO.getDeviceTypes(tenantId); - } catch (Exception e) { - log.error("Error occurred while getting the device types.", e); - } finally { - DeviceManagementDAOFactory.closeConnection(); + deviceTypes = + PolicyManagementDataHolder.getInstance().getDeviceManagementService().getAvailableDeviceTypes(); + } catch (DeviceManagementException e) { + throw new PolicyComplianceException("Error occurred while getting the device types.", e); } return deviceTypes; } @@ -397,14 +396,14 @@ public class MonitoringManagerImpl implements MonitoringManager { monitoringOperation.setEnabled(true); monitoringOperation.setType(Operation.Type.COMMAND); monitoringOperation.setCode(OPERATION_MONITOR); -// CommandOperation infoOperation = new CommandOperation(); -// infoOperation.setEnabled(true); -// infoOperation.setType(Operation.Type.COMMAND);\\ -// infoOperation.setCode(OPERATION_INFO); -// CommandOperation appListOperation = new CommandOperation(); -// appListOperation.setEnabled(true); -// appListOperation.setType(Operation.Type.COMMAND); -// appListOperation.setCode(OPERATION_APP_LIST); + // CommandOperation infoOperation = new CommandOperation(); + // infoOperation.setEnabled(true); + // infoOperation.setType(Operation.Type.COMMAND);\\ + // infoOperation.setCode(OPERATION_INFO); + // CommandOperation appListOperation = new CommandOperation(); + // appListOperation.setEnabled(true); + // appListOperation.setType(Operation.Type.COMMAND); + // appListOperation.setCode(OPERATION_APP_LIST); //TODO: Fix this properly later adding device type to be passed in when the task manage executes "addOperations()" String type = null; @@ -413,8 +412,8 @@ public class MonitoringManagerImpl implements MonitoringManager { } DeviceManagementProviderService service = PolicyManagementDataHolder.getInstance().getDeviceManagementService(); service.addOperation(type, monitoringOperation, deviceIdentifiers); -// service.addOperation(infoOperation, deviceIdentifiers); -// service.addOperation(appListOperation, deviceIdentifiers); + // service.addOperation(infoOperation, deviceIdentifiers); + // service.addOperation(appListOperation, deviceIdentifiers); } private List getDeviceIdentifiersFromDevices(List devices) { diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/mgt/impl/PolicyManagerImpl.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/mgt/impl/PolicyManagerImpl.java index a8e8250c56..3c390780e6 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/mgt/impl/PolicyManagerImpl.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/mgt/impl/PolicyManagerImpl.java @@ -26,9 +26,6 @@ import org.wso2.carbon.device.mgt.common.DeviceIdentifier; import org.wso2.carbon.device.mgt.common.DeviceManagementException; 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.core.dao.DeviceDAO; -import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory; -import org.wso2.carbon.device.mgt.core.dto.DeviceType; import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService; import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderServiceImpl; import org.wso2.carbon.device.mgt.core.service.GroupManagementProviderService; @@ -50,14 +47,12 @@ public class PolicyManagerImpl implements PolicyManager { private ProfileDAO profileDAO; private FeatureDAO featureDAO; private ProfileManager profileManager; - private DeviceDAO deviceDAO; private static Log log = LogFactory.getLog(PolicyManagerImpl.class); public PolicyManagerImpl() { this.policyDAO = PolicyManagementDAOFactory.getPolicyDAO(); this.profileDAO = PolicyManagementDAOFactory.getProfileDAO(); this.featureDAO = PolicyManagementDAOFactory.getFeatureDAO(); - this.deviceDAO = DeviceManagementDAOFactory.getDeviceDAO(); this.profileManager = new ProfileManagerImpl(); } diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/service/PolicyManagementService.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/service/PolicyManagementService.java deleted file mode 100644 index 5ed2bf0f65..0000000000 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/service/PolicyManagementService.java +++ /dev/null @@ -1,146 +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.policy.mgt.core.service; - -import org.wso2.carbon.device.mgt.common.DeviceIdentifier; -import org.wso2.carbon.device.mgt.common.Feature; -import org.wso2.carbon.policy.mgt.common.*; -import org.wso2.carbon.policy.mgt.common.monitor.ComplianceData; -import org.wso2.carbon.policy.mgt.common.monitor.ComplianceFeature; -import org.wso2.carbon.policy.mgt.common.monitor.PolicyComplianceException; -import org.wso2.carbon.policy.mgt.core.PolicyManagerService; -import org.wso2.carbon.policy.mgt.core.PolicyManagerServiceImpl; -import org.wso2.carbon.policy.mgt.core.task.TaskScheduleService; - -import java.util.List; - -public class PolicyManagementService implements PolicyManagerService { - - - PolicyManagerService policyManagerService; - - public PolicyManagementService() { - policyManagerService = new PolicyManagerServiceImpl(); - } - - - @Override - public Profile addProfile(Profile profile) throws PolicyManagementException { - return policyManagerService.addProfile(profile); - } - - @Override - public Profile updateProfile(Profile profile) throws PolicyManagementException { - return policyManagerService.updateProfile(profile); - } - - @Override - public Policy addPolicy(Policy policy) throws PolicyManagementException { - return policyManagerService.addPolicy(policy); - } - - @Override - public Policy updatePolicy(Policy policy) throws PolicyManagementException { - return policyManagerService.updatePolicy(policy); - } - - @Override - public boolean deletePolicy(Policy policy) throws PolicyManagementException { - return policyManagerService.deletePolicy(policy); - } - - @Override - public boolean deletePolicy(int policyId) throws PolicyManagementException { - return policyManagerService.deletePolicy(policyId); - } - - @Override - public Policy getEffectivePolicy(DeviceIdentifier deviceIdentifier) throws PolicyManagementException { - return policyManagerService.getEffectivePolicy(deviceIdentifier); - } - - @Override - public List getEffectiveFeatures(DeviceIdentifier deviceIdentifier) throws - FeatureManagementException { - return policyManagerService.getEffectiveFeatures(deviceIdentifier); - } - - @Override - public List getPolicies(String deviceType) throws PolicyManagementException { - return policyManagerService.getPolicies(deviceType); - } - - @Override - public List getFeatures() throws FeatureManagementException { - return policyManagerService.getFeatures(); - } - - @Override - public PolicyAdministratorPoint getPAP() throws PolicyManagementException { - return policyManagerService.getPAP(); - } - - @Override - public PolicyInformationPoint getPIP() throws PolicyManagementException { - return policyManagerService.getPIP(); - } - - @Override - public PolicyEvaluationPoint getPEP() throws PolicyManagementException { - return policyManagerService.getPEP(); - } - - @Override - public TaskScheduleService getTaskScheduleService() throws PolicyMonitoringTaskException { - return policyManagerService.getTaskScheduleService(); - } - - @Override - public int getPolicyCount() throws PolicyManagementException { - return policyManagerService.getPolicyCount(); - } - - @Override - public Policy getAppliedPolicyToDevice( - DeviceIdentifier deviceIdentifier) throws PolicyManagementException { - return policyManagerService.getAppliedPolicyToDevice(deviceIdentifier); - } - - @Override - public List checkPolicyCompliance(DeviceIdentifier deviceIdentifier, Object - deviceResponse) throws PolicyComplianceException { - return policyManagerService.checkPolicyCompliance(deviceIdentifier, deviceResponse); - } - - @Override - public boolean checkCompliance(DeviceIdentifier deviceIdentifier, Object response) throws - PolicyComplianceException { - return policyManagerService.checkCompliance(deviceIdentifier, response); - } - - @Override - public ComplianceData getDeviceCompliance(DeviceIdentifier deviceIdentifier) throws PolicyComplianceException { - return policyManagerService.getDeviceCompliance(deviceIdentifier); - } - - @Override - public boolean isCompliance(DeviceIdentifier deviceIdentifier) throws PolicyComplianceException { - return policyManagerService.isCompliance(deviceIdentifier); - } -} diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/task/MonitoringTask.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/task/MonitoringTask.java index 09987a5d19..492e771acd 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/task/MonitoringTask.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/task/MonitoringTask.java @@ -40,7 +40,6 @@ import java.util.Map; public class MonitoringTask implements Task { - private DeviceTypeDAO deviceTypeDAO; private static Log log = LogFactory.getLog(MonitoringTask.class); Map properties; @@ -53,7 +52,6 @@ public class MonitoringTask implements Task { @Override public void init() { - deviceTypeDAO = DeviceManagementDAOFactory.getDeviceTypeDAO(); } @Override @@ -63,9 +61,9 @@ public class MonitoringTask implements Task { log.debug("Monitoring task started to run."); } - MonitoringManager monitoringManager = new MonitoringManagerImpl(); + MonitoringManager monitoringManager = PolicyManagementDataHolder.getInstance().getMonitoringManager(); - List deviceTypes = new ArrayList<>(); + List deviceTypes = new ArrayList<>(); try { deviceTypes = monitoringManager.getDeviceTypes(); } catch (PolicyComplianceException e) { @@ -79,15 +77,15 @@ public class MonitoringTask implements Task { DeviceManagementProviderService deviceManagementProviderService = PolicyManagementDataHolder.getInstance().getDeviceManagementService(); - for (DeviceType deviceType : deviceTypes) { + for (String deviceType : deviceTypes) { if (log.isDebugEnabled()) { - log.debug("Running task for device type : " + deviceType.getName()); + log.debug("Running task for device type : " + deviceType); } PolicyMonitoringService monitoringService = - PolicyManagementDataHolder.getInstance().getPolicyMonitoringService(deviceType.getName()); - List devices = deviceManagementProviderService.getAllDevices(deviceType.getName()); + PolicyManagementDataHolder.getInstance().getPolicyMonitoringService(deviceType); + List devices = deviceManagementProviderService.getAllDevices(deviceType); if (monitoringService != null && !devices.isEmpty()) { @@ -95,12 +93,11 @@ public class MonitoringTask implements Task { if (log.isDebugEnabled()) { log.debug("Removing inactive and blocked devices from the list for the device type : " + - deviceType.getName()); + deviceType); } for (Device device : devices) { EnrolmentInfo.Status status = device.getEnrolmentInfo().getStatus(); - if (status.equals(EnrolmentInfo.Status.INACTIVE) || - status.equals(EnrolmentInfo.Status.BLOCKED) || + if (status.equals(EnrolmentInfo.Status.BLOCKED) || status.equals(EnrolmentInfo.Status.REMOVED) || status.equals(EnrolmentInfo.Status.UNCLAIMED) || status.equals(EnrolmentInfo.Status.DISENROLLMENT_REQUESTED) || @@ -111,8 +108,7 @@ public class MonitoringTask implements Task { } } if (log.isDebugEnabled()) { - log.debug("Following devices selected to send the notification for " + - deviceType.getName()); + log.debug("Following devices selected to send the notification for " + deviceType); for (Device device : notifiableDevices) { log.debug(device.getDeviceIdentifier()); } diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/util/PolicyManagerUtil.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/util/PolicyManagerUtil.java index d0d9fce352..e5c983ed6f 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/util/PolicyManagerUtil.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/util/PolicyManagerUtil.java @@ -22,6 +22,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.w3c.dom.Document; import org.wso2.carbon.device.mgt.common.Device; +import org.wso2.carbon.device.mgt.common.DeviceIdentifier; import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry; import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException; import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration; diff --git a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/pom.xml b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/pom.xml index eaad6cbdb0..a277d16e17 100644 --- a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/pom.xml +++ b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/pom.xml @@ -61,9 +61,8 @@ com.nimbusds.jwt, javax.xml.bind, javax.xml.bind.annotation, - javax.xml.parsers, + javax.xml.parsers;version="${javax.xml.parsers.import.pkg.version}";resolution:=optional, javax.xml.validation, - org.apache.axiom.util.base64, org.apache.catalina, org.apache.catalina.connector, org.apache.catalina.util, @@ -110,13 +109,9 @@ org.apache.commons.pool.impl, org.apache.http.conn, org.apache.http.impl.conn, - javax.xml.soap, + javax.xml.soap; version="${javax.xml.soap.imp.pkg.version}", javax.xml.stream, - org.apache.axiom.soap, - org.apache.axiom.soap.impl.builder, - org.apache.axiom.om, - org.apache.axiom.om.impl.builder, - org.apache.axiom.om.util, + org.apache.axiom.*; version="${axiom.osgi.version.range}", org.wso2.carbon.registry.core.*, org.wso2.carbon.registry.common.*;version="${carbon.registry.imp.pkg.version.range}", org.wso2.carbon.registry.indexing.*; version="${carbon.registry.imp.pkg.version.range}", @@ -166,10 +161,10 @@ org.wso2.carbon org.wso2.carbon.tomcat.ext - + org.wso2.carbon.identity org.wso2.carbon.identity.base diff --git a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/AuthenticationFrameworkUtil.java b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/AuthenticationFrameworkUtil.java index 81629eedb5..8a44108ee8 100644 --- a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/AuthenticationFrameworkUtil.java +++ b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/AuthenticationFrameworkUtil.java @@ -57,7 +57,7 @@ public class AuthenticationFrameworkUtil { } APITokenValidator tokenValidator = new APITokenValidator(); APIKeyValidationInfoDTO apiKeyValidationDTO = tokenValidator.validateKey(context, version, accessToken, - requiredAuthenticationLevel, clientDomain); + requiredAuthenticationLevel); if (apiKeyValidationDTO.isAuthorized()) { String username = apiKeyValidationDTO.getEndUserName(); PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(username); diff --git a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.server.feature/pom.xml b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.server.feature/pom.xml index b7f77ec3f2..f1a604364d 100644 --- a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.server.feature/pom.xml +++ b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.server.feature/pom.xml @@ -41,19 +41,15 @@ org.wso2.carbon.certificate.mgt.core - org.bouncycastle.wso2 + org.wso2.orbit.org.bouncycastle bcprov-jdk15on - org.bouncycastle.wso2 + org.wso2.orbit.org.bouncycastle bcpkix-jdk15on - org.bouncycastle.wso2 - bcmail-jdk15on - - - com.google.code.jscep.wso2 + org.wso2.orbit.com.google.code.jscep jscep @@ -68,6 +64,10 @@ commons-codec.wso2 commons-codec + + org.wso2.carbon.registry + org.wso2.carbon.registry.indexing + @@ -122,16 +122,10 @@ org.wso2.carbon.devicemgt:org.wso2.carbon.certificate.mgt.core:${carbon.device.mgt.version} - org.bouncycastle.wso2:bcprov-jdk15on:${bcprov.wso2.version} - - - org.bouncycastle.wso2:bcpkix-jdk15on:${bcpkix.wso2.version} - - - org.bouncycastle.wso2:bcmail-jdk15on:${bcmail.wso2.version} + org.wso2.orbit.org.bouncycastle:bcpkix-jdk15on:${bcpkix.wso2.version} - com.google.code.jscep.wso2:jscep:${jscep.version} + org.wso2.orbit.com.google.code.jscep:jscep:${jscep.version} commons-io.wso2:commons-io:${version.commons.io} @@ -146,6 +140,9 @@ org.wso2.carbon.core.server:${carbon.kernel.version} + + org.wso2.carbon.registry:org.wso2.carbon.registry.indexing:${carbon.registry.version} + diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher.feature/pom.xml index 495a2270da..ab337ae592 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher.feature/pom.xml +++ b/features/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher.feature/pom.xml @@ -39,6 +39,14 @@ org.wso2.carbon.devicemgt org.wso2.carbon.device.mgt.analytics.data.publisher + + org.wso2.carbon.registry + org.wso2.carbon.registry.indexing + + + org.wso2.carbon.registry + org.wso2.carbon.registry.common + @@ -96,6 +104,10 @@ org.wso2.carbon.core.server:${carbon.kernel.version} + + org.wso2.carbon.registry:org.wso2.carbon.registry.indexing:${carbon.registry.version} + org.wso2.carbon.registry:org.wso2.carbon.registry.common:${carbon.registry.version} + diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.extensions.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.extensions.feature/pom.xml index 2fa701b17f..e3185c2811 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.extensions.feature/pom.xml +++ b/features/device-mgt/org.wso2.carbon.device.mgt.extensions.feature/pom.xml @@ -86,7 +86,7 @@ org.wso2.carbon.core.server:${carbon.kernel.version} - org.wso2.carbon.governance.metadata:${carbon.governance.version} + org.wso2.carbon.governance.metadata.server:${carbon.governance.version} diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.feature/pom.xml index eb742a5f81..67c4c8d917 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.feature/pom.xml +++ b/features/device-mgt/org.wso2.carbon.device.mgt.feature/pom.xml @@ -44,6 +44,10 @@ org.wso2.carbon.device.mgt.ui.feature zip + + javax.servlet.jsp + javax.servlet.jsp-api + @@ -70,6 +74,9 @@ org.wso2.carbon.devicemgt:org.wso2.carbon.device.mgt.server.feature:${carbon.device.mgt.version} org.wso2.carbon.devicemgt:org.wso2.carbon.device.mgt.ui.feature:${carbon.device.mgt.version} + + javax.servlet.jsp:javax.servlet.jsp-api + diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/pom.xml index 40a8e2760d..fbcb139624 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/pom.xml +++ b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/pom.xml @@ -53,10 +53,10 @@ org.wso2.orbit.org.apache.pdfbox pdfbox - - - - + + org.wso2.carbon.registry + org.wso2.carbon.registry.indexing + @@ -122,20 +122,22 @@ - org.wso2.carbon.identity:org.wso2.carbon.identity.oauth.stub:${carbon.identity.version} + org.wso2.carbon.identity:org.wso2.carbon.identity.oauth.stub:${identity.inbound.auth.oauth.version} com.fasterxml.jackson.core:jackson-annotations:${jackson-annotations.version} - + org.wso2.carbon.apimgt:org.wso2.carbon.apimgt.keymgt:${carbon.api.mgt.version} org.wso2.orbit.org.apache.pdfbox:pdfbox:${orbit.version.pdfbox} + org.wso2.carbon.registry:org.wso2.carbon.registry.indexing:${carbon.registry.version} org.wso2.carbon.core.server:${carbon.kernel.version} org.wso2.carbon.apimgt.core:${carbon.api.mgt.version} + org.wso2.carbon.device.mgt.extensions:${carbon.device.mgt.version} org.wso2.carbon.email.sender:${carbon.device.mgt.version} diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/h2.sql b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/h2.sql index 4684ec127c..d561d89e88 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/h2.sql +++ b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/h2.sql @@ -370,7 +370,7 @@ CREATE TABLE IF NOT EXISTS DM_NOTIFICATION ( OPERATION_ID INTEGER NOT NULL, TENANT_ID INTEGER NOT NULL, STATUS VARCHAR(10) NULL, - DESCRIPTION VARCHAR(100) NULL, + DESCRIPTION VARCHAR(1000) NULL, PRIMARY KEY (NOTIFICATION_ID), CONSTRAINT fk_dm_device_notification FOREIGN KEY (DEVICE_ID) REFERENCES DM_DEVICE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION, diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/mssql.sql b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/mssql.sql index 1f62c3fccf..e54e5705ca 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/mssql.sql +++ b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/mssql.sql @@ -367,7 +367,7 @@ CREATE TABLE DM_NOTIFICATION ( OPERATION_ID INTEGER NOT NULL, TENANT_ID INTEGER NOT NULL, STATUS VARCHAR(10) NULL, - DESCRIPTION VARCHAR(100) NULL, + DESCRIPTION VARCHAR(1000) NULL, PRIMARY KEY (NOTIFICATION_ID), CONSTRAINT FL_DM_NOTIFICATION FOREIGN KEY (DEVICE_ID) REFERENCES DM_DEVICE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION, @@ -435,3 +435,68 @@ CREATE TABLE DM_DEVICE_DETAIL ( ON DELETE NO ACTION ON UPDATE NO ACTION ); +GO + +-- DASHBOARD RELATED VIEWS -- + +CREATE VIEW POLICY_COMPLIANCE_INFO AS +SELECT TOP 100 PERCENT +DEVICE_INFO.DEVICE_ID, +DEVICE_INFO.DEVICE_IDENTIFICATION, +DEVICE_INFO.PLATFORM, +DEVICE_INFO.OWNERSHIP, +DEVICE_INFO.CONNECTIVITY_STATUS, +ISNULL(DEVICE_WITH_POLICY_INFO.POLICY_ID, -1) AS POLICY_ID, +ISNULL(DEVICE_WITH_POLICY_INFO.IS_COMPLIANT, -1) AS +IS_COMPLIANT, +DEVICE_INFO.TENANT_ID +FROM +(SELECT +DM_DEVICE.ID AS DEVICE_ID, +DM_DEVICE.DEVICE_IDENTIFICATION, +DM_DEVICE_TYPE.NAME AS PLATFORM, +DM_ENROLMENT.OWNERSHIP, +DM_ENROLMENT.STATUS AS CONNECTIVITY_STATUS, +DM_DEVICE.TENANT_ID +FROM DM_DEVICE, DM_DEVICE_TYPE, DM_ENROLMENT +WHERE DM_DEVICE.DEVICE_TYPE_ID = DM_DEVICE_TYPE.ID AND DM_DEVICE.ID = DM_ENROLMENT.DEVICE_ID) DEVICE_INFO +LEFT JOIN +(SELECT +DEVICE_ID, +POLICY_ID, +STATUS AS IS_COMPLIANT +FROM +DM_POLICY_COMPLIANCE_STATUS) DEVICE_WITH_POLICY_INFO +ON DEVICE_INFO.DEVICE_ID = DEVICE_WITH_POLICY_INFO.DEVICE_ID +ORDER BY DEVICE_INFO.DEVICE_ID; +GO + +CREATE VIEW FEATURE_NON_COMPLIANCE_INFO AS +SELECT TOP 100 PERCENT +DM_DEVICE.ID AS DEVICE_ID, +DM_DEVICE.DEVICE_IDENTIFICATION, +DM_DEVICE_DETAIL.DEVICE_MODEL, +DM_DEVICE_DETAIL.VENDOR, +DM_DEVICE_DETAIL.OS_VERSION, +DM_ENROLMENT.OWNERSHIP, +DM_ENROLMENT.OWNER, +DM_ENROLMENT.STATUS AS CONNECTIVITY_STATUS, +DM_POLICY_COMPLIANCE_STATUS.POLICY_ID, +DM_DEVICE_TYPE.NAME +AS PLATFORM, +DM_POLICY_COMPLIANCE_FEATURES.FEATURE_CODE, +DM_POLICY_COMPLIANCE_FEATURES.STATUS AS IS_COMPLAINT, +DM_DEVICE.TENANT_ID +FROM +DM_POLICY_COMPLIANCE_FEATURES, DM_POLICY_COMPLIANCE_STATUS, DM_ENROLMENT, DM_DEVICE, DM_DEVICE_TYPE, DM_DEVICE_DETAIL +WHERE +DM_POLICY_COMPLIANCE_FEATURES.COMPLIANCE_STATUS_ID = DM_POLICY_COMPLIANCE_STATUS.ID AND +DM_POLICY_COMPLIANCE_STATUS.ENROLMENT_ID = +DM_ENROLMENT.ID AND +DM_POLICY_COMPLIANCE_STATUS.DEVICE_ID = DM_DEVICE.ID AND +DM_DEVICE.DEVICE_TYPE_ID = DM_DEVICE_TYPE.ID AND +DM_DEVICE.ID = DM_DEVICE_DETAIL.DEVICE_ID +ORDER BY TENANT_ID, DEVICE_ID; +GO + +-- END OF DASHBOARD RELATED VIEWS -- diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/mysql.sql b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/mysql.sql index e8cb6f4f27..0bb2700f76 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/mysql.sql +++ b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/mysql.sql @@ -428,7 +428,7 @@ CREATE TABLE IF NOT EXISTS DM_NOTIFICATION ( OPERATION_ID INTEGER NOT NULL, TENANT_ID INTEGER NOT NULL, STATUS VARCHAR(10) NULL, - DESCRIPTION VARCHAR(100) NULL, + DESCRIPTION VARCHAR(1000) NULL, PRIMARY KEY (NOTIFICATION_ID), CONSTRAINT fk_dm_device_notification FOREIGN KEY (DEVICE_ID) REFERENCES DM_DEVICE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION, diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/oracle.sql b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/oracle.sql index c49d530140..39785fc532 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/oracle.sql +++ b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/oracle.sql @@ -436,7 +436,7 @@ CREATE TABLE DM_DEVICE_POLICY_APPLIED ( POLICY_ID NUMBER(10) NOT NULL , POLICY_CONTENT BLOB NULL , TENANT_ID NUMBER(10) NOT NULL, - APPLIED NUMBER(3) NULL , + APPLIED BOOLEAN NULL , CREATED_TIME TIMESTAMP(0) NULL , UPDATED_TIME TIMESTAMP(0) NULL , APPLIED_TIME TIMESTAMP(0) NULL , @@ -706,7 +706,7 @@ CREATE TABLE DM_NOTIFICATION ( OPERATION_ID NUMBER(10) NOT NULL, TENANT_ID NUMBER(10) NOT NULL, STATUS VARCHAR2(10) NULL, - DESCRIPTION VARCHAR2(100) NULL, + DESCRIPTION VARCHAR2(1000) NULL, CONSTRAINT PK_DM_NOTIFICATION PRIMARY KEY (NOTIFICATION_ID), CONSTRAINT FK_DM_DEVICE_NOTIFICATION FOREIGN KEY (DEVICE_ID) REFERENCES DM_DEVICE (ID), diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/postgresql.sql b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/postgresql.sql index 828eca58cb..54489b8157 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/postgresql.sql +++ b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/postgresql.sql @@ -222,11 +222,11 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_POLICY_APPLIED ( POLICY_ID INTEGER NOT NULL , POLICY_CONTENT BYTEA NULL , TENANT_ID INTEGER NOT NULL, - APPLIED INTEGER[1] NULL , + APPLIED BOOLEAN NULL , CREATED_TIME TIMESTAMP NULL , UPDATED_TIME TIMESTAMP NULL , APPLIED_TIME TIMESTAMP NULL , - CONSTRAINT FK_DM_POLICY_DEVCIE_APPLIED + CONSTRAINT FK_DM_POLICY_DEVICE_APPLIED FOREIGN KEY (DEVICE_ID ) REFERENCES DM_DEVICE (ID ) ON DELETE NO ACTION @@ -409,7 +409,7 @@ CREATE TABLE IF NOT EXISTS DM_NOTIFICATION ( OPERATION_ID INTEGER NOT NULL, TENANT_ID INTEGER NOT NULL, STATUS VARCHAR(10) NULL, - DESCRIPTION VARCHAR(100) NULL, + DESCRIPTION VARCHAR(1000) NULL, CONSTRAINT fk_dm_device_notification FOREIGN KEY (DEVICE_ID) REFERENCES DM_DEVICE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT fk_dm_operation_notification FOREIGN KEY (OPERATION_ID) REFERENCES diff --git a/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml b/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml index c6dbb22437..3a32347d67 100644 --- a/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml +++ b/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml @@ -40,6 +40,10 @@ org.wso2.carbon.devicemgt org.wso2.carbon.email.sender.core + + org.wso2.orbit.org.apache.velocity + velocity + @@ -94,6 +98,9 @@ org.wso2.carbon.devicemgt:org.wso2.carbon.email.sender.core:${carbon.device.mgt.version} + + org.wso2.orbit.org.apache.velocity:velocity:${velocity.version} + org.wso2.carbon.core.server:${carbon.kernel.version} diff --git a/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml b/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml index 7b790ba72f..2cb774b71a 100644 --- a/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml +++ b/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml @@ -49,8 +49,8 @@ org.wso2.carbon.identity.authenticator.backend.oauth - org.wso2.carbon.apimgt - org.wso2.carbon.apimgt.keymgt.client + org.wso2.carbon.registry + org.wso2.carbon.registry.indexing @@ -84,13 +84,13 @@ org.wso2.carbon.devicemgt:org.wso2.carbon.identity.authenticator.backend.oauth:${carbon.device.mgt.version} - - org.wso2.carbon.apimgt:org.wso2.carbon.apimgt.keymgt.client:${carbon.api.mgt.version} - org.wso2.carbon.core.server:${carbon.kernel.version} + + org.wso2.carbon.registry:org.wso2.carbon.registry.indexing:${carbon.registry.version} + diff --git a/features/policy-mgt/org.wso2.carbon.policy.mgt.server.feature/pom.xml b/features/policy-mgt/org.wso2.carbon.policy.mgt.server.feature/pom.xml index bf656ef71e..1a1b8db6db 100644 --- a/features/policy-mgt/org.wso2.carbon.policy.mgt.server.feature/pom.xml +++ b/features/policy-mgt/org.wso2.carbon.policy.mgt.server.feature/pom.xml @@ -55,7 +55,11 @@ org.wso2.carbon.apimgt - org.wso2.carbon.apimgt.keymgt + org.wso2.carbon.apimgt.keymgt.client + + + org.wso2.carbon.registry + org.wso2.carbon.registry.indexing @@ -121,7 +125,8 @@ - org.wso2.carbon.apimgt:org.wso2.carbon.apimgt.keymgt:${carbon.api.mgt.version} + org.wso2.carbon.apimgt:org.wso2.carbon.apimgt.keymgt.client:${carbon.api.mgt.version} + org.wso2.carbon.registry:org.wso2.carbon.registry.indexing:${carbon.registry.version} org.wso2.carbon.core.server:${carbon.kernel.version} diff --git a/features/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework.server.feature/pom.xml b/features/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework.server.feature/pom.xml index 9e7d027894..cb72892b1e 100644 --- a/features/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework.server.feature/pom.xml +++ b/features/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework.server.feature/pom.xml @@ -30,7 +30,7 @@ org.wso2.carbon.webapp.authenticator.framework.server.feature pom 1.2.2-SNAPSHOT - WSO2 Carbon - Device Management Server Feature + WSO2 Carbon - Webapp Authenticator Framework Server Feature http://wso2.org This feature contains the core bundles required for Back-end Device Management functionality @@ -43,11 +43,7 @@ org.wso2.carbon.apimgt org.wso2.carbon.apimgt.core - - - org.wso2.carbon - org.wso2.carbon.throttle.core - + @@ -103,12 +99,7 @@ org.wso2.carbon.apimgt:org.wso2.carbon.apimgt.core:${carbon.api.mgt.version} - org.wso2.carbon:org.wso2.carbon.throttle.core:${carbon.throttle.module.version} - - org.wso2.carbon.core.server:${carbon.kernel.version} - org.wso2.carbon.apimgt.core:${carbon.api.mgt.version} - diff --git a/pom.xml b/pom.xml index 4b353f8255..ba1fec5a24 100644 --- a/pom.xml +++ b/pom.xml @@ -708,11 +708,7 @@ h2-database-engine ${orbit.version.h2.engine} - - org.wso2.orbit.org.owasp.encoder - encoder - ${owasp.encoder.version} - + org.apache.axis2.transport axis2-transport-mail @@ -751,12 +747,12 @@ - org.apache.ws.commons.axiom + org.apache.ws.commons.axiom.wso2 axiom-api ${axiom.version} - org.apache.ws.commons.axiom + org.apache.ws.commons.axiom.wso2 axiom-impl ${axiom.version} @@ -926,6 +922,14 @@ org.wso2.carbon.apimgt.core ${carbon.api.mgt.version} + + org.wso2.carbon + org.wso2.carbon.core + + + org.wso2.carbon.apimgt + org.wso2.carbon.apimgt.keymgt.stub + org.wso2.carbon.apimgt org.wso2.carbon.apimgt.usage.publisher @@ -946,6 +950,10 @@ org.wso2.carbon.apimgt org.wso2.carbon.ganalytics.publisher + + org.wso2.carbon.apimgt + org.wso2.carbon.throttle.core + @@ -1029,32 +1037,32 @@ org.wso2.carbon.identity org.wso2.carbon.identity.base - ${carbon.identity.version} + ${carbon.identity.framework.version} org.wso2.carbon.identity org.wso2.carbon.identity.core - ${carbon.identity.version} + ${carbon.identity.framework.version} org.wso2.carbon.identity org.wso2.carbon.identity.oauth.stub - ${carbon.identity.version} + ${identity.inbound.auth.oauth.version} org.wso2.carbon.identity org.wso2.carbon.identity.application.authentication.framework - ${carbon.identity.version} + ${carbon.identity.framework.version} org.wso2.carbon.identity org.wso2.carbon.identity.oauth - ${carbon.identity.version} + ${identity.inbound.auth.oauth.version} org.wso2.carbon.identity org.wso2.carbon.identity.application.common - ${carbon.identity.version} + ${carbon.identity.framework.version} org.wso2.carbon.identity @@ -1181,7 +1189,7 @@ org.wso2.carbon.identity org.wso2.carbon.identity.application.mgt - ${carbon.identity.version} + ${carbon.identity.framework.version} org.wso2.carbon.identity @@ -1240,7 +1248,7 @@ org.wso2.carbon.identity org.wso2.carbon.identity.sso.saml - ${carbon.identity.version} + ${identity.inbound.auth.saml.version} com.googlecode.json-simple.wso2 @@ -1271,22 +1279,17 @@ - org.bouncycastle.wso2 + org.wso2.orbit.org.bouncycastle bcprov-jdk15on ${bcprov.wso2.version} - org.bouncycastle.wso2 + org.wso2.orbit.org.bouncycastle bcpkix-jdk15on ${bcpkix.wso2.version} - org.bouncycastle.wso2 - bcmail-jdk15on - ${bcmail.wso2.version} - - - com.google.code.jscep.wso2 + org.wso2.orbit.com.google.code.jscep jscep ${jscep.version} @@ -1340,7 +1343,7 @@ ${commons.httpclient.version} - org.apache.velocity + org.wso2.orbit.org.apache.velocity velocity ${velocity.version} @@ -1403,6 +1406,12 @@ ${carbon.registry.version} + + org.wso2.carbon.registry + org.wso2.carbon.registry.common + ${carbon.registry.version} + + org.wso2.orbit.org.scannotation scannotation @@ -1447,7 +1456,7 @@ org.wso2.carbon.identity org.wso2.carbon.user.mgt - ${carbon.identity.version} + ${carbon.identity.framework.version} provided @@ -1466,19 +1475,16 @@ swagger-jaxrs ${swagger.version} - javax.servlet servlet-api ${servlet-api.version} - org.wso2.carbon.analytics-common org.wso2.carbon.event.output.adapter.core ${carbon.analytics.common.version} - org.wso2.carbon.devicemgt org.wso2.carbon.device.mgt.extensions.push.notification.provider.gcm @@ -1499,20 +1505,25 @@ jackson-annotations ${jackson-annotations.version} + + org.wso2.orbit.org.owasp.encoder + encoder + ${owasp.encoder.version} + org.hibernate hibernate-validator ${hibernate-validator.version} - org.wso2.carbon.apimgt - org.wso2.carbon.apimgt.keymgt.client - ${carbon.api.mgt.version} + javax.servlet.jsp + javax.servlet.jsp-api + ${servelet.jsp.version} - org.wso2.carbon - org.wso2.carbon.throttle.core - ${carbon.throttle.module.version} + org.slf4j + slf4j-simple + ${slf4j.simple.version} @@ -1700,7 +1711,7 @@ by default) and nothing else. We had troubles with other repositories in the past. Therefore configuring additional repositories here should be considered very carefully. --> - + wso2-nexus WSO2 internal Repository http://maven.wso2.org/nexus/content/groups/wso2-public/ @@ -1735,8 +1746,9 @@ + 2.2.1 6.1.1 - 4.4.3 + 4.4.9 [4.4.0, 5.0.0) 1.5.4 1.3 @@ -1776,21 +1788,23 @@ 7.0.34.wso2v2 - 4.6.0 + 4.7.0 - 5.0.7 + 5.2.0 + 5.1.2 + 5.1.1 - 4.5.0 + 4.6.0 - 4.5.8 + 4.6.4 - 1.2.11-wso2v11 + 1.2.11-wso2v10 [1.2.11, 1.3.0) - 1.2.11.wso2v5 + 1.2.11.wso2v10 1.2.2-SNAPSHOT @@ -1802,15 +1816,15 @@ 2.6.0.wso2v1 - 5.0.5 - (5.0.0,6.0.0] + 6.0.5 + (5.0.0,7.0.0] 5.0.11 [5.0.11,6.0.0) - 4.4.8 + 4.5.6 [4.4.8, 5.0.0) @@ -1820,14 +1834,12 @@ 1.9.0 - 1.49.wso2v1 - 1.49.wso2v1 - 1.49.wso2v1 - [1.40.wso2v1, 1.50.0) - 1.49.wso2v1 + 1.52.0.wso2v1 + 1.52.0.wso2v2 + [1.52.0,1.60.0) - 2.0.2.wso2v2 + 2.3.0.wso2v2 2.26.1.wso2v3 @@ -1856,7 +1868,7 @@ 4.3.3.wso2v1 3.1.0.wso2v2 - 1.7 + 1.7.0.wso2v1 2.4.0.wso2v1 3.2.0.wso2v1 @@ -1885,10 +1897,15 @@ 1.2.0.wso2v1 5.0.2.Final + [0.0.0,1.0.0) 1.8.10.wso2v2 4.2.1 + [1.0.0, 1.1.0) + + + 1.6.1