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 cff8781397..77b350f807 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml
@@ -22,13 +22,13 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.annotations
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
bundle
WSO2 Carbon - API Management Annotations
WSO2 Carbon - API Management Custom Annotation Module
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/pom.xml
index 3d6ddf5e25..c1e8e0fb50 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/pom.xml
@@ -21,12 +21,12 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
org.wso2.carbon.apimgt.application.extension.api
war
WSO2 Carbon - API Application Management API
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/pom.xml
index bda5c6ba37..45835dd02a 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/pom.xml
@@ -22,12 +22,12 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
org.wso2.carbon.apimgt.application.extension
bundle
WSO2 Carbon - API Application Management
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml
index a15c7e86b0..526508155b 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml
@@ -17,18 +17,17 @@
~ under the License.
-->
-
+
apimgt-extensions
org.wso2.carbon.devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.handlers
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
bundle
WSO2 Carbon - API Security Handler Component
WSO2 Carbon - API Management Security Handler Module
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml
index 430fbf78ec..00ad78ac2c 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml
@@ -13,13 +13,13 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.integration.client
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
bundle
WSO2 Carbon - API Management Integration Client
WSO2 Carbon - API Management Integration Client
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml
index c2f7b6c0c3..2788aa93cc 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml
@@ -13,13 +13,13 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.integration.generated.client
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
bundle
WSO2 Carbon - API Management Integration Generated Client
WSO2 Carbon - API Management Integration Client
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 e850698364..f5e3dc3e69 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
@@ -22,13 +22,13 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.webapp.publisher
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
bundle
WSO2 Carbon - API Management Webapp Publisher
WSO2 Carbon - API Management Webapp Publisher
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/test/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherServiceTest.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/test/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherServiceTest.java
index 5360caa68b..2a5b533eaf 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/test/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherServiceTest.java
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/test/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherServiceTest.java
@@ -89,7 +89,7 @@ APIPublisherServiceTest extends BaseAPIPublisherTest {
@Test(description = "createAPIListWithNoApi | will fail if there are any exceptions")
private void publishWithNoAPIListCreated() throws APIManagerPublisherException {
APIConfig apiConfig = new APIConfig();
- setApiConfigs(apiConfig, "testAPI-3");
+ setApiConfigs(apiConfig, "testAPI-2");
APIPublisherDataHolder apiPublisherDataHolder = Mockito.mock(APIPublisherDataHolder.getInstance().
getClass(), Mockito.CALLS_REAL_METHODS);
IntegrationClientService integrationClientService = Mockito.mock(IntegrationClientServiceImpl.
@@ -118,7 +118,7 @@ APIPublisherServiceTest extends BaseAPIPublisherTest {
@Test(description = "createAPIList | will fail if there are any exceptions")
private void publishWithAPIListCreated() throws APIManagerPublisherException {
APIConfig apiConfig = new APIConfig();
- setApiConfigs(apiConfig, "testAPI-2");
+ setApiConfigs(apiConfig, "testAPI-3");
APIPublisherDataHolder apiPublisherDataHolder = Mockito.mock(APIPublisherDataHolder.getInstance().
getClass(), Mockito.CALLS_REAL_METHODS);
IntegrationClientService integrationClientService = Mockito.mock(IntegrationClientServiceImpl.
@@ -134,7 +134,7 @@ APIPublisherServiceTest extends BaseAPIPublisherTest {
doReturn(api).when(apIsApi).apisPost(Mockito.any(), Mockito.anyString());
APIList apiList = Mockito.mock(APIList.class, Mockito.CALLS_REAL_METHODS);
APIInfo apiInfo = new APIInfo();
- apiInfo.setName("testAPI-2");
+ apiInfo.setName("testAPI-3");
apiInfo.setVersion("1.0.0");
apiInfo.setId("test-one");
List apiInfoList = new ArrayList<>();
@@ -148,6 +148,18 @@ APIPublisherServiceTest extends BaseAPIPublisherTest {
apiPublisherService.publishAPI(apiConfig);
}
+ @Test(description = "publish API with scope added | will fail if there are any exceptions")
+ private void publishWithAPIScope() throws APIManagerPublisherException {
+ APIConfig apiConfig = new APIConfig();
+ setApiConfigs(apiConfig, "testAPI-4");
+ Set scopes = new HashSet<>();
+ ApiScope apiScope = new ApiScope();
+ apiScope.setDescription("testing");
+ scopes.add(apiScope);
+ apiConfig.setScopes(scopes);
+ apiPublisherService.publishAPI(apiConfig);
+ }
+
private void setApiConfigs(APIConfig apiConfig, String name) {
apiConfig.setName(name);
apiConfig.setContext("api/device-mgt/windows/v1.g0/admin/devices");
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/test/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherUtilTest.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/test/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherUtilTest.java
new file mode 100644
index 0000000000..ca1bc1fba4
--- /dev/null
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/test/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherUtilTest.java
@@ -0,0 +1,126 @@
+/*
+* Copyright (c) 2017, 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.apimgt.webapp.publisher;
+
+import org.testng.Assert;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Test;
+import org.wso2.carbon.apimgt.webapp.publisher.config.APIResource;
+import org.wso2.carbon.apimgt.webapp.publisher.config.APIResourceConfiguration;
+import org.wso2.carbon.apimgt.webapp.publisher.config.WebappPublisherConfig;
+import org.wso2.carbon.apimgt.webapp.publisher.dto.ApiScope;
+import org.wso2.carbon.apimgt.webapp.publisher.exception.APIManagerPublisherException;
+import org.wso2.carbon.apimgt.webapp.publisher.utils.MockServletContext;
+import org.wso2.carbon.context.PrivilegedCarbonContext;
+import org.wso2.carbon.registry.core.exceptions.RegistryException;
+import org.wso2.carbon.registry.core.jdbc.realm.InMemoryRealmService;
+import org.wso2.carbon.user.api.RealmConfiguration;
+import org.wso2.carbon.user.api.UserRealm;
+import org.wso2.carbon.user.api.UserStoreException;
+import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
+
+import javax.servlet.ServletContext;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.wso2.carbon.apimgt.webapp.publisher.APIPublisherUtil.buildApiConfig;
+
+/**
+ * This is the test class for {@link APIPublisherUtil}
+ */
+public class APIPublisherUtilTest extends BaseAPIPublisherTest {
+
+ @BeforeTest
+ public void initialConfigs() throws WebappPublisherConfigurationFailedException,
+ org.wso2.carbon.user.core.UserStoreException, RegistryException {
+ WebappPublisherConfig.init();
+ setUserRealm();
+ }
+
+ @Test(description = "test buildAPIConfig method and ensures an APIConfig is created")
+ private void buildApiConfigTest() throws UserStoreException, RegistryException {
+ try {
+ startTenantFlowAsTestTenant();
+ ServletContext servletContext = new MockServletContext();
+ APIResourceConfiguration apiDef = new APIResourceConfiguration();
+ List resources = new ArrayList<>();
+ apiDef.setResources(resources);
+ APIConfig apiConfig = buildApiConfig(servletContext, apiDef);
+ Assert.assertNotNull(apiConfig, "API configuration is null.");
+ } finally {
+ PrivilegedCarbonContext.endTenantFlow();
+ }
+ }
+
+ @Test(description = "test buildAPIConfig method as SuperTenant and ensures" +
+ " an APIConfig is created")
+ private void buildApiConfigAsSuperTenat() throws UserStoreException {
+ ServletContext servletContext = new MockServletContext();
+ APIResourceConfiguration apiDef = new APIResourceConfiguration();
+ List resources = new ArrayList<>();
+ apiDef.setResources(resources);
+ APIConfig apiConfig = buildApiConfig(servletContext, apiDef);
+ Assert.assertNotNull(apiConfig, "API configuration is null.");
+ }
+
+ @Test(description = "test buildAPIConfig with API tags specified and ensures " +
+ "an APIConfig is created")
+ private void buildApiConfigTestWithTags() throws UserStoreException {
+ ServletContext servletContext = new MockServletContext();
+ APIResourceConfiguration apiDef = new APIResourceConfiguration();
+ List resources = new ArrayList<>();
+ APIResource apiResource = new APIResource();
+ resources.add(apiResource);
+ apiDef.setResources(resources);
+ apiDef.setTags(new String[]{"windows", "device_management"});
+ APIConfig apiConfig = buildApiConfig(servletContext, apiDef);
+ Assert.assertNotNull(apiConfig, "API configuration is null.");
+ }
+
+ @Test(description = "test buildAPIConfig method with API scopes specified and " +
+ "ensures an APIConfig is created")
+ private void buildApiConfigTestWithScope() throws UserStoreException, APIManagerPublisherException {
+ ServletContext servletContext = new MockServletContext();
+ APIResourceConfiguration apiDef = new APIResourceConfiguration();
+ List resources = new ArrayList<>();
+ APIResource apiResource = new APIResource();
+ ApiScope apiScope = new ApiScope();
+ apiScope.setDescription("testing");
+ apiResource.setScope(apiScope);
+ resources.add(apiResource);
+ apiDef.setResources(resources);
+ apiDef.setTags(new String[]{"windows", "device_management"});
+ APIConfig apiConfig = buildApiConfig(servletContext, apiDef);
+ Assert.assertNotNull(apiConfig, "API configuration is null.");
+ }
+
+ private void setUserRealm() throws RegistryException, org.wso2.carbon.user.core.UserStoreException {
+ RealmConfiguration configuration = new RealmConfiguration();
+ UserRealm userRealm = new InMemoryRealmService().getUserRealm(configuration);
+ PrivilegedCarbonContext.getThreadLocalCarbonContext().setUserRealm(userRealm);
+ }
+
+ private void startTenantFlowAsTestTenant() throws org.wso2.carbon.user.core.UserStoreException, RegistryException {
+ PrivilegedCarbonContext.startTenantFlow();
+ PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantId(1212);
+ PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantDomain("test.com");
+ setUserRealm();
+ }
+}
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/test/java/org/wso2/carbon/apimgt/webapp/publisher/utils/MockServletContext.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/test/java/org/wso2/carbon/apimgt/webapp/publisher/utils/MockServletContext.java
new file mode 100644
index 0000000000..d88dac206a
--- /dev/null
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/test/java/org/wso2/carbon/apimgt/webapp/publisher/utils/MockServletContext.java
@@ -0,0 +1,285 @@
+/*
+* Copyright (c) 2017, 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.apimgt.webapp.publisher.utils;
+
+import javax.servlet.*;
+import javax.servlet.descriptor.JspConfigDescriptor;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Enumeration;
+import java.util.EventListener;
+import java.util.Map;
+import java.util.Set;
+
+public class MockServletContext implements ServletContext {
+ @Override
+ public ServletContext getContext(String s) {
+ return null;
+ }
+
+ @Override
+ public String getContextPath() {
+ return null;
+ }
+
+ @Override
+ public int getMajorVersion() {
+ return 0;
+ }
+
+ @Override
+ public int getMinorVersion() {
+ return 0;
+ }
+
+ @Override
+ public int getEffectiveMajorVersion() {
+ return 0;
+ }
+
+ @Override
+ public int getEffectiveMinorVersion() {
+ return 0;
+ }
+
+ @Override
+ public String getMimeType(String s) {
+ return null;
+ }
+
+ @Override
+ public Set getResourcePaths(String s) {
+ return null;
+ }
+
+ @Override
+ public URL getResource(String s) throws MalformedURLException {
+ return null;
+ }
+
+ @Override
+ public InputStream getResourceAsStream(String s) {
+ return null;
+ }
+
+ @Override
+ public RequestDispatcher getRequestDispatcher(String s) {
+ return null;
+ }
+
+ @Override
+ public RequestDispatcher getNamedDispatcher(String s) {
+ return null;
+ }
+
+ @Override
+ public Servlet getServlet(String s) throws ServletException {
+ return null;
+ }
+
+ @Override
+ public Enumeration getServlets() {
+ return null;
+ }
+
+ @Override
+ public Enumeration getServletNames() {
+ return null;
+ }
+
+ @Override
+ public void log(String s) {
+
+ }
+
+ @Override
+ public void log(Exception e, String s) {
+
+ }
+
+ @Override
+ public void log(String s, Throwable throwable) {
+
+ }
+
+ @Override
+ public String getRealPath(String s) {
+ return null;
+ }
+
+ @Override
+ public String getServerInfo() {
+ return null;
+ }
+
+ @Override
+ public String getInitParameter(String s) {
+ return "true";
+ }
+
+ @Override
+ public Enumeration getInitParameterNames() {
+ return null;
+ }
+
+ @Override
+ public boolean setInitParameter(String s, String s1) {
+ return false;
+ }
+
+ @Override
+ public Object getAttribute(String s) {
+ return null;
+ }
+
+ @Override
+ public Enumeration getAttributeNames() {
+ return null;
+ }
+
+ @Override
+ public void setAttribute(String s, Object o) {
+
+ }
+
+ @Override
+ public void removeAttribute(String s) {
+
+ }
+
+ @Override
+ public String getServletContextName() {
+ return null;
+ }
+
+ @Override
+ public ServletRegistration.Dynamic addServlet(String s, String s1) {
+ return null;
+ }
+
+ @Override
+ public ServletRegistration.Dynamic addServlet(String s, Servlet servlet) {
+ return null;
+ }
+
+ @Override
+ public ServletRegistration.Dynamic addServlet(String s, Class extends Servlet> aClass) {
+ return null;
+ }
+
+ @Override
+ public T createServlet(Class aClass) throws ServletException {
+ return null;
+ }
+
+ @Override
+ public ServletRegistration getServletRegistration(String s) {
+ return null;
+ }
+
+ @Override
+ public Map getServletRegistrations() {
+ return null;
+ }
+
+ @Override
+ public FilterRegistration.Dynamic addFilter(String s, String s1) {
+ return null;
+ }
+
+ @Override
+ public FilterRegistration.Dynamic addFilter(String s, Filter filter) {
+ return null;
+ }
+
+ @Override
+ public FilterRegistration.Dynamic addFilter(String s, Class extends Filter> aClass) {
+ return null;
+ }
+
+ @Override
+ public T createFilter(Class aClass) throws ServletException {
+ return null;
+ }
+
+ @Override
+ public FilterRegistration getFilterRegistration(String s) {
+ return null;
+ }
+
+ @Override
+ public Map getFilterRegistrations() {
+ return null;
+ }
+
+ @Override
+ public SessionCookieConfig getSessionCookieConfig() {
+ return null;
+ }
+
+ @Override
+ public void setSessionTrackingModes(Set set) throws IllegalStateException, IllegalArgumentException {
+
+ }
+
+ @Override
+ public Set getDefaultSessionTrackingModes() {
+ return null;
+ }
+
+ @Override
+ public Set getEffectiveSessionTrackingModes() {
+ return null;
+ }
+
+ @Override
+ public void addListener(String s) {
+
+ }
+
+ @Override
+ public void addListener(T t) {
+
+ }
+
+ @Override
+ public void addListener(Class extends EventListener> aClass) {
+
+ }
+
+ @Override
+ public T createListener(Class aClass) throws ServletException {
+ return null;
+ }
+
+ @Override
+ public void declareRoles(String... strings) {
+
+ }
+
+ @Override
+ public ClassLoader getClassLoader() {
+ return null;
+ }
+
+ @Override
+ public JspConfigDescriptor getJspConfigDescriptor() {
+ return null;
+ }
+}
diff --git a/components/apimgt-extensions/pom.xml b/components/apimgt-extensions/pom.xml
index b3f0fe14f8..d7115ee25a 100644
--- a/components/apimgt-extensions/pom.xml
+++ b/components/apimgt-extensions/pom.xml
@@ -22,13 +22,13 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../../pom.xml
4.0.0
apimgt-extensions
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
pom
WSO2 Carbon - API Management Extensions Component
http://wso2.org
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 3696b8aac4..caf08e5cdd 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
@@ -22,7 +22,7 @@
certificate-mgt
org.wso2.carbon.devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
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 653dbc10a6..1bbeb0ad64 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
@@ -22,7 +22,7 @@
certificate-mgt
org.wso2.carbon.devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
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 28e647b421..4db036d18d 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
@@ -21,13 +21,13 @@
org.wso2.carbon.devicemgt
certificate-mgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.certificate.mgt.core
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
bundle
WSO2 Carbon - Certificate Management Core
WSO2 Carbon - Certificate Management Core
diff --git a/components/certificate-mgt/pom.xml b/components/certificate-mgt/pom.xml
index 83d38c4477..f0628cde9e 100644
--- a/components/certificate-mgt/pom.xml
+++ b/components/certificate-mgt/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../../pom.xml
4.0.0
org.wso2.carbon.devicemgt
certificate-mgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
pom
WSO2 Carbon - Certificate Management Component
http://wso2.org
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/pom.xml
index ed2d1a4733..e18fe0fd7d 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/deployer/DeviceTypeCAppDeployer.java b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/deployer/DeviceTypeCAppDeployer.java
index 435e3cad3b..2880177a9e 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/deployer/DeviceTypeCAppDeployer.java
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/deployer/DeviceTypeCAppDeployer.java
@@ -78,7 +78,7 @@ public class DeviceTypeCAppDeployer implements AppDeploymentHandler {
}
- private void deployTypeSpecifiedArtifacts(List artifacts, AxisConfiguration axisConfig,
+ protected void deployTypeSpecifiedArtifacts(List artifacts, AxisConfiguration axisConfig,
String fileType, String directory) throws DeploymentException {
for (Artifact artifact : artifacts) {
Deployer deployer = AppDeployerUtils.getArtifactDeployer(axisConfig, directory, fileType);
@@ -118,7 +118,7 @@ public class DeviceTypeCAppDeployer implements AppDeploymentHandler {
}
- private void undeployTypeSpecifiedArtifacts(List artifacts, AxisConfiguration axisConfig, String fileType
+ protected void undeployTypeSpecifiedArtifacts(List artifacts, AxisConfiguration axisConfig, String fileType
, String directory) throws DeploymentException {
for (Artifact artifact : artifacts) {
Deployer deployer = AppDeployerUtils.getArtifactDeployer(axisConfig, directory, fileType);
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/deployer/DeviceTypeCAppDeployerTest.java b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/deployer/DeviceTypeCAppDeployerTest.java
new file mode 100644
index 0000000000..0aa0e28839
--- /dev/null
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/deployer/DeviceTypeCAppDeployerTest.java
@@ -0,0 +1,131 @@
+/*
+ * Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.wso2.carbon.device.mgt.extensions.device.type.deployer;
+
+import org.apache.axis2.deployment.DeploymentException;
+import org.apache.axis2.engine.AxisConfiguration;
+import org.mockito.Mockito;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+import org.wso2.carbon.application.deployer.CarbonApplication;
+import org.wso2.carbon.application.deployer.config.ApplicationConfiguration;
+import org.wso2.carbon.application.deployer.config.Artifact;
+import org.wso2.carbon.application.deployer.config.CappFile;
+import org.wso2.carbon.context.PrivilegedCarbonContext;
+import org.wso2.carbon.device.mgt.extensions.device.type.deployer.util.DeviceTypePluginConstants;
+import org.wso2.carbon.registry.core.exceptions.RegistryException;
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+
+/*
+ Unit tests for deviceTypeCAppDeployer
+ */
+public class DeviceTypeCAppDeployerTest {
+ private DeviceTypeCAppDeployer deviceTypeCAppDeployer;
+ private CarbonApplication carbonApplication = null;
+ private AxisConfiguration axisConfiguration = null;
+ private ApplicationConfiguration applicationConfiguration = null;
+ private CappFile cappFile = new CappFile();
+
+
+ private void initializeActifact(String type) {
+ Artifact tempArtifact = new Artifact();
+ cappFile.setName("testCappFile");
+ tempArtifact.setType(type);
+ tempArtifact.addFile(cappFile);
+ Artifact.Dependency dependency = new Artifact.Dependency();
+ dependency.setArtifact(tempArtifact);
+ tempArtifact.addDependency(dependency);
+ Mockito.doReturn(tempArtifact).when(applicationConfiguration).getApplicationArtifact();
+ }
+
+ private void initializeErrorArtifact() {
+ Artifact errArtifact = new Artifact();
+ errArtifact.setType(DeviceTypePluginConstants.CDMF_PLUGIN_TYPE);
+ Artifact.Dependency dependency = new Artifact.Dependency();
+ dependency.setArtifact(errArtifact);
+ errArtifact.addDependency(dependency);
+ Mockito.doReturn(errArtifact).when(applicationConfiguration).getApplicationArtifact();
+ }
+
+ @BeforeClass
+ public void init() throws NoSuchFieldException, IllegalAccessException, IOException, RegistryException {
+ Field deviceTypePlugins;
+ Field deviceTypeUIs;
+ deviceTypeCAppDeployer = Mockito.mock(DeviceTypeCAppDeployer.class, Mockito.CALLS_REAL_METHODS);
+ carbonApplication = Mockito.mock(CarbonApplication.class, Mockito.CALLS_REAL_METHODS);
+ axisConfiguration = Mockito.mock(AxisConfiguration.class, Mockito.CALLS_REAL_METHODS);
+ applicationConfiguration = Mockito.mock(ApplicationConfiguration.class, Mockito.CALLS_REAL_METHODS);
+ Mockito.doReturn(applicationConfiguration).when(carbonApplication).getAppConfig();
+ Mockito.doNothing().when(deviceTypeCAppDeployer).deployTypeSpecifiedArtifacts(Mockito.any(), Mockito.any(),
+ Mockito.any(), Mockito.any());
+ Mockito.doNothing().when(deviceTypeCAppDeployer).undeployTypeSpecifiedArtifacts(Mockito.any(), Mockito.any(),
+ Mockito.any(), Mockito.any());
+ this.initializeCarbonContext();
+ deviceTypePlugins = DeviceTypeCAppDeployer.class.getDeclaredField("deviceTypePlugins");
+ deviceTypePlugins.setAccessible(true);
+ deviceTypePlugins.set(deviceTypeCAppDeployer, new ArrayList());
+ deviceTypeUIs = DeviceTypeCAppDeployer.class.getDeclaredField("deviceTypeUIs");
+ deviceTypeUIs.setAccessible(true);
+ deviceTypeUIs.set(deviceTypeCAppDeployer, new ArrayList());
+ }
+
+ private void initializeCarbonContext() throws IOException, RegistryException {
+ if (System.getProperty("carbon.home") == null) {
+ File file = new File("src/test/resources");
+ if (file.exists()) {
+ System.setProperty("carbon.home", file.getAbsolutePath());
+ }
+ }
+ PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantDomain(
+ org.wso2.carbon.base.MultitenantConstants.SUPER_TENANT_DOMAIN_NAME);
+ PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantId(
+ org.wso2.carbon.base.MultitenantConstants.SUPER_TENANT_ID);
+ }
+
+ @Test(description = "deploying a capp of plugin type")
+ public void testDeployCarbonAppsPluginType() throws DeploymentException, IllegalAccessException {
+ initializeActifact(DeviceTypePluginConstants.CDMF_PLUGIN_TYPE);
+ deviceTypeCAppDeployer.deployArtifacts(carbonApplication, axisConfiguration);
+ }
+
+ @Test(description = "deploying an erroneous car file")
+ public void testDeployErrorArtifact() throws DeploymentException, IllegalAccessException {
+ initializeErrorArtifact();
+ deviceTypeCAppDeployer.deployArtifacts(carbonApplication, axisConfiguration);
+ }
+
+ @Test(dependsOnMethods = {"testDeployCarbonAppsPluginType"}, description = "undeploying previously deployed capp")
+ public void testUndeployCarbonAppsPluginType() throws DeploymentException {
+ deviceTypeCAppDeployer.undeployArtifacts(carbonApplication, axisConfiguration);
+ }
+
+ @Test(dependsOnMethods = {"testUndeployCarbonAppsPluginType"}, description = "deploying a capp of UI type")
+ public void testDeployCarbonAppsUiType() throws DeploymentException, IllegalAccessException {
+ initializeActifact(DeviceTypePluginConstants.CDMF_UI_TYPE);
+ deviceTypeCAppDeployer.deployArtifacts(carbonApplication, axisConfiguration);
+ }
+
+ @Test(dependsOnMethods = {"testDeployCarbonAppsUiType"}, description = "Undeploy previously deployed capp")
+ public void testUndeployCarbonAppsUiType() throws DeploymentException {
+ deviceTypeCAppDeployer.undeployArtifacts(carbonApplication, axisConfiguration);
+ }
+}
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/deployer/DeviceTypePluginDeployerTest.java b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/deployer/DeviceTypePluginDeployerTest.java
index 7f158ff569..597575ea31 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/deployer/DeviceTypePluginDeployerTest.java
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/deployer/DeviceTypePluginDeployerTest.java
@@ -40,9 +40,12 @@ import java.util.concurrent.ConcurrentHashMap;
public class DeviceTypePluginDeployerTest {
private DeviceTypePluginDeployer deviceTypePluginDeployer;
private DeploymentFileData deploymentFileData;
+ private DeploymentFileData invalidDeploymentFileData;
private Field deviceTypeServiceRegistrations = null;
private Field deviceTypeConfigurationDataMap = null;
private ServiceRegistration serviceRegistration = null;
+ private File file = new File("src/test/resources/android.xml");
+ private File invalidFile = new File("src/test/resources/invalidAndroid.xml");
@BeforeClass
public void init() throws NoSuchFieldException, IllegalAccessException, IOException, RegistryException {
@@ -59,10 +62,15 @@ public class DeviceTypePluginDeployerTest {
deviceTypeConfigurationDataMap.setAccessible(true);
deviceTypeConfigurationDataMap.set(deviceTypePluginDeployer, new ConcurrentHashMap());
this.initializeCarbonContext();
+ if (file.exists()) {
+ deploymentFileData = new DeploymentFileData(file);
+ }
+ if (invalidFile.exists()) {
+ invalidDeploymentFileData = new DeploymentFileData(invalidFile);
+ }
}
private void initializeCarbonContext() throws IOException, RegistryException {
-
if (System.getProperty("carbon.home") == null) {
File file = new File("src/test/resources");
if (file.exists()) {
@@ -78,10 +86,6 @@ public class DeviceTypePluginDeployerTest {
@SuppressWarnings("unchecked")
@Test(description = "Testing deviceType deploy method by deploying Android device type")
public void deploy() throws DeploymentException, IllegalAccessException {
- File file = new File("src/test/resources/android.xml");
- if (file.exists()) {
- deploymentFileData = new DeploymentFileData(file);
- }
deviceTypePluginDeployer.deploy(deploymentFileData);
Map tempServiceRegistration = (Map)
deviceTypeServiceRegistrations.get(deviceTypePluginDeployer);
@@ -92,4 +96,29 @@ public class DeviceTypePluginDeployerTest {
.getAbsolutePath());
Assert.assertEquals(deviceTypeConfigIdentifier.getDeviceType(), "android");
}
+
+ @Test(description = "Testing exception for invalid xml files", expectedExceptions = {org.apache.axis2.deployment
+ .DeploymentException.class})
+ public void deployInvalidXml() throws DeploymentException, IllegalAccessException {
+ deviceTypePluginDeployer.deploy(invalidDeploymentFileData);
+ }
+
+ @Test(description = "Testing exception for non existing xml file", expectedExceptions = {org.apache.axis2.deployment
+ .DeploymentException.class})
+ public void unDeployInvalidXml() throws DeploymentException, IllegalAccessException {
+ deviceTypePluginDeployer.deploy(new DeploymentFileData(new File("src/test/resources/notExist.xml")));
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(dependsOnMethods = {"deploy"} , description = "Testing deviceType undeploy method by un-deploying Android " +
+ "device type")
+ public void unDeploy() throws DeploymentException, IllegalAccessException {
+ deviceTypePluginDeployer.undeploy(deploymentFileData.getAbsolutePath());
+ Map tempServiceRegistration = (Map)
+ deviceTypeServiceRegistrations.get(deviceTypePluginDeployer);
+ Assert.assertNull(tempServiceRegistration.get(deploymentFileData.getAbsolutePath()));
+ Map tempDeviceTypeConfig = (Map)
+ deviceTypeConfigurationDataMap.get(deviceTypePluginDeployer);
+ Assert.assertNull(tempDeviceTypeConfig.get(deploymentFileData.getAbsolutePath()));
+ }
}
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/src/test/resources/invalidAndroid.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/src/test/resources/invalidAndroid.xml
new file mode 100644
index 0000000000..45ddc258b5
--- /dev/null
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/src/test/resources/invalidAndroid.xml
@@ -0,0 +1,382 @@
+
+
+
+
+
+
+ en_US
+ 1.0.0
+ This End User License Agreement ("Agreement") is a legal agreement between you ("You") and WSO2,
+ Inc., regarding the enrollment of Your personal mobile device ("Device") in SoR's mobile device
+ management program, and the loading to and removal from Your Device and Your use of certain
+ applications and any associated software and user documentation, whether provided in "online" or
+ electronic format, used in connection with the operation of or provision of services to WSO2,
+ Inc., BY SELECTING "I ACCEPT" DURING INSTALLATION, YOU ARE ENROLLING YOUR DEVICE, AND THEREBY
+ AUTHORIZING SOR OR ITS AGENTS TO INSTALL, UPDATE AND REMOVE THE APPS FROM YOUR DEVICE AS DESCRIBED
+ IN THIS AGREEMENT. YOU ARE ALSO EXPLICITLY ACKNOWLEDGING AND AGREEING THAT (1) THIS IS A BINDING
+ CONTRACT AND (2) YOU HAVE READ AND AGREE TO THE TERMS OF THIS AGREEMENT.
+
+ IF YOU DO NOT ACCEPT THESE TERMS, DO NOT ENROLL YOUR DEVICE AND DO NOT PROCEED ANY FURTHER.
+
+ You agree that: (1) You understand and agree to be bound by the terms and conditions contained in
+ this Agreement, and (2) You are at least 21 years old and have the legal capacity to enter into
+ this Agreement as defined by the laws of Your jurisdiction. SoR shall have the right, without
+ prior notice, to terminate or suspend (i) this Agreement, (ii) the enrollment of Your Device, or
+ (iii) the functioning of the Apps in the event of a violation of this Agreement or the cessation
+ of Your relationship with SoR (including termination of Your employment if You are an employee or
+ expiration or termination of Your applicable franchise or supply agreement if You are a franchisee
+ of or supplier to the WSO2 WSO2, Inc., system). SoR expressly reserves all rights not expressly
+ granted herein.
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+ jdbc/MobileAndroidDM_DS
+
+
+
+ DEVICE_ID
+
+ FCM_TOKEN
+ DEVICE_INFO
+ IMEI
+ IMSI
+ OS_VERSION
+ DEVICE_MODEL
+ VENDOR
+ LATITUDE
+ LONGITUDE
+ SERIAL
+ MAC_ADDRESS
+ DEVICE_NAME
+ OS_BUILD_DATE
+
+
+
+
+
+
+
+ Ring
+ Ring the device
+
+
+
+
+ Device Lock
+ Lock the device
+
+
+
+
+ Location
+ Request coordinates of device location
+
+
+
+
+ Clear Password
+ Clear current password
+
+
+
+
+ Reboot
+ Reboot the device
+
+
+
+
+ Upgrade Firmware
+ Upgrade Firmware
+
+
+
+
+ Mute
+ Enable mute in the device
+
+
+
+
+ Message
+ Send message
+
+
+
+
+ Change Lock-code
+ Change current lock code
+
+
+
+
+ Enterprise Wipe
+ Remove enterprise applications
+
+
+
+
+ Wipe Data
+ Factory reset the device
+
+
+
+
+ Wifi
+ Setting up wifi configuration
+
+
+ Camera
+ Enable or disable camera
+
+
+ Email
+ Configure email settings
+
+
+ Device info
+ Request device information
+
+
+ Application List
+ Request list of current installed applications
+
+
+ Install App
+ Install App
+
+
+ Uninstall App
+ Uninstall App
+
+
+ Blacklist app
+ Blacklist applications
+
+
+ Encrypt Storage
+ Encrypt storage
+
+
+ Password Policy
+ Set passcode policy
+
+
+ Configure VPN
+ Configure VPN settings
+
+
+ Disallow user to change volume
+ Allow or disallow user to change volume"
+
+
+ Disallow bluetooth configuration
+ Allow or disallow bluetooth configuration
+
+
+ Disallow user to change cell broadcast configurations
+ Allow or disallow user to change cell broadcast configurations
+
+
+ Disallow user to change user credentials
+ Allow or disallow user to change user credentials
+
+
+ Disallow user to change mobile networks configurations
+ Allow or disallow user to change mobile networks configurations
+
+
+ Disallow user to change tethering configurations
+ Allow or disallow user to change tethering configurations
+
+
+ Disallow user to change VPN configurations
+ Allow or disallow user to change VPN configurations
+
+
+ Disallow user to change WIFI configurations
+ Allow or disallow user to change WIFI configurations
+
+
+ Disallow user to change app control
+ Allow or disallow user to change app control
+
+
+ Disallow window creation
+ Allow or disallow window creation
+
+
+ Disallow user to change app control configurations
+ Allow or disallow user to change app control configurations
+
+
+ Disallow cross profile copy paste
+ Allow or disallow cross profile copy paste
+
+
+ Disallow debugging features
+ Allow or disallow debugging features
+
+
+ Disallow factory reset
+ Allow or disallow factory reset
+
+
+ Disallow add user
+ Allow or disallow add user
+
+
+ Disallow install apps
+ Allow or disallow install apps
+
+
+ Disallow install unknown sources
+ Allow or disallow install unknown sources
+
+
+ Disallow modify account
+ Allow or disallow modify account
+
+
+ Disallow mount physical media
+ Allow or disallow mount physical media
+
+
+ Disallow network reset
+ Allow or disallow network reset
+
+
+ Disallow outgoing beam
+ Allow or disallow outgoing beam
+
+
+ Disallow outgoing calls
+ Allow or disallow outgoing calls
+
+
+ Disallow remove users
+ Allow or disallow remove users
+
+
+ Disallow safe boot
+ Allow or disallow safe boot
+
+
+ Disallow share location
+ Allow or disallow share location
+
+
+ Disallow sms
+ Allow or disallow sms
+
+
+ Disallow uninstall app
+ Allow or disallow uninstall app
+
+
+ Disallow unmute mic
+ Allow or disallow unmute mic
+
+
+ Disallow usb file transfer
+ Allow or disallow usb file transfer
+
+
+ Disallow parent profile app linking
+ Allow or disallow parent profile app linking
+
+
+ Disallow ensure verify apps
+ Allow or disallow ensure verify apps
+
+
+ Disallow auto timing
+ Allow or disallow auto timing
+
+
+ Remove device owner
+ Remove device owner
+
+
+ Fetch device logcat
+ Fetch device logcat
+
+
+ Unlock the device
+ Unlock the device
+
+
+
+ true
+ 60000
+
+
+ DEVICE_INFO
+ 1
+
+
+ APPLICATION_LIST
+ 5
+
+
+ DEVICE_LOCATION
+ 1
+
+
+
+
+
+
+ DEVICE_INFO
+ APPLICATION_LIST
+ DEVICE_LOCATION
+
+
+
+
+ true
+ 300
+ 900
+ 600
+
+
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/src/test/resources/testng.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/src/test/resources/testng.xml
index d0ea4e8805..5d4a11b9b9 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/src/test/resources/testng.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/src/test/resources/testng.xml
@@ -23,6 +23,7 @@
+
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.pull.notification/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.pull.notification/pom.xml
index a81cabbf7b..719c6c9d3c 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.pull.notification/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.pull.notification/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm/pom.xml
index e74b561d63..67c391291c 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http/pom.xml
index d8eefd3b56..04a0b54820 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
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 b27d83b942..17cd30e93c 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
@@ -22,7 +22,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
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 1953685bb5..432eb436b3 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
@@ -22,7 +22,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/pom.xml b/components/device-mgt-extensions/pom.xml
index 1f6daa15f9..57d43d97bc 100644
--- a/components/device-mgt-extensions/pom.xml
+++ b/components/device-mgt-extensions/pom.xml
@@ -22,7 +22,7 @@
carbon-devicemgt
org.wso2.carbon.devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../../pom.xml
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 3c30faae44..6035f978df 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
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
device-mgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
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 75aa2adf1e..5661da9cf7 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
@@ -22,7 +22,7 @@
device-mgt
org.wso2.carbon.devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
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 44d55c2cda..a8100ff934 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
@@ -21,7 +21,7 @@
device-mgt
org.wso2.carbon.devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
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 ba1a71c252..5b24877428 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
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
device-mgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/EnrollmentDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/EnrollmentDAOImpl.java
index 33371e3c9d..b7a4086d0e 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/EnrollmentDAOImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/EnrollmentDAOImpl.java
@@ -23,9 +23,12 @@ import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOException;
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory;
import org.wso2.carbon.device.mgt.core.dao.EnrollmentDAO;
import org.wso2.carbon.device.mgt.core.dao.util.DeviceManagementDAOUtil;
-import org.wso2.carbon.device.mgt.core.operation.mgt.OperationMapping;
-import java.sql.*;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -201,25 +204,53 @@ public class EnrollmentDAOImpl implements EnrollmentDAO {
return true;
}
- @Override
- public boolean setStatus(String currentOwner, EnrolmentInfo.Status status,
- int tenantId) throws DeviceManagementDAOException {
+ private int getCountOfDevicesOfOwner(String owner, int tenantID) throws DeviceManagementDAOException {
Connection conn;
PreparedStatement stmt = null;
+ ResultSet rs = null;
+ int count = 0;
try {
conn = this.getConnection();
- String sql = "UPDATE DM_ENROLMENT SET STATUS = ? WHERE OWNER = ? AND TENANT_ID = ?";
- stmt = conn.prepareStatement(sql);
- stmt.setString(1, status.toString());
- stmt.setString(2, currentOwner);
- stmt.setInt(3, tenantId);
- stmt.executeUpdate();
+ String checkQuery = "SELECT COUNT(ID) AS COUNT FROM DM_ENROLMENT WHERE OWNER = ? AND TENANT_ID = ?";
+ stmt = conn.prepareStatement(checkQuery);
+ stmt.setString(1, owner);
+ stmt.setInt(2, tenantID);
+ rs = stmt.executeQuery();
+ if(rs.next()){
+ count = rs.getInt("COUNT");
+ }
} catch (SQLException e) {
- throw new DeviceManagementDAOException("Error occurred while setting the status of device enrolment", e);
+ throw new DeviceManagementDAOException("Error occurred while trying to get device " +
+ "count of Owner : "+owner, e);
} finally {
- DeviceManagementDAOUtil.cleanupResources(stmt, null);
+ DeviceManagementDAOUtil.cleanupResources(stmt, rs);
+ }
+ return count;
+ }
+
+ @Override
+ public boolean setStatus(String currentOwner, EnrolmentInfo.Status status,
+ int tenantId) throws DeviceManagementDAOException {
+ Connection conn;
+ PreparedStatement stmt = null;
+ if(getCountOfDevicesOfOwner(currentOwner, tenantId) > 0){
+ try {
+ conn = this.getConnection();
+ String sql = "UPDATE DM_ENROLMENT SET STATUS = ? WHERE OWNER = ? AND TENANT_ID = ?";
+ stmt = conn.prepareStatement(sql);
+ stmt.setString(1, status.toString());
+ stmt.setString(2, currentOwner);
+ stmt.setInt(3, tenantId);
+ stmt.executeUpdate();
+ } catch (SQLException e) {
+ throw new DeviceManagementDAOException("Error occurred while setting the status of device enrolment", e);
+ } finally {
+ DeviceManagementDAOUtil.cleanupResources(stmt, null);
+ }
+ return true;
+ } else {
+ return false;
}
- return true;
}
@Override
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/TestDeviceManager.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/TestDeviceManager.java
index 010b47b8d0..e30edc3f48 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/TestDeviceManager.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/TestDeviceManager.java
@@ -20,6 +20,7 @@ import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration
import org.wso2.carbon.device.mgt.common.license.mgt.License;
import org.wso2.carbon.device.mgt.common.license.mgt.LicenseManagementException;
+import java.util.ArrayList;
import java.util.List;
public class TestDeviceManager implements DeviceManager {
@@ -80,7 +81,15 @@ public class TestDeviceManager implements DeviceManager {
@Override
public Device getDevice(DeviceIdentifier deviceId) throws DeviceManagementException {
- return null;
+ List features = new ArrayList();
+ List properties = new ArrayList();
+ Device.Property prop1 = new Device.Property();
+ prop1.setName("Prop1");
+ prop1.setValue("Prop1-value");
+ properties.add(prop1);
+ Device device = new Device(deviceId.getType()+"-"+deviceId.getId(), deviceId.getType(),
+ "This is a test Device", deviceId.getId(), null, features, properties);
+ return device;
}
@Override
@@ -92,7 +101,7 @@ public class TestDeviceManager implements DeviceManager {
@Override
public boolean setOwnership(DeviceIdentifier deviceId, String ownershipType)
throws DeviceManagementException {
- return false;
+ return true;
}
@Override
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceTest.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceTest.java
index 3b57176b63..64efeb76a4 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceTest.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceTest.java
@@ -17,6 +17,7 @@ package org.wso2.carbon.device.mgt.core.service;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.mockito.Mockito;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
@@ -45,10 +46,12 @@ import org.wso2.carbon.registry.core.exceptions.RegistryException;
import org.wso2.carbon.registry.core.internal.RegistryDataHolder;
import org.wso2.carbon.registry.core.jdbc.realm.InMemoryRealmService;
import org.wso2.carbon.registry.core.service.RegistryService;
+import org.wso2.carbon.user.api.UserStoreException;
import org.wso2.carbon.user.core.service.RealmService;
import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
import java.io.InputStream;
+import java.lang.reflect.Field;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
@@ -98,6 +101,20 @@ public class DeviceManagementProviderServiceTest extends BaseDeviceManagementTes
Assert.assertTrue(deviceTypes.size() > 0);
}
+ @Test
+ public void testGetAvailableDeviceType() throws DeviceManagementException {
+ DeviceType deviceType = deviceMgtService.getDeviceType(DEVICE_TYPE);
+ Assert.assertTrue(deviceType.getName().equalsIgnoreCase(DEVICE_TYPE));
+ }
+
+ @Test
+ public void addLicense() throws DeviceManagementException {
+ License license = new License();
+ license.setLanguage("ENG");
+ license.setName("RANDON_DEVICE_LICENSE");
+ deviceMgtService.addLicense(DEVICE_TYPE, license);
+ }
+
@Test(expectedExceptions = DeviceManagementException.class)
public void testNullDeviceEnrollment() throws DeviceManagementException {
deviceMgtService.enrollDevice(null);
@@ -176,14 +193,45 @@ public class DeviceManagementProviderServiceTest extends BaseDeviceManagementTes
public void testDisenrollment() throws DeviceManagementException {
Device device = TestDataHolder.generateDummyDeviceData(new DeviceIdentifier(DEVICE_ID, DEVICE_TYPE));
boolean disenrollmentStatus = deviceMgtService.disenrollDevice(new DeviceIdentifier
- (device
- .getDeviceIdentifier(),
- device.getType()));
+ (device.getDeviceIdentifier(), device.getType()));
log.info(disenrollmentStatus);
Assert.assertTrue(disenrollmentStatus);
}
+ @Test(dependsOnMethods = {"testReEnrollmentofSameDeviceWithOtherUser"}, expectedExceptions =
+ DeviceManagementException.class)
+ public void testDisenrollmentWithNullDeviceID() throws DeviceManagementException {
+ deviceMgtService.disenrollDevice(null);
+ }
+
+ @Test(dependsOnMethods = {"testReEnrollmentofSameDeviceWithOtherUser"})
+ public void testDisenrollmentWithNonExistentDT() throws DeviceManagementException {
+ Device device = TestDataHolder.generateDummyDeviceData(new DeviceIdentifier(DEVICE_ID,
+ "NON_EXISTENT_DT"));
+ boolean result = deviceMgtService.disenrollDevice(new DeviceIdentifier(
+ device.getDeviceIdentifier(), device.getType()));
+ Assert.assertTrue(!result);
+ }
+
+ @Test(dependsOnMethods = {"testReEnrollmentofSameDeviceWithOtherUser"})
+ public void testDisenrollmentWithNonExistentDevice() throws DeviceManagementException {
+ Device device = TestDataHolder.generateDummyDeviceData(new DeviceIdentifier(ALTERNATE_DEVICE_ID,
+ DEVICE_TYPE));
+ boolean result = deviceMgtService.disenrollDevice(new DeviceIdentifier(
+ device.getDeviceIdentifier(), device.getType()));
+ Assert.assertTrue(!result);
+ }
+
+ @Test(dependsOnMethods = {"testDisenrollment"})
+ public void testDisenrollAlreadyDisEnrolledDevice() throws DeviceManagementException {
+ Device device = TestDataHolder.generateDummyDeviceData(new DeviceIdentifier(DEVICE_ID,
+ DEVICE_TYPE));
+ boolean result = deviceMgtService.disenrollDevice(new DeviceIdentifier(
+ device.getDeviceIdentifier(), device.getType()));
+ Assert.assertTrue(result);
+ }
+
@Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"})
public void testGetDeviceCount() throws DeviceManagementException {
int count = deviceMgtService.getDeviceCount();
@@ -259,6 +307,12 @@ public class DeviceManagementProviderServiceTest extends BaseDeviceManagementTes
Assert.assertTrue(device.getDeviceInfo() != null);
}
+ @Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"})
+ public void testGetDeviceTypeWithProps() throws DeviceManagementException {
+ Device device = deviceMgtService.getDeviceWithTypeProperties(new DeviceIdentifier(DEVICE_ID, DEVICE_TYPE));
+ Assert.assertTrue(!device.getProperties().isEmpty());
+ }
+
@Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"})
public void testGetDeviceWithOutInfo() throws DeviceManagementException {
Device device = deviceMgtService.getDevice(new DeviceIdentifier(DEVICE_ID, DEVICE_TYPE)
@@ -272,6 +326,35 @@ public class DeviceManagementProviderServiceTest extends BaseDeviceManagementTes
Assert.assertTrue(devices.size() > 0);
}
+ @Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"}, expectedExceptions =
+ DeviceManagementException.class)
+ public void testGetAllDevicesOfRoleFailureFlow() throws DeviceManagementException, UserStoreException, NoSuchFieldException, IllegalAccessException {
+ int tenantID = -1234;
+ RealmService mockRealmService = Mockito.mock(RealmService.class, Mockito.CALLS_REAL_METHODS);
+
+ Mockito.doThrow(new UserStoreException("Mocked Exception when obtaining Tenant Realm"))
+ .when(mockRealmService).getTenantUserRealm(tenantID);
+ RealmService currentRealm = DeviceManagementDataHolder.getInstance().getRealmService();
+ DeviceManagementDataHolder.getInstance().setRealmService(mockRealmService);
+ try {
+ deviceMgtService.getAllDevicesOfRole("admin");
+ } finally {
+ DeviceManagementDataHolder.getInstance().setRealmService(currentRealm);
+ }
+ }
+
+ @Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"})
+ public void testGetAllDevicesOfRoleWithNonExistentRole() throws DeviceManagementException {
+ List devices = deviceMgtService.getAllDevicesOfRole("non-existent-role");
+ Assert.assertTrue(devices.size() == 0);
+ }
+
+ @Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"}, expectedExceptions =
+ DeviceManagementException.class)
+ public void testGetAllDevicesOfRoleWithNullArgs() throws DeviceManagementException {
+ deviceMgtService.getAllDevicesOfRole(null);
+ }
+
@Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"})
public void testDeviceByOwner() throws DeviceManagementException {
Device device = deviceMgtService.getDevice(new DeviceIdentifier(DEVICE_ID,
@@ -279,11 +362,47 @@ public class DeviceManagementProviderServiceTest extends BaseDeviceManagementTes
Assert.assertTrue(device != null);
}
+ @Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"})
+ public void testDeviceByOwnerAndNonExistentDeviceID() throws DeviceManagementException {
+ String nonExistentDeviceID = "4455";
+ Device device = deviceMgtService.getDevice(new DeviceIdentifier(nonExistentDeviceID,
+ DEVICE_TYPE), "admin", true);
+ Assert.assertTrue(device == null);
+ }
+
+ @Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"}, expectedExceptions =
+ DeviceManagementException.class)
+ public void testDeviceByOwnerWithNullDeviceID() throws DeviceManagementException {
+ deviceMgtService.getDevice(null, "admin", true);
+ }
+
@Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"})
public void testDeviceByDate() throws DeviceManagementException, TransactionManagementException, DeviceDetailsMgtDAOException {
Device initialDevice = deviceMgtService.getDevice(new DeviceIdentifier(DEVICE_ID,
DEVICE_TYPE));
+ addDeviceInformation(initialDevice);
+
+ Device device = deviceMgtService.getDevice(new DeviceIdentifier(DEVICE_ID,
+ DEVICE_TYPE), yesterday());
+ Assert.assertTrue(device != null);
+ }
+
+ @Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"})
+ public void testDeviceByDateWithNonExistentDevice() throws DeviceManagementException,
+ TransactionManagementException, DeviceDetailsMgtDAOException {
+ Device device = deviceMgtService.getDevice(new DeviceIdentifier(ALTERNATE_DEVICE_ID,
+ DEVICE_TYPE), yesterday());
+ Assert.assertTrue(device == null);
+ }
+
+ @Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"}, expectedExceptions =
+ DeviceManagementException.class)
+ public void testDeviceByDateWithNullDeviceID() throws DeviceManagementException {
+ deviceMgtService.getDevice(null, yesterday());
+ }
+
+ private void addDeviceInformation(Device initialDevice) throws TransactionManagementException, DeviceDetailsMgtDAOException {
DeviceManagementDAOFactory.beginTransaction();
//Device details table will be reffered when looking for last updated time
@@ -292,10 +411,6 @@ public class DeviceManagementProviderServiceTest extends BaseDeviceManagementTes
.generateDummyDeviceInfo());
DeviceManagementDAOFactory.closeConnection();
-
- Device device = deviceMgtService.getDevice(new DeviceIdentifier(DEVICE_ID,
- DEVICE_TYPE), yesterday());
- Assert.assertTrue(device != null);
}
@Test(dependsOnMethods = {"testDeviceByDate"})
@@ -320,10 +435,18 @@ public class DeviceManagementProviderServiceTest extends BaseDeviceManagementTes
@Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"})
public void testGetAllDevicesPaginated() throws DeviceManagementException {
PaginationRequest request = new PaginationRequest(0, 100);
+ request.setOwnerRole("admin");
PaginationResult result = deviceMgtService.getAllDevices(request);
Assert.assertTrue(result.getRecordsTotal() > 0);
}
+ @Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"}, expectedExceptions =
+ DeviceManagementException.class)
+ public void testGetAllDevicesWithNullRequest() throws DeviceManagementException {
+ PaginationRequest request = null;
+ deviceMgtService.getAllDevices(request);
+ }
+
@Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"})
public void testGetAllDevicesByName() throws DeviceManagementException {
PaginationRequest request = new PaginationRequest(0, 100);
@@ -392,8 +515,15 @@ public class DeviceManagementProviderServiceTest extends BaseDeviceManagementTes
Assert.assertTrue(false);
}
- @Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"})
+ @Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"}, expectedExceptions =
+ DeviceManagementException.class)
public void testGetDeviesOfUser() throws DeviceManagementException {
+ String username = null;
+ deviceMgtService.getDevicesOfUser(username);
+ }
+
+ @Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"})
+ public void testGetDeviesOfUserWhileUserNull() throws DeviceManagementException {
List devices = deviceMgtService.getDevicesOfUser("admin");
Assert.assertTrue(!devices.isEmpty());
}
@@ -419,6 +549,13 @@ public class DeviceManagementProviderServiceTest extends BaseDeviceManagementTes
Assert.assertTrue(result.getRecordsTotal() > 0);
}
+ @Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"}, expectedExceptions =
+ DeviceManagementException.class)
+ public void testGetDeviesOfUserWhileNullOwnerPaginated() throws DeviceManagementException {
+ PaginationRequest request = null;
+ deviceMgtService.getDevicesOfUser(request, true);
+ }
+
@Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"})
public void testGetDeviesByOwnership() throws DeviceManagementException {
PaginationRequest request = new PaginationRequest(0, 100);
@@ -427,6 +564,26 @@ public class DeviceManagementProviderServiceTest extends BaseDeviceManagementTes
Assert.assertTrue(result.getRecordsTotal() > 0);
}
+ @Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"})
+ public void testSetOwnership() throws DeviceManagementException {
+ boolean status = deviceMgtService.setOwnership(new DeviceIdentifier(DEVICE_ID,
+ DEVICE_TYPE), EnrolmentInfo.OwnerShip.COPE.toString());
+ Assert.assertTrue(status);
+ }
+
+ @Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"})
+ public void testSetOwnershipNonExistentDT() throws DeviceManagementException {
+ boolean status = deviceMgtService.setOwnership(new DeviceIdentifier(DEVICE_ID,
+ "non-existent-dt"), EnrolmentInfo.OwnerShip.COPE.toString());
+ Assert.assertFalse(status);
+ }
+
+ @Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"}, expectedExceptions =
+ DeviceManagementException.class)
+ public void testSetOwnershipOfNullDevice() throws DeviceManagementException {
+ deviceMgtService.setOwnership(null, EnrolmentInfo.OwnerShip.COPE.toString());
+ }
+
@Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"})
public void testGetDeviesByStatus() throws DeviceManagementException {
PaginationRequest request = new PaginationRequest(0, 100);
@@ -435,6 +592,25 @@ public class DeviceManagementProviderServiceTest extends BaseDeviceManagementTes
Assert.assertTrue(result.getRecordsTotal() > 0);
}
+ @Test(dependsOnMethods = {"testReEnrollmentofSameDeviceUnderSameUser"})
+ public void testUpdateDevicesStatus() throws DeviceManagementException {
+ boolean status = deviceMgtService.setStatus("user1", EnrolmentInfo.Status.REMOVED);
+ Assert.assertTrue(status);
+ }
+
+ @Test(dependsOnMethods = {"testReEnrollmentofSameDeviceUnderSameUser"})
+ public void testUpdateDevicesStatusWithDeviceID() throws DeviceManagementException {
+ boolean status = deviceMgtService.setStatus(new DeviceIdentifier(DEVICE_ID, DEVICE_TYPE),"user1",
+ EnrolmentInfo.Status.ACTIVE);
+ Assert.assertTrue(status);
+ }
+
+ @Test(dependsOnMethods = {"testReEnrollmentofSameDeviceUnderSameUser"})
+ public void testUpdateDevicesStatusOfNonExistingUser() throws DeviceManagementException {
+ boolean status = deviceMgtService.setStatus("random-user", EnrolmentInfo.Status.REMOVED);
+ Assert.assertFalse(status);
+ }
+
@Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"})
public void testGetDeviesOfUserAndDeviceType() throws DeviceManagementException {
List devices = deviceMgtService.getDevicesOfUser("admin", DEVICE_TYPE, true);
@@ -451,7 +627,6 @@ public class DeviceManagementProviderServiceTest extends BaseDeviceManagementTes
props.setProperty("password", "!@#$$$%");
EmailMetaInfo metaInfo = new EmailMetaInfo(recipient, props);
-
deviceMgtService.sendRegistrationEmail(metaInfo);
Assert.assertTrue(true);
}
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 f793902e3f..677bc14153 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
@@ -22,7 +22,7 @@
device-mgt
org.wso2.carbon.devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManagerNegativeTest.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManagerNegativeTest.java
index 06c0a3a0fb..0d177c6c26 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManagerNegativeTest.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManagerNegativeTest.java
@@ -20,7 +20,7 @@ package org.wso2.carbon.device.mgt.extensions.device.type.template;
import org.h2.jdbcx.JdbcDataSource;
import org.mockito.Mockito;
-import org.testng.annotations.BeforeTest;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import org.wso2.carbon.base.MultitenantConstants;
import org.wso2.carbon.device.mgt.common.Device;
@@ -69,7 +69,7 @@ public class DeviceTypeManagerNegativeTest {
private PropertyBasedPluginDAOImpl propertyBasedPluginDAO;
private Device sampleDevice;
- @BeforeTest
+ @BeforeClass
public void setup()
throws SAXException, JAXBException, ParserConfigurationException, DeviceTypeConfigurationException,
IOException, NoSuchFieldException, IllegalAccessException {
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManagerServiceTest.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManagerServiceTest.java
index f90d33bd34..b512a2965d 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManagerServiceTest.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManagerServiceTest.java
@@ -21,14 +21,16 @@ package org.wso2.carbon.device.mgt.extensions.device.type.template;
import org.mockito.Mockito;
import org.testng.Assert;
-import org.testng.annotations.BeforeTest;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import org.wso2.carbon.base.MultitenantConstants;
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.DeviceStatusTaskPluginConfig;
import org.wso2.carbon.device.mgt.common.InitialOperationConfig;
+import org.wso2.carbon.device.mgt.common.InitialOperationConfig;
import org.wso2.carbon.device.mgt.common.OperationMonitoringTaskConfig;
import org.wso2.carbon.device.mgt.common.ProvisioningConfig;
+import org.wso2.carbon.device.mgt.common.ProvisioningConfig;
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry;
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
import org.wso2.carbon.device.mgt.common.license.mgt.License;
@@ -75,7 +77,7 @@ public class DeviceTypeManagerServiceTest {
private Method setPolicyMonitoringManager;
private Method setPullNotificationSubscriber;
- @BeforeTest
+ @BeforeClass
public void setup() throws NoSuchMethodException, SAXException, JAXBException, ParserConfigurationException,
DeviceTypeConfigurationException, IOException, NoSuchFieldException, IllegalAccessException,
DeviceManagementException, RegistryException {
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManagerTest.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManagerTest.java
index d6f732cf13..49a6a7c9ff 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManagerTest.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManagerTest.java
@@ -20,7 +20,7 @@ package org.wso2.carbon.device.mgt.extensions.device.type.template;
import org.mockito.Mockito;
import org.testng.Assert;
-import org.testng.annotations.BeforeTest;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import org.wso2.carbon.device.mgt.common.Device;
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
@@ -73,7 +73,7 @@ public class DeviceTypeManagerTest {
private String[] customDeviceTypeProperties = {"custom_property", "custom_property2"};
private final String SQL_FOLDER = "sql-files" + File.separator;
- @BeforeTest(description = "Mocking the classes for testing")
+ @BeforeClass(description = "Mocking the classes for testing")
public void setup() throws NoSuchFieldException, IllegalAccessException, IOException, SQLException, SAXException,
ParserConfigurationException, DeviceTypeConfigurationException, JAXBException {
ClassLoader classLoader = getClass().getClassLoader();
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/HttpDeviceTypeManagerServiceAndDeviceTypeGeneratorServceTest.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/HttpDeviceTypeManagerServiceAndDeviceTypeGeneratorServceTest.java
index b6beda3c2c..09435166dc 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/HttpDeviceTypeManagerServiceAndDeviceTypeGeneratorServceTest.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/HttpDeviceTypeManagerServiceAndDeviceTypeGeneratorServceTest.java
@@ -19,7 +19,7 @@
package org.wso2.carbon.device.mgt.extensions.device.type.template;
import org.testng.Assert;
-import org.testng.annotations.BeforeTest;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import org.wso2.carbon.device.mgt.common.Device;
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
@@ -60,7 +60,7 @@ public class HttpDeviceTypeManagerServiceAndDeviceTypeGeneratorServceTest {
private String androidSenseDeviceType = "androidsense";
private DeviceManagementService generatedDeviceManagementService;
- @BeforeTest
+ @BeforeClass
public void setup() throws RegistryException, IOException, SAXException, ParserConfigurationException,
DeviceTypeConfigurationException, JAXBException {
createSampleDeviceTypeMetaDefinition();
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/utils/UtilsTest.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/utils/UtilsTest.java
index 96f4c28694..feb549a22f 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/utils/UtilsTest.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/utils/UtilsTest.java
@@ -20,7 +20,7 @@
package org.wso2.carbon.device.mgt.extensions.utils;
import org.testng.Assert;
-import org.testng.annotations.BeforeTest;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import org.wso2.carbon.base.MultitenantConstants;
import org.wso2.carbon.context.PrivilegedCarbonContext;
@@ -51,7 +51,7 @@ import java.util.List;
public class UtilsTest {
private FileSystemBasedLicenseManager fileSystemBasedLicenseManager;
- @BeforeTest
+ @BeforeClass
public void setup() {
fileSystemBasedLicenseManager = new FileSystemBasedLicenseManager();
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml
index 1f1c2fed53..560e9a724b 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml
@@ -22,7 +22,7 @@
device-mgt
org.wso2.carbon.devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.url.printer/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.url.printer/pom.xml
index ddf34582c0..ff5f175e42 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.url.printer/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.url.printer/pom.xml
@@ -23,7 +23,7 @@
device-mgt
org.wso2.carbon.devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/pom.xml b/components/device-mgt/pom.xml
index c9c75761d2..d9a947580d 100644
--- a/components/device-mgt/pom.xml
+++ b/components/device-mgt/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../../pom.xml
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 864974119a..cf3cdd156a 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
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
email-sender
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
diff --git a/components/email-sender/pom.xml b/components/email-sender/pom.xml
index e60f65c15e..394e889e8b 100644
--- a/components/email-sender/pom.xml
+++ b/components/email-sender/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../../pom.xml
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 61c988e86c..5ff9a37937 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
@@ -22,13 +22,13 @@
org.wso2.carbon.devicemgt
identity-extensions
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.oauth.extensions
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
bundle
WSO2 Carbon - OAuth Extensions
http://wso2.org
diff --git a/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml b/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml
index d9d6654124..92fcdd602d 100644
--- a/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml
+++ b/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml
@@ -21,7 +21,7 @@
identity-extensions
org.wso2.carbon.devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
4.0.0
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 23fecff16f..065f757aa4 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
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
identity-extensions
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
diff --git a/components/identity-extensions/pom.xml b/components/identity-extensions/pom.xml
index aaf3056dd3..5cd4de1336 100644
--- a/components/identity-extensions/pom.xml
+++ b/components/identity-extensions/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../../pom.xml
diff --git a/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml b/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml
index 6b97132b90..ddc111c6dd 100644
--- a/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml
+++ b/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
policy-mgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.devicemgt
org.wso2.carbon.complex.policy.decision.point
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
bundle
WSO2 Carbon - Policy Decision Point
WSO2 Carbon - Policy Decision Point
diff --git a/components/policy-mgt/org.wso2.carbon.policy.decision.point/pom.xml b/components/policy-mgt/org.wso2.carbon.policy.decision.point/pom.xml
index 54801b58dc..31e23434ee 100644
--- a/components/policy-mgt/org.wso2.carbon.policy.decision.point/pom.xml
+++ b/components/policy-mgt/org.wso2.carbon.policy.decision.point/pom.xml
@@ -3,14 +3,14 @@
org.wso2.carbon.devicemgt
policy-mgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.devicemgt
org.wso2.carbon.policy.decision.point
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
bundle
WSO2 Carbon - Policy Decision Point
WSO2 Carbon - Policy Decision Point
diff --git a/components/policy-mgt/org.wso2.carbon.policy.information.point/pom.xml b/components/policy-mgt/org.wso2.carbon.policy.information.point/pom.xml
index 75dfc95ad9..9593e9caf9 100644
--- a/components/policy-mgt/org.wso2.carbon.policy.information.point/pom.xml
+++ b/components/policy-mgt/org.wso2.carbon.policy.information.point/pom.xml
@@ -3,7 +3,7 @@
org.wso2.carbon.devicemgt
policy-mgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
@@ -11,7 +11,7 @@
4.0.0
org.wso2.carbon.devicemgt
org.wso2.carbon.policy.information.point
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
bundle
WSO2 Carbon - Policy Information Point
WSO2 Carbon - Policy Information Point
diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/pom.xml b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/pom.xml
index 2a02ae5bbc..b87008bf7b 100644
--- a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/pom.xml
+++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
policy-mgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.devicemgt
org.wso2.carbon.policy.mgt.common
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
bundle
WSO2 Carbon - Policy Management Common
WSO2 Carbon - Policy Management Common
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 a62853c909..f91853b45c 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
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
policy-mgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.devicemgt
org.wso2.carbon.policy.mgt.core
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
bundle
WSO2 Carbon - Policy Management Core
WSO2 Carbon - Policy Management Core
diff --git a/components/policy-mgt/pom.xml b/components/policy-mgt/pom.xml
index 66731941c9..b3f6bfd697 100644
--- a/components/policy-mgt/pom.xml
+++ b/components/policy-mgt/pom.xml
@@ -23,13 +23,13 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../../pom.xml
4.0.0
policy-mgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
pom
WSO2 Carbon - Policy Management Component
http://wso2.org
diff --git a/components/test-coverage/pom.xml b/components/test-coverage/pom.xml
index ac05f968d3..a89b44a4ab 100644
--- a/components/test-coverage/pom.xml
+++ b/components/test-coverage/pom.xml
@@ -21,7 +21,7 @@
carbon-devicemgt
org.wso2.carbon.devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../../pom.xml
4.0.0
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 5f021209ba..4190b35bf7 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
@@ -21,14 +21,14 @@
org.wso2.carbon.devicemgt
webapp-authenticator-framework
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.devicemgt
org.wso2.carbon.webapp.authenticator.framework
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
bundle
WSO2 Carbon - Web Application Authenticator Framework Bundle
WSO2 Carbon - Web Application Authenticator Framework Bundle
@@ -248,6 +248,11 @@
h2-database-engine
test
+
+ org.powermock
+ powermock-api-mockito
+ test
+
diff --git a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/Utils/OAuthTokenValidationStubFactory.java b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/Utils/OAuthTokenValidationStubFactory.java
index 95fbc86a44..5d22e52056 100644
--- a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/Utils/OAuthTokenValidationStubFactory.java
+++ b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/Utils/OAuthTokenValidationStubFactory.java
@@ -97,44 +97,6 @@ public class OAuthTokenValidationStubFactory implements PoolableObjectFactory {
return connectionManager;
}
- /**
- * Creates an instance of PoolingHttpClientConnectionManager using HttpClient 4.x APIs
- *
- * @param properties Properties to configure PoolingHttpClientConnectionManager
- * @return An instance of properly configured PoolingHttpClientConnectionManager
- */
- private HttpClientConnectionManager createClientConnectionManager(Properties properties) {
- PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();
- if (properties != null) {
- String maxConnectionsPerHostParam = properties.getProperty("MaxConnectionsPerHost");
- if (maxConnectionsPerHostParam == null || maxConnectionsPerHostParam.isEmpty()) {
- if (log.isDebugEnabled()) {
- log.debug("MaxConnectionsPerHost parameter is not explicitly defined. Therefore, the default, " +
- "which is 2, will be used");
- }
- } else {
- connectionManager.setDefaultMaxPerRoute(Integer.parseInt(maxConnectionsPerHostParam));
- }
-
- String maxTotalConnectionsParam = properties.getProperty("MaxTotalConnections");
- if (maxTotalConnectionsParam == null || maxTotalConnectionsParam.isEmpty()) {
- if (log.isDebugEnabled()) {
- log.debug("MaxTotalConnections parameter is not explicitly defined. Therefore, the default, " +
- "which is 10, will be used");
- }
- } else {
- connectionManager.setMaxTotal(Integer.parseInt(maxTotalConnectionsParam));
- }
- } else {
- if (log.isDebugEnabled()) {
- log.debug("Properties, i.e. MaxTotalConnections/MaxConnectionsPerHost, required to tune the " +
- "HttpClient used in OAuth token validation service stub instances are not provided. " +
- "Therefore, the defaults, 2/10 respectively, will be used");
- }
- }
- return connectionManager;
- }
-
@Override
public Object makeObject() throws Exception {
return this.createStub();
diff --git a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/Utils/Utils.java b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/Utils/Utils.java
index db3b71ba7c..52510d5b67 100644
--- a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/Utils/Utils.java
+++ b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/Utils/Utils.java
@@ -134,10 +134,10 @@ public class Utils {
authenticationInfo.setUsername(username);
authenticationInfo.setTenantDomain(tenantDomain);
authenticationInfo.setTenantId(getTenantIdOFUser(username + "@" + tenantDomain));
- if (oAuthValidationResponse.isValid())
- authenticationInfo.setStatus(WebappAuthenticator.Status.CONTINUE);
+ authenticationInfo.setStatus(WebappAuthenticator.Status.CONTINUE);
} else {
authenticationInfo.setMessage(oAuthValidationResponse.getErrorMsg());
+ authenticationInfo.setStatus(WebappAuthenticator.Status.FAILURE);
}
return authenticationInfo;
}
diff --git a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/authenticator/JWTAuthenticator.java b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/authenticator/JWTAuthenticator.java
index 3339ad8ceb..99fd36d534 100644
--- a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/authenticator/JWTAuthenticator.java
+++ b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/authenticator/JWTAuthenticator.java
@@ -18,7 +18,6 @@
package org.wso2.carbon.webapp.authenticator.framework.authenticator;
-import com.nimbusds.jose.JOSEException;
import com.nimbusds.jose.JWSVerifier;
import com.nimbusds.jose.crypto.RSASSAVerifier;
import com.nimbusds.jwt.SignedJWT;
@@ -46,6 +45,7 @@ import java.security.interfaces.RSAPublicKey;
import java.text.ParseException;
import java.util.HashMap;
import java.util.Map;
+import java.util.Objects;
import java.util.Properties;
import java.util.StringTokenizer;
@@ -164,8 +164,6 @@ public class JWTAuthenticator implements WebappAuthenticator {
log.error("Error occurred while obtaining the user.", e);
} catch (ParseException e) {
log.error("Error occurred while parsing the JWT header.", e);
- } catch (JOSEException e) {
- log.error("Error occurred while verifying the JWT header.", e);
} catch (Exception e) {
log.error("Error occurred while verifying the JWT header.", e);
} finally {
@@ -203,12 +201,12 @@ public class JWTAuthenticator implements WebappAuthenticator {
private String tenantDomain;
private final String DEFAULT_ISSUER = "default";
- public IssuerAlias(String tenantDomain) {
+ IssuerAlias(String tenantDomain) {
this.issuer = DEFAULT_ISSUER;
this.tenantDomain = tenantDomain;
}
- public IssuerAlias(String issuer, String tenantDomain) {
+ IssuerAlias(String issuer, String tenantDomain) {
this.issuer = issuer;
this.tenantDomain = tenantDomain;
}
@@ -223,7 +221,7 @@ public class JWTAuthenticator implements WebappAuthenticator {
@Override
public boolean equals(Object obj) {
return (obj instanceof IssuerAlias) && issuer.equals(
- ((IssuerAlias) obj).issuer) && tenantDomain == ((IssuerAlias) obj).tenantDomain;
+ ((IssuerAlias) obj).issuer) && Objects.equals(tenantDomain, ((IssuerAlias) obj).tenantDomain);
}
}
}
diff --git a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/authenticator/oauth/impl/LocalOAuthValidator.java b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/authenticator/oauth/impl/LocalOAuthValidator.java
index 6a0422903b..cbd53b1b83 100755
--- a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/authenticator/oauth/impl/LocalOAuthValidator.java
+++ b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/authenticator/oauth/impl/LocalOAuthValidator.java
@@ -68,11 +68,11 @@ public class LocalOAuthValidator implements OAuth2TokenValidator {
if (MultitenantConstants.SUPER_TENANT_DOMAIN_NAME.equals(tenantDomain)) {
tenantDomain = MultitenantUtils.getTenantDomain(userName);
}
+ return new OAuthValidationResponse(userName, tenantDomain, true);
} else {
OAuthValidationResponse oAuthValidationResponse = new OAuthValidationResponse();
oAuthValidationResponse.setErrorMsg(tokenValidationResponse.getErrorMsg());
return oAuthValidationResponse;
}
- return new OAuthValidationResponse(userName,tenantDomain,isValid);
}
}
diff --git a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/authenticator/oauth/impl/RemoteOAuthValidator.java b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/authenticator/oauth/impl/RemoteOAuthValidator.java
index 7700941382..44488fd3f8 100755
--- a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/authenticator/oauth/impl/RemoteOAuthValidator.java
+++ b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/authenticator/oauth/impl/RemoteOAuthValidator.java
@@ -55,42 +55,41 @@ public class RemoteOAuthValidator implements OAuth2TokenValidator {
try {
OAuth2TokenValidationRequestDTO validationRequest = createValidationRequest(accessToken, resource);
stub = (OAuth2TokenValidationServiceStub) this.stubs.borrowObject();
- validationResponse =
- stub.findOAuthConsumerIfTokenIsValid(validationRequest).getAccessTokenValidationResponse();
+ validationResponse = stub.findOAuthConsumerIfTokenIsValid(validationRequest)
+ .getAccessTokenValidationResponse();
} catch (RemoteException e) {
- throw new OAuthTokenValidationException("Remote Exception occurred while invoking the Remote " +
- "IS server for OAuth2 token validation.", e);
+ throw new OAuthTokenValidationException(
+ "Remote Exception occurred while invoking the Remote " + "IS server for OAuth2 token validation.",
+ e);
} catch (Exception e) {
- throw new OAuthTokenValidationException("Error occurred while borrowing an oauth token validation " +
- "service stub from the pool", e);
+ throw new OAuthTokenValidationException(
+ "Error occurred while borrowing an oauth token validation " + "service stub from the pool", e);
} finally {
try {
this.stubs.returnObject(stub);
} catch (Exception e) {
- log.warn("Error occurred while returning the object back to the oauth token validation service " +
- "stub pool", e);
+ log.warn("Error occurred while returning the object back to the oauth token validation service "
+ + "stub pool", e);
}
}
-
if (validationResponse == null) {
if (log.isDebugEnabled()) {
log.debug("Response returned by the OAuth token validation service is null");
}
return null;
}
-
boolean isValid = validationResponse.getValid();
String tenantDomain;
String username;
if (isValid) {
username = MultitenantUtils.getTenantAwareUsername(validationResponse.getAuthorizedUser());
tenantDomain = MultitenantUtils.getTenantDomain(validationResponse.getAuthorizedUser());
+ return new OAuthValidationResponse(username, tenantDomain, true);
} else {
OAuthValidationResponse oAuthValidationResponse = new OAuthValidationResponse();
oAuthValidationResponse.setErrorMsg(validationResponse.getErrorMsg());
return oAuthValidationResponse;
}
- return new OAuthValidationResponse(username, tenantDomain, isValid);
}
private OAuth2TokenValidationRequestDTO createValidationRequest(String accessToken, String resource) {
diff --git a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/java/org/wso2/carbon/webapp/authenticator/framework/authenticator/BSTAuthenticatorTest.java b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/java/org/wso2/carbon/webapp/authenticator/framework/authenticator/BSTAuthenticatorTest.java
index 9eeaca651f..66ab2e2871 100644
--- a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/java/org/wso2/carbon/webapp/authenticator/framework/authenticator/BSTAuthenticatorTest.java
+++ b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/java/org/wso2/carbon/webapp/authenticator/framework/authenticator/BSTAuthenticatorTest.java
@@ -19,12 +19,29 @@
package org.wso2.carbon.webapp.authenticator.framework.authenticator;
+import org.apache.catalina.Context;
+import org.apache.catalina.connector.Request;
+import org.apache.catalina.core.StandardContext;
+import org.apache.commons.io.FileUtils;
+import org.apache.tomcat.util.buf.MessageBytes;
+import org.apache.tomcat.util.http.MimeHeaders;
+import org.mockito.Mockito;
import org.testng.Assert;
-import org.testng.annotations.BeforeTest;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
+import org.wso2.carbon.base.MultitenantConstants;
+import org.wso2.carbon.identity.oauth2.OAuth2TokenValidationService;
+import org.wso2.carbon.identity.oauth2.dto.OAuth2ClientApplicationDTO;
+import org.wso2.carbon.identity.oauth2.dto.OAuth2TokenValidationResponseDTO;
+import org.wso2.carbon.webapp.authenticator.framework.AuthenticationInfo;
import org.wso2.carbon.webapp.authenticator.framework.authenticator.oauth.OAuth2TokenValidator;
+import org.wso2.carbon.webapp.authenticator.framework.internal.AuthenticatorFrameworkDataHolder;
+import org.wso2.carbon.webapp.authenticator.framework.util.TestInputBuffer;
+import java.io.File;
+import java.io.IOException;
import java.lang.reflect.Field;
+import java.net.URL;
import java.util.Properties;
/**
@@ -33,11 +50,29 @@ import java.util.Properties;
public class BSTAuthenticatorTest {
private BSTAuthenticator bstAuthenticator;
private Properties properties;
+ private Field headersField;
+ private OAuth2TokenValidationService oAuth2TokenValidationService;
+ private OAuth2ClientApplicationDTO oAuth2ClientApplicationDTO;
- @BeforeTest
- public void init() {
+ @BeforeClass
+ public void init() throws NoSuchFieldException {
bstAuthenticator = new BSTAuthenticator();
properties = new Properties();
+ headersField = org.apache.coyote.Request.class.getDeclaredField("headers");
+ headersField.setAccessible(true);
+ oAuth2TokenValidationService = Mockito
+ .mock(OAuth2TokenValidationService.class, Mockito.CALLS_REAL_METHODS);
+ oAuth2ClientApplicationDTO = Mockito
+ .mock(OAuth2ClientApplicationDTO.class, Mockito.CALLS_REAL_METHODS);
+
+ OAuth2TokenValidationResponseDTO authorizedValidationResponse = new OAuth2TokenValidationResponseDTO();
+ authorizedValidationResponse.setValid(true);
+ authorizedValidationResponse.setAuthorizedUser("admin@" + MultitenantConstants.SUPER_TENANT_DOMAIN_NAME);
+
+ Mockito.doReturn(oAuth2ClientApplicationDTO).when(oAuth2TokenValidationService)
+ .findOAuthConsumerIfTokenIsValid(Mockito.any());
+ oAuth2ClientApplicationDTO.setAccessTokenValidationResponse(authorizedValidationResponse);
+ AuthenticatorFrameworkDataHolder.getInstance().setOAuth2TokenValidationService(oAuth2TokenValidationService);
}
@Test(description = "This test case is used to test the behaviour of BST Authenticator when the properties are "
@@ -89,4 +124,125 @@ public class BSTAuthenticatorTest {
Assert.assertNotNull(oAuth2TokenValidator, "Token validation creation failed even with the required "
+ "parameters.");
}
+
+ @Test(description = "This method tests the get methods of the BST Authenticator",
+ dependsOnMethods = {"testInitWithRemote"})
+ public void testGetterMethods() {
+ Assert.assertNotNull(bstAuthenticator.getProperties(), "Retrieval of properties from BSTAuthenticator failed");
+ Assert.assertNotNull(bstAuthenticator.getProperty("Password"),
+ "Retrieval of added property failed in " + "BSTAuthenticator");
+ Assert.assertNull(bstAuthenticator.getProperty("test"),
+ "Retrieval of property test is successful, which is " + "never added");
+ Assert.assertEquals(bstAuthenticator.getName(), "BSTAuthenticator",
+ "Name returned by BSTAuthenticator does" + " not match.");
+ }
+
+ @Test(description = "This test case tests the canHandle method of the BSTAuthenticator under faulty conditions")
+ public void testCanHandleWithFalseConditions() throws IllegalAccessException {
+ Request request = new Request();
+ org.apache.coyote.Request coyoteRequest = new org.apache.coyote.Request();
+ request.setCoyoteRequest(coyoteRequest);
+ Assert.assertFalse(bstAuthenticator.canHandle(request),
+ "BST Authenticator can handle a request without content type");
+
+ MimeHeaders mimeHeaders = new MimeHeaders();
+ MessageBytes bytes = mimeHeaders.addValue("content-type");
+ bytes.setString("test");
+ headersField.set(coyoteRequest, mimeHeaders);
+ request.setCoyoteRequest(coyoteRequest);
+ Assert.assertFalse(bstAuthenticator.canHandle(request),
+ "BST Authenticator can handle a request with content type test");
+ }
+
+
+ @Test(description = "This test case tests the canHandle method of the BSTAuthenticator under valid conditions")
+ public void testCanHandleWithValidRequest() throws IOException, IllegalAccessException {
+ Request request = createSoapRequest("CorrectBST.xml");
+ Assert.assertTrue(bstAuthenticator.canHandle(request), "BST Authenticator cannot handle a valid "
+ + "authentication request");
+ }
+
+ @Test(description = "This test case tests the canHandle method of the BSTAuthenticator under missing soap headers")
+ public void testCanHandleWithMissingHeaders() throws IOException, IllegalAccessException {
+ Request request = createSoapRequest("WrongBST1.xml");
+ Assert.assertFalse(bstAuthenticator.canHandle(request),
+ "BST Authenticator can handle a request with missing headers ");
+ request = createSoapRequest("WrongBST2.xml");
+ Assert.assertFalse(bstAuthenticator.canHandle(request),
+ "BST Authenticator can handle a request with missing headers ");
+ }
+
+ @Test(description = "This method tests the authenticate method of BST Authenticator when only minimal information"
+ + " is provided")
+ public void testAuthenticateWithMinimalConditions() throws NoSuchFieldException, IllegalAccessException {
+ Request request = new Request();
+ org.apache.coyote.Request coyoteRequest = new org.apache.coyote.Request();
+ request.setCoyoteRequest(coyoteRequest);
+ AuthenticationInfo authenticationInfo = bstAuthenticator.authenticate(request, null);
+ Assert.assertEquals(authenticationInfo.getStatus(), WebappAuthenticator.Status.CONTINUE,
+ "Authentication status of authentication info is wrong");
+ }
+
+ @Test(description = "This method tests the authenticate method of BST Authenticator when all the relevant "
+ + "details", dependsOnMethods = "testInitWithRemote")
+ public void testAuthenticate() throws NoSuchFieldException, IllegalAccessException, IOException {
+ Request request = createSoapRequest("CorrectBST.xml");
+ org.apache.coyote.Request coyoteRequest = request.getCoyoteRequest();
+ Field uriMB = org.apache.coyote.Request.class.getDeclaredField("uriMB");
+ uriMB.setAccessible(true);
+ MessageBytes bytes = MessageBytes.newInstance();
+ bytes.setString("test");
+ uriMB.set(coyoteRequest, bytes);
+ request.setCoyoteRequest(coyoteRequest);
+ bstAuthenticator.canHandle(request);
+ AuthenticationInfo authenticationInfo = bstAuthenticator.authenticate(request, null);
+ Assert.assertEquals(authenticationInfo.getStatus(), WebappAuthenticator.Status.CONTINUE,
+ "Authentication status of authentication info is wrong");
+ Assert.assertEquals(authenticationInfo.getUsername(), "admin",
+ "User name in the authentication info is different than original user");
+ OAuth2TokenValidationResponseDTO unAuthorizedValidationRespose = new OAuth2TokenValidationResponseDTO();
+ unAuthorizedValidationRespose.setValid(false);
+ unAuthorizedValidationRespose.setErrorMsg("User is not authorized");
+ Mockito.doReturn(oAuth2ClientApplicationDTO).when(oAuth2TokenValidationService)
+ .findOAuthConsumerIfTokenIsValid(Mockito.any());
+ oAuth2ClientApplicationDTO.setAccessTokenValidationResponse(unAuthorizedValidationRespose);
+ AuthenticatorFrameworkDataHolder.getInstance().setOAuth2TokenValidationService(oAuth2TokenValidationService);
+ authenticationInfo = bstAuthenticator.authenticate(request, null);
+ Assert.assertEquals(authenticationInfo.getStatus(), WebappAuthenticator.Status.FAILURE,
+ "Un-authorized user got authenticated with BST");
+ }
+
+ /**
+ * To create a soap request by reading the request from given file.
+ *
+ * @param fileName Name of the file that has the soap request content.
+ * @return Request created with soap content.
+ * @throws IllegalAccessException Illegal Access Exception.
+ * @throws IOException IO Exception.
+ */
+ private Request createSoapRequest(String fileName) throws IllegalAccessException, IOException {
+ Request request = new Request();
+ ClassLoader classLoader = getClass().getClassLoader();
+ URL resourceUrl = classLoader
+ .getResource("requests" + File.separator + "BST" + File.separator + fileName);
+ String bstRequestContent = null;
+ if (resourceUrl != null) {
+ File bst = new File(resourceUrl.getFile());
+ bstRequestContent = FileUtils.readFileToString(bst);
+ }
+ org.apache.coyote.Request coyoteRequest = new org.apache.coyote.Request();
+ MimeHeaders mimeHeaders = new MimeHeaders();
+ MessageBytes bytes = mimeHeaders.addValue("content-type");
+ bytes.setString("application/xml");
+ bytes = mimeHeaders.addValue("custom");
+ bytes.setString(bstRequestContent);
+ headersField.set(coyoteRequest, mimeHeaders);
+ TestInputBuffer inputBuffer = new TestInputBuffer();
+ coyoteRequest.setInputBuffer(inputBuffer);
+ Context context = new StandardContext();
+ request.setContext(context);
+ request.setCoyoteRequest(coyoteRequest);
+ return request;
+ }
+
}
diff --git a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/java/org/wso2/carbon/webapp/authenticator/framework/authenticator/BasicAuthAuthenticatorTest.java b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/java/org/wso2/carbon/webapp/authenticator/framework/authenticator/BasicAuthAuthenticatorTest.java
index 2553f04423..91ac4abab9 100644
--- a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/java/org/wso2/carbon/webapp/authenticator/framework/authenticator/BasicAuthAuthenticatorTest.java
+++ b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/java/org/wso2/carbon/webapp/authenticator/framework/authenticator/BasicAuthAuthenticatorTest.java
@@ -26,6 +26,7 @@ import org.apache.commons.codec.EncoderException;
import org.apache.tomcat.util.buf.MessageBytes;
import org.apache.tomcat.util.http.MimeHeaders;
import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
@@ -51,7 +52,7 @@ public class BasicAuthAuthenticatorTest {
private MessageBytes bytes;
private final String BASIC_HEADER = "basic ";
- @BeforeTest
+ @BeforeClass
public void init() throws NoSuchFieldException {
basicAuthAuthenticator = new BasicAuthAuthenticator();
headersField = org.apache.coyote.Request.class.getDeclaredField("headers");
diff --git a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/java/org/wso2/carbon/webapp/authenticator/framework/authenticator/OauthAuthenticatorTest.java b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/java/org/wso2/carbon/webapp/authenticator/framework/authenticator/OauthAuthenticatorTest.java
new file mode 100644
index 0000000000..24deab4123
--- /dev/null
+++ b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/java/org/wso2/carbon/webapp/authenticator/framework/authenticator/OauthAuthenticatorTest.java
@@ -0,0 +1,156 @@
+/*
+ * Copyright (c) 2017, 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.webapp.authenticator.framework.authenticator;
+
+import org.apache.catalina.connector.Request;
+import org.apache.commons.pool.impl.GenericObjectPool;
+import org.apache.tomcat.util.buf.MessageBytes;
+import org.apache.tomcat.util.http.MimeHeaders;
+import org.mockito.Mockito;
+import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+import org.wso2.carbon.core.security.AuthenticatorsConfiguration;
+import org.wso2.carbon.identity.oauth2.stub.OAuth2TokenValidationServiceStub;
+import org.wso2.carbon.identity.oauth2.stub.dto.OAuth2ClientApplicationDTO;
+import org.wso2.carbon.identity.oauth2.stub.dto.OAuth2TokenValidationResponseDTO;
+import org.wso2.carbon.webapp.authenticator.framework.AuthenticationInfo;
+import org.wso2.carbon.webapp.authenticator.framework.BaseWebAppAuthenticatorFrameworkTest;
+import org.wso2.carbon.webapp.authenticator.framework.authenticator.oauth.impl.RemoteOAuthValidator;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Properties;
+
+/**
+ * This is a test case for {@link OAuthAuthenticator}
+ */
+public class OauthAuthenticatorTest {
+ private OAuthAuthenticator oAuthAuthenticator;
+ private final String BEARER_HEADER = "bearer ";
+ private Field headersField;
+ private Properties properties;
+
+ @BeforeClass
+ public void setup()
+ throws NoSuchFieldException, NoSuchMethodException, InvocationTargetException, IllegalAccessException {
+ oAuthAuthenticator = new OAuthAuthenticator();
+ headersField = org.apache.coyote.Request.class.getDeclaredField("headers");
+ headersField.setAccessible(true);
+ }
+
+ @Test(description = "This method tests the successful execution of init method")
+ public void testInit() throws NoSuchFieldException, IllegalAccessException {
+ properties = new Properties();
+ properties.setProperty("TokenValidationEndpointUrl", "test");
+ properties.setProperty("Username", "admin");
+ properties.setProperty("Password", "admin");
+ properties.setProperty("IsRemote", "true");
+ properties.setProperty("MaxConnectionsPerHost", "100");
+ properties.setProperty("MaxTotalConnections", "1000");
+ Assert.assertNull(oAuthAuthenticator.getProperty("test"),
+ "OAuth authenticator is returning the properties that were never set");
+ oAuthAuthenticator.setProperties(properties);
+ oAuthAuthenticator.init();
+ Field tokenValidator = OAuthAuthenticator.class.getDeclaredField("tokenValidator");
+ tokenValidator.setAccessible(true);
+ Assert.assertNotNull(tokenValidator.get(oAuthAuthenticator), "OauthAuthenticator initialization failed");
+ Assert.assertEquals(oAuthAuthenticator.getName(), "OAuth", "Name of the OauthAuthenticator does not match");
+ }
+
+ @Test(description = "This method tests the canHandle method of OAuthAuthenticator")
+ public void testCanHandle() throws IllegalAccessException {
+ Request request = createOauthRequest(BEARER_HEADER);
+ Assert.assertTrue(oAuthAuthenticator.canHandle(request),
+ "The request with the bearer authorization header cannot be handled by OauthAuthenticator");
+
+ request = createOauthRequest("test");
+ Assert.assertFalse(oAuthAuthenticator.canHandle(request),
+ "The request without bearer authorization header can be handled by OauthAuthenticator");
+ }
+
+ @Test(description = "This method tests the authenticate under different parameters",
+ dependsOnMethods = {"testInit"})
+ public void testAuthenticate() throws Exception {
+ Request request = createOauthRequest(BEARER_HEADER);
+ Assert.assertEquals(oAuthAuthenticator.authenticate(request, null).getStatus(),
+ WebappAuthenticator.Status.CONTINUE, "Authentication status mismatched");
+ request = createOauthRequest(BEARER_HEADER + "abc");
+ org.apache.coyote.Request coyoteRequest = request.getCoyoteRequest();
+ Field uriMB = org.apache.coyote.Request.class.getDeclaredField("uriMB");
+ uriMB.setAccessible(true);
+ MessageBytes bytes = MessageBytes.newInstance();
+ bytes.setString("test");
+ uriMB.set(coyoteRequest, bytes);
+ request.setCoyoteRequest(coyoteRequest);
+ Field tokenValidator = OAuthAuthenticator.class.getDeclaredField("tokenValidator");
+ tokenValidator.setAccessible(true);
+
+ GenericObjectPool genericObjectPool = Mockito.mock(GenericObjectPool.class, Mockito.CALLS_REAL_METHODS);
+ RemoteOAuthValidator remoteOAuthValidator = Mockito
+ .mock(RemoteOAuthValidator.class, Mockito.CALLS_REAL_METHODS);
+ tokenValidator.set(oAuthAuthenticator, remoteOAuthValidator);
+ Field stubs = RemoteOAuthValidator.class.getDeclaredField("stubs");
+ stubs.setAccessible(true);
+ stubs.set(remoteOAuthValidator, genericObjectPool);
+ OAuth2TokenValidationResponseDTO oAuth2TokenValidationResponseDTO = new OAuth2TokenValidationResponseDTO();
+ oAuth2TokenValidationResponseDTO.setValid(true);
+ oAuth2TokenValidationResponseDTO.setAuthorizedUser("admin@carbon.super");
+ OAuth2ClientApplicationDTO oAuth2ClientApplicationDTO = Mockito
+ .mock(OAuth2ClientApplicationDTO.class, Mockito.CALLS_REAL_METHODS);
+ Mockito.doReturn(oAuth2TokenValidationResponseDTO).when(oAuth2ClientApplicationDTO)
+ .getAccessTokenValidationResponse();
+ OAuth2TokenValidationServiceStub oAuth2TokenValidationServiceStub = Mockito
+ .mock(OAuth2TokenValidationServiceStub.class, Mockito.CALLS_REAL_METHODS);
+ Mockito.doReturn(oAuth2ClientApplicationDTO).when(oAuth2TokenValidationServiceStub)
+ .findOAuthConsumerIfTokenIsValid(Mockito.any());
+ Mockito.doReturn(oAuth2TokenValidationServiceStub).when(genericObjectPool).borrowObject();
+ oAuthAuthenticator.canHandle(request);
+ AuthenticationInfo authenticationInfo = oAuthAuthenticator.authenticate(request, null);
+ Assert.assertEquals(authenticationInfo.getUsername(), "admin");
+
+ }
+
+ @Test(description = "This method is used to test getProperty method of the OAuthAuthenticator",
+ dependsOnMethods = {"testInit"})
+ public void testGetProperty() {
+ Assert.assertEquals(oAuthAuthenticator.getProperty("Username"), "admin",
+ "Username property of " + "OauthAuthenticator is not matching with the assigned one.");
+ Assert.assertEquals(oAuthAuthenticator.getProperties().size(), properties.size(),
+ "Property list assigned " + "does not match with retrieved list");
+ }
+
+ /**
+ * This will create an OAuth request.
+ *
+ * @param authorizationHeader Authorization Header
+ */
+ private Request createOauthRequest(String authorizationHeader) throws IllegalAccessException {
+ Request request = new Request();
+ org.apache.coyote.Request coyoteRequest = new org.apache.coyote.Request();
+ MimeHeaders mimeHeaders = new MimeHeaders();
+ MessageBytes bytes = mimeHeaders.addValue(BaseWebAppAuthenticatorFrameworkTest.AUTHORIZATION_HEADER);
+ bytes.setString(authorizationHeader);
+ headersField.set(coyoteRequest, mimeHeaders);
+ request.setCoyoteRequest(coyoteRequest);
+ return request;
+ }
+}
diff --git a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/java/org/wso2/carbon/webapp/authenticator/framework/util/TestInputBuffer.java b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/java/org/wso2/carbon/webapp/authenticator/framework/util/TestInputBuffer.java
new file mode 100644
index 0000000000..7ded99b18a
--- /dev/null
+++ b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/java/org/wso2/carbon/webapp/authenticator/framework/util/TestInputBuffer.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2017, 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.webapp.authenticator.framework.util;
+
+import org.apache.catalina.connector.InputBuffer;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.coyote.Request;
+import org.apache.tomcat.util.buf.ByteChunk;
+import org.apache.tomcat.util.buf.MessageBytes;
+import org.apache.tomcat.util.http.MimeHeaders;
+
+import java.io.IOException;
+import java.lang.reflect.Field;
+
+/**
+ * This is a dummy implementation of {@link InputBuffer} for the test cases.
+ */
+public class TestInputBuffer implements org.apache.coyote.InputBuffer {
+ private Log log = LogFactory.getLog(TestInputBuffer.class);
+
+ @Override
+ public int doRead(ByteChunk byteChunk, Request request) throws IOException {
+ String string = request.getHeader("custom");
+ MimeHeaders mimeHeaders = new MimeHeaders();
+ Field byteC = null;
+ try {
+ byteC = MessageBytes.class.getDeclaredField("byteC");
+ byteC.setAccessible(true);
+ } catch (NoSuchFieldException e) {
+ log.error("Cannot get the byteC field", e);
+ }
+ MessageBytes bytes = mimeHeaders.addValue("content-type");
+ try {
+ if (byteC != null) {
+ byteC.set(bytes, byteChunk);
+ }
+ } catch (IllegalAccessException e) {
+ log.error("Cannot set byteC field", e);
+ }
+ bytes.setString(string);
+ bytes.toBytes();
+ return byteChunk.getLength();
+ }
+}
diff --git a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/resources/requests/BST/CorrectBST.xml b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/resources/requests/BST/CorrectBST.xml
new file mode 100644
index 0000000000..9be7210ec6
--- /dev/null
+++ b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/resources/requests/BST/CorrectBST.xml
@@ -0,0 +1,25 @@
+
+
+
+
+ test
+
+
+
+
+
diff --git a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/resources/requests/BST/WrongBST1.xml b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/resources/requests/BST/WrongBST1.xml
new file mode 100644
index 0000000000..b83635c6d1
--- /dev/null
+++ b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/resources/requests/BST/WrongBST1.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/resources/requests/BST/WrongBST2.xml b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/resources/requests/BST/WrongBST2.xml
new file mode 100644
index 0000000000..671d1e770e
--- /dev/null
+++ b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/resources/requests/BST/WrongBST2.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
diff --git a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/resources/testng.xml b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/resources/testng.xml
index 4ce2c1153a..d166d4b15e 100644
--- a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/resources/testng.xml
+++ b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/test/resources/testng.xml
@@ -30,6 +30,7 @@
+
diff --git a/components/webapp-authenticator-framework/pom.xml b/components/webapp-authenticator-framework/pom.xml
index 5682ec1f84..8a039c09cd 100644
--- a/components/webapp-authenticator-framework/pom.xml
+++ b/components/webapp-authenticator-framework/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../../pom.xml
4.0.0
org.wso2.carbon.devicemgt
webapp-authenticator-framework
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
pom
WSO2 Carbon - Webapp Authenticator Framework
http://wso2.org
diff --git a/features/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.feature/pom.xml b/features/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.feature/pom.xml
index 851947fcfb..aee0053b20 100644
--- a/features/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.feature/pom.xml
+++ b/features/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.feature/pom.xml
@@ -21,14 +21,14 @@
org.wso2.carbon.devicemgt
apimgt-extensions-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.application.extension.feature
pom
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
WSO2 Carbon - API Management Application Extension Feature
http://wso2.org
This feature contains an implementation of a api application registration, which takes care of subscription
diff --git a/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml b/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml
index d1ba839c1f..21cd8e3d74 100644
--- a/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml
+++ b/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
apimgt-extensions-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.handler.server.feature
pom
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
WSO2 Carbon - Device Management - APIM handler Server Feature
http://wso2.org
This feature contains the handler for the api authentications
diff --git a/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml b/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml
index 8f01e3730d..8bc00561d1 100644
--- a/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml
+++ b/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml
@@ -21,13 +21,13 @@
org.wso2.carbon.devicemgt
apimgt-extensions-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.integration.client.feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
pom
WSO2 Carbon - APIM Integration Client Feature
http://wso2.org
diff --git a/features/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher.feature/pom.xml b/features/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher.feature/pom.xml
index 6f4787e25d..d6aaea623a 100644
--- a/features/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher.feature/pom.xml
+++ b/features/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher.feature/pom.xml
@@ -21,14 +21,14 @@
org.wso2.carbon.devicemgt
apimgt-extensions-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.webapp.publisher.feature
pom
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
WSO2 Carbon - API Management Webapp Publisher Feature
http://wso2.org
This feature contains an implementation of a Tomcat lifecycle listener, which takes care of publishing
diff --git a/features/apimgt-extensions/pom.xml b/features/apimgt-extensions/pom.xml
index 46bb797aad..6553a3d1a1 100644
--- a/features/apimgt-extensions/pom.xml
+++ b/features/apimgt-extensions/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../../pom.xml
4.0.0
org.wso2.carbon.devicemgt
apimgt-extensions-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
pom
WSO2 Carbon - API Management Extensions Feature
http://wso2.org
diff --git a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.api.feature/pom.xml b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.api.feature/pom.xml
index 0bac36a223..fcbce9d773 100644
--- a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.api.feature/pom.xml
+++ b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.api.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
certificate-mgt-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
diff --git a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api.feature/pom.xml b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api.feature/pom.xml
index c381687cb3..4ecaf97f03 100644
--- a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api.feature/pom.xml
+++ b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
certificate-mgt-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
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 5373be7601..6bbe7752d5 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
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
certificate-mgt-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.certificate.mgt.server.feature
pom
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
WSO2 Carbon - Certificate Management Server Feature
http://wso2.org
This feature contains the core bundles required for back-end Certificate Management functionality
diff --git a/features/certificate-mgt/pom.xml b/features/certificate-mgt/pom.xml
index 3e197073cd..a785c751f4 100644
--- a/features/certificate-mgt/pom.xml
+++ b/features/certificate-mgt/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../../pom.xml
4.0.0
org.wso2.carbon.devicemgt
certificate-mgt-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
pom
WSO2 Carbon - Certificate Management Feature
http://wso2.org
diff --git a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature/pom.xml b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature/pom.xml
index dfde4fb53a..5802e02903 100644
--- a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature/pom.xml
+++ b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
device-mgt-extensions-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature
pom
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
WSO2 Carbon - Device Type Deployer Feature
http://wso2.org
WSO2 Carbon - Device Type Deployer Feature
diff --git a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature/pom.xml b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature/pom.xml
index 203870e46d..51fbc838cb 100644
--- a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature/pom.xml
+++ b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
device-mgt-extensions-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature
pom
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
WSO2 Carbon - FCM Based Push Notification Provider Feature
http://wso2.org
WSO2 Carbon - MQTT Based Push Notification Provider Feature
diff --git a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature/pom.xml b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature/pom.xml
index ee40a0e4e2..929fc52057 100644
--- a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature/pom.xml
+++ b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
device-mgt-extensions-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature
pom
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
WSO2 Carbon - MQTT Based Push Notification Provider Feature
http://wso2.org
WSO2 Carbon - MQTT Based Push Notification Provider Feature
diff --git a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature/pom.xml b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature/pom.xml
index c3242abd0a..e390d6c8f7 100644
--- a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature/pom.xml
+++ b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
device-mgt-extensions-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature
pom
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
WSO2 Carbon - MQTT Based Push Notification Provider Feature
http://wso2.org
WSO2 Carbon - MQTT Based Push Notification Provider Feature
diff --git a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature/pom.xml b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature/pom.xml
index 382641083b..11e4e7bc36 100644
--- a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature/pom.xml
+++ b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
device-mgt-extensions-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature
pom
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
WSO2 Carbon - XMPP Based Push Notification Provider Feature
http://wso2.org
WSO2 Carbon - XMPP Based Push Notification Provider Feature
diff --git a/features/device-mgt-extensions/pom.xml b/features/device-mgt-extensions/pom.xml
index 6cd514c1c5..d607c28460 100644
--- a/features/device-mgt-extensions/pom.xml
+++ b/features/device-mgt-extensions/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../../pom.xml
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 4a966bdc0f..2e15777494 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
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
device-mgt-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.analytics.data.publisher.feature
pom
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
WSO2 Carbon - Device Management Server Feature
http://wso2.org
This feature contains bundles related to device analytics data publisher
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.api.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.api.feature/pom.xml
index 9c602d46d1..1186d6d60a 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.api.feature/pom.xml
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.api.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
device-mgt-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
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 69223e9eb4..4fec0a99b9 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
@@ -4,14 +4,14 @@
org.wso2.carbon.devicemgt
device-mgt-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.extensions.feature
pom
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
WSO2 Carbon - Device Management Extensions Feature
http://wso2.org
This feature contains common extensions used by key device management functionalities
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 8afcc4d2e0..ae3efcbd6b 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
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
device-mgt-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
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 277680a9bd..9a0fd82651 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
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
device-mgt-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.server.feature
pom
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
WSO2 Carbon - Device Management Server Feature
http://wso2.org
This feature contains the core bundles required for Back-end Device Management functionality
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml
index e821ff6b42..3395a77803 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
device-mgt-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt/pom.xml b/features/device-mgt/pom.xml
index c22752b630..3b195c6400 100644
--- a/features/device-mgt/pom.xml
+++ b/features/device-mgt/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../../pom.xml
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 6a0083599f..95d3011678 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
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
email-sender-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.email.sender.feature
pom
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
WSO2 Carbon - Email Sender Feature
http://wso2.org
This feature contains the core bundles required for email sender related functionality
diff --git a/features/email-sender/pom.xml b/features/email-sender/pom.xml
index e8b02cd04a..574a06bb20 100644
--- a/features/email-sender/pom.xml
+++ b/features/email-sender/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../../pom.xml
4.0.0
org.wso2.carbon.devicemgt
email-sender-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
pom
WSO2 Carbon - Email Sender Feature
http://wso2.org
diff --git a/features/jwt-client/org.wso2.carbon.identity.jwt.client.extension.feature/pom.xml b/features/jwt-client/org.wso2.carbon.identity.jwt.client.extension.feature/pom.xml
index 178ac6c679..c7d209ebbe 100644
--- a/features/jwt-client/org.wso2.carbon.identity.jwt.client.extension.feature/pom.xml
+++ b/features/jwt-client/org.wso2.carbon.identity.jwt.client.extension.feature/pom.xml
@@ -23,14 +23,14 @@
org.wso2.carbon.devicemgt
jwt-client-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.identity.jwt.client.extension.feature
pom
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
WSO2 Carbon - JWT Client Feature
http://wso2.org
This feature contains jwt client implementation from which we can get a access token using the jwt
diff --git a/features/jwt-client/pom.xml b/features/jwt-client/pom.xml
index 044ce72403..4b4bccf0c1 100644
--- a/features/jwt-client/pom.xml
+++ b/features/jwt-client/pom.xml
@@ -23,13 +23,13 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../../pom.xml
4.0.0
jwt-client-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
pom
WSO2 Carbon - JWT Client Extension Feature
http://wso2.org
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 e17b172f33..477fef5cc7 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
@@ -23,14 +23,14 @@
org.wso2.carbon.devicemgt
oauth-extensions-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.oauth.extensions.feature
pom
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
WSO2 Carbon - Device Mgt OAuth Extensions Feature
http://wso2.org
This feature contains devicemgt related OAuth extensions
diff --git a/features/oauth-extensions/pom.xml b/features/oauth-extensions/pom.xml
index 6bd0a60cac..8b25b81a53 100644
--- a/features/oauth-extensions/pom.xml
+++ b/features/oauth-extensions/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../../pom.xml
4.0.0
org.wso2.carbon.devicemgt
oauth-extensions-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
pom
WSO2 Carbon - Device Management OAuth Extensions Feature
http://wso2.org
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 caf801d3b7..b535ac8f55 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
@@ -23,14 +23,14 @@
org.wso2.carbon.devicemgt
policy-mgt-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.policy.mgt.server.feature
pom
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
WSO2 Carbon - Policy Management Server Feature
http://wso2.org
This feature contains the core bundles required for Back-end Device Management functionality
diff --git a/features/policy-mgt/pom.xml b/features/policy-mgt/pom.xml
index a47dabf09d..92d4820562 100644
--- a/features/policy-mgt/pom.xml
+++ b/features/policy-mgt/pom.xml
@@ -23,14 +23,14 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../../pom.xml
4.0.0
org.wso2.carbon.devicemgt
policy-mgt-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
pom
WSO2 Carbon - Policy Management Feature
http://wso2.org
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 8affd01ab7..46f2ed3adc 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
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
webapp-authenticator-framework-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.webapp.authenticator.framework.server.feature
pom
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
WSO2 Carbon - Webapp Authenticator Framework Server Feature
http://wso2.org
This feature contains the core bundles required for Back-end Device Management functionality
diff --git a/features/webapp-authenticator-framework/pom.xml b/features/webapp-authenticator-framework/pom.xml
index 6af81c9de1..e9557fcc6e 100644
--- a/features/webapp-authenticator-framework/pom.xml
+++ b/features/webapp-authenticator-framework/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
../../pom.xml
4.0.0
org.wso2.carbon.devicemgt
webapp-authenticator-framework-feature
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
pom
WSO2 Carbon - Webapp Authenticator Framework Feature
http://wso2.org
diff --git a/pom.xml b/pom.xml
index 46cdf2a0e1..5e2e6c6686 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
pom
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
WSO2 Carbon - Device Management - Parent
http://wso2.org
WSO2 Connected Device Manager Components
@@ -1863,7 +1863,7 @@
1.2.11.wso2v10
- 3.0.146-SNAPSHOT
+ 3.0.148-SNAPSHOT
4.4.8