diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherServiceImpl.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherServiceImpl.java
index 47757b4cf8b..6d1eb4c3a90 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherServiceImpl.java
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherServiceImpl.java
@@ -22,6 +22,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.apimgt.api.APIManagementException;
import org.wso2.carbon.apimgt.api.APIProvider;
+import org.wso2.carbon.apimgt.api.FaultGatewaysException;
import org.wso2.carbon.apimgt.api.model.API;
import org.wso2.carbon.apimgt.api.model.APIIdentifier;
import org.wso2.carbon.apimgt.impl.APIManagerFactory;
@@ -48,10 +49,15 @@ public class APIPublisherServiceImpl implements APIPublisherService {
log.info("Successfully published API '" + api.getId().getApiName() + "' with context '" +
api.getContext() + "' and version '" + api.getId().getVersion() + "'");
} else {
- provider.updateAPI(api);
- log.info("An API already exists with the name '" + api.getId().getApiName() + "', context '" +
- api.getContext() + "' and version '" + api.getId().getVersion() +
- "'. Thus, the API config is updated");
+ try {
+ provider.updateAPI(api);
+ log.info("An API already exists with the name '" + api.getId().getApiName() + "', context '" +
+ api.getContext() + "' and version '" + api.getId().getVersion() +
+ "'. Thus, the API config is updated");
+ } catch (FaultGatewaysException e) {
+ throw new APIManagementException("Error occurred while updating API " + api.getId().getApiName() +
+ "' with context '" + api.getContext() + "' and version '" + api.getId().getVersion() + "'");
+ }
}
} else {
throw new APIManagementException("API provider configured for the given API configuration is null. " +
diff --git a/components/identity-extensions/dynamic-client-registration/dynamic-client-web/pom.xml b/components/identity-extensions/dynamic-client-registration/dynamic-client-web/pom.xml
index 927f8e1f778..066b6207a33 100644
--- a/components/identity-extensions/dynamic-client-registration/dynamic-client-web/pom.xml
+++ b/components/identity-extensions/dynamic-client-registration/dynamic-client-web/pom.xml
@@ -67,30 +67,31 @@
org.apache.cxf
cxf-rt-frontend-jaxws
+ provided
org.apache.cxf
cxf-rt-frontend-jaxrs
+ provided
org.apache.cxf
cxf-rt-transports-http
+ provided
org.apache.cxf
cxf-rt-bindings-soap
- 2.6.1
compile
org.apache.cxf
cxf-rt-bindings-http
- 2.5.11
+ provided
org.apache.cxf
cxf-rt-rs-extension-providers
- 2.6.1
compile
@@ -102,10 +103,12 @@
slf4j-api
+ provided
org.testng
testng
+ provided
@@ -143,6 +146,11 @@
org.codehaus.jackson
jackson-jaxrs
+
+ com.google.code.gson
+ gson
+ provided
+
diff --git a/components/identity-extensions/dynamic-client-registration/org.wso2.carbon.dynamic.client.registration/pom.xml b/components/identity-extensions/dynamic-client-registration/org.wso2.carbon.dynamic.client.registration/pom.xml
index 51bce89c192..88b54304e89 100644
--- a/components/identity-extensions/dynamic-client-registration/org.wso2.carbon.dynamic.client.registration/pom.xml
+++ b/components/identity-extensions/dynamic-client-registration/org.wso2.carbon.dynamic.client.registration/pom.xml
@@ -47,7 +47,7 @@
${project.artifactId}
${carbon.device.mgt.version}
Dynamic Client Registration Bundle
- org.wso2.carbon.dynamic.client.registration.internal.DynamicClientRegistrationBundleActivator
+ org.wso2.carbon.dynamic.client.registration.internal.DynamicClientRegistrationServiceComponent
org.wso2.carbon.dynamic.client.registration.internal
!org.wso2.carbon.dynamic.client.registration.internal,
diff --git a/components/identity-extensions/dynamic-client-registration/org.wso2.carbon.dynamic.client.registration/src/main/java/org/wso2/carbon/dynamic/client/registration/DynamicClientRegistrationService.java b/components/identity-extensions/dynamic-client-registration/org.wso2.carbon.dynamic.client.registration/src/main/java/org/wso2/carbon/dynamic/client/registration/DynamicClientRegistrationService.java
index e6aea31a713..7346ac1f69a 100644
--- a/components/identity-extensions/dynamic-client-registration/org.wso2.carbon.dynamic.client.registration/src/main/java/org/wso2/carbon/dynamic/client/registration/DynamicClientRegistrationService.java
+++ b/components/identity-extensions/dynamic-client-registration/org.wso2.carbon.dynamic.client.registration/src/main/java/org/wso2/carbon/dynamic/client/registration/DynamicClientRegistrationService.java
@@ -25,37 +25,39 @@ import org.wso2.carbon.dynamic.client.registration.profile.RegistrationProfile;
*/
public interface DynamicClientRegistrationService {
- /**
- * This method will register a new OAuth application using the data provided by
- * RegistrationProfile.
- *
- * @param profile - RegistrationProfile of the OAuth application to be created.
- * @return OAuthApplicationInfo object which holds the necessary data of created OAuth app.
- * @throws DynamicClientRegistrationException
- */
- public OAuthApplicationInfo registerOAuthApplication(RegistrationProfile profile) throws
- DynamicClientRegistrationException;
+ /**
+ * This method will register a new OAuth application using the data provided by
+ * RegistrationProfile.
+ *
+ * @param profile - RegistrationProfile of the OAuth application to be created.
+ * @return OAuthApplicationInfo object which holds the necessary data of created OAuth app.
+ * @throws DynamicClientRegistrationException
+ *
+ */
+ public OAuthApplicationInfo registerOAuthApplication(
+ RegistrationProfile profile) throws DynamicClientRegistrationException;
- /**
- * This method will unregister a created OAuth application.
- *
- * @param userName - Username of the owner
- * @param applicationName - OAuth application name
- * @param consumerKey - ConsumerKey of the OAuth application
- * @return The status of the operation
- * @throws DynamicClientRegistrationException
- */
- public boolean unregisterOAuthApplication(String userName, String applicationName,
- String consumerKey) throws DynamicClientRegistrationException;
+ /**
+ * This method will unregister a created OAuth application.
+ *
+ * @param userName - Username of the owner
+ * @param applicationName - OAuth application name
+ * @param consumerKey - ConsumerKey of the OAuth application
+ * @return The status of the operation
+ * @throws DynamicClientRegistrationException
+ *
+ */
+ public boolean unregisterOAuthApplication(String userName, String applicationName,
+ String consumerKey) throws DynamicClientRegistrationException;
- /**
- * This method will check the existence of an OAuth application provided application-name.
- *
- * @param applicationName - OAuth application name
- * @return The status of the operation
- * @throws DynamicClientRegistrationException
- */
- public boolean isOAuthApplicationExists(String applicationName)
- throws DynamicClientRegistrationException;
+ /**
+ * This method will check the existence of an OAuth application provided application-name.
+ *
+ * @param applicationName - OAuth application name
+ * @return The status of the operation
+ * @throws DynamicClientRegistrationException
+ *
+ */
+ public boolean isOAuthApplicationExists(String applicationName) throws DynamicClientRegistrationException;
}
diff --git a/components/identity-extensions/dynamic-client-registration/org.wso2.carbon.dynamic.client.registration/src/main/java/org/wso2/carbon/dynamic/client/registration/DynamicClientRegistrationUtil.java b/components/identity-extensions/dynamic-client-registration/org.wso2.carbon.dynamic.client.registration/src/main/java/org/wso2/carbon/dynamic/client/registration/DynamicClientRegistrationUtil.java
new file mode 100644
index 00000000000..dd835dad97c
--- /dev/null
+++ b/components/identity-extensions/dynamic-client-registration/org.wso2.carbon.dynamic.client.registration/src/main/java/org/wso2/carbon/dynamic/client/registration/DynamicClientRegistrationUtil.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * you may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.wso2.carbon.dynamic.client.registration;
+
+public class DynamicClientRegistrationUtil {
+
+ public static void validateUsername(String username) {
+ if (username == null || username.isEmpty()) {
+ throw new IllegalArgumentException("Username cannot be null or empty");
+ }
+ }
+
+ public static void validateApplicationName(String applicationName) {
+ if (applicationName == null || applicationName.isEmpty()) {
+ throw new IllegalArgumentException("Application name cannot be null or empty");
+ }
+ }
+
+ public static void validateConsumerKey(String consumerKey) {
+ if (consumerKey == null || consumerKey.isEmpty()) {
+ throw new IllegalArgumentException("Consumer Key cannot be null or empty");
+ }
+ }
+
+}
diff --git a/components/identity-extensions/dynamic-client-registration/org.wso2.carbon.dynamic.client.registration/src/main/java/org/wso2/carbon/dynamic/client/registration/impl/DynamicClientRegistrationImpl.java b/components/identity-extensions/dynamic-client-registration/org.wso2.carbon.dynamic.client.registration/src/main/java/org/wso2/carbon/dynamic/client/registration/impl/DynamicClientRegistrationImpl.java
index 94cc4bf81cf..cc09b05be5d 100644
--- a/components/identity-extensions/dynamic-client-registration/org.wso2.carbon.dynamic.client.registration/src/main/java/org/wso2/carbon/dynamic/client/registration/impl/DynamicClientRegistrationImpl.java
+++ b/components/identity-extensions/dynamic-client-registration/org.wso2.carbon.dynamic.client.registration/src/main/java/org/wso2/carbon/dynamic/client/registration/impl/DynamicClientRegistrationImpl.java
@@ -15,7 +15,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.wso2.carbon.dynamic.client.registration.impl;
import org.apache.commons.logging.Log;
@@ -25,21 +24,13 @@ import org.json.JSONObject;
import org.wso2.carbon.context.CarbonContext;
import org.wso2.carbon.context.PrivilegedCarbonContext;
import org.wso2.carbon.context.RegistryType;
-import org.wso2.carbon.dynamic.client.registration.ApplicationConstants;
-import org.wso2.carbon.dynamic.client.registration.DynamicClientRegistrationException;
-import org.wso2.carbon.dynamic.client.registration.DynamicClientRegistrationService;
-import org.wso2.carbon.dynamic.client.registration.OAuthApplicationInfo;
+import org.wso2.carbon.dynamic.client.registration.*;
import org.wso2.carbon.dynamic.client.registration.profile.RegistrationProfile;
import org.wso2.carbon.identity.application.common.IdentityApplicationManagementException;
-import org.wso2.carbon.identity.application.common.model.AuthenticationStep;
-import org.wso2.carbon.identity.application.common.model.InboundAuthenticationConfig;
-import org.wso2.carbon.identity.application.common.model.InboundAuthenticationRequestConfig;
-import org.wso2.carbon.identity.application.common.model.LocalAndOutboundAuthenticationConfig;
-import org.wso2.carbon.identity.application.common.model.LocalAuthenticatorConfig;
-import org.wso2.carbon.identity.application.common.model.Property;
-import org.wso2.carbon.identity.application.common.model.ServiceProvider;
+import org.wso2.carbon.identity.application.common.model.*;
import org.wso2.carbon.identity.application.mgt.ApplicationManagementService;
import org.wso2.carbon.identity.base.IdentityException;
+import org.wso2.carbon.identity.oauth.IdentityOAuthAdminException;
import org.wso2.carbon.identity.oauth.OAuthAdminService;
import org.wso2.carbon.identity.oauth.dto.OAuthConsumerAppDTO;
import org.wso2.carbon.identity.sso.saml.admin.SAMLSSOConfigAdmin;
@@ -155,6 +146,10 @@ public class DynamicClientRegistrationImpl implements DynamicClientRegistrationS
// Create the Service Provider
ServiceProvider serviceProvider = new ServiceProvider();
serviceProvider.setApplicationName(applicationName);
+ User user = new User();
+ user.setUserName(userName);
+ user.setTenantDomain(tenantDomain);
+ serviceProvider.setOwner(user);
serviceProvider.setDescription("Service Provider for application " + applicationName);
@@ -167,7 +162,7 @@ public class DynamicClientRegistrationImpl implements DynamicClientRegistrationS
ServiceProvider existingServiceProvider = appMgtService.getApplication(applicationName);
- if(existingServiceProvider == null) {
+ if (existingServiceProvider == null) {
appMgtService.createApplication(serviceProvider);
}
@@ -181,16 +176,16 @@ public class DynamicClientRegistrationImpl implements DynamicClientRegistrationS
// Then Create OAuthApp
OAuthAdminService oAuthAdminService = new OAuthAdminService();
- OAuthConsumerAppDTO oAuthConsumerAppDTO = new OAuthConsumerAppDTO();
- oAuthConsumerAppDTO.setApplicationName(applicationName);
- oAuthConsumerAppDTO.setCallbackUrl(callbackUrl);
- oAuthConsumerAppDTO.setGrantTypes(grantType);
+ OAuthConsumerAppDTO oAuthConsumerApp = new OAuthConsumerAppDTO();
+ oAuthConsumerApp.setApplicationName(applicationName);
+ oAuthConsumerApp.setCallbackUrl(callbackUrl);
+ oAuthConsumerApp.setGrantTypes(grantType);
if (log.isDebugEnabled()) {
log.debug("Creating OAuth App " + applicationName);
}
- if(existingServiceProvider == null) {
- oAuthAdminService.registerOAuthApplicationData(oAuthConsumerAppDTO);
+ if (existingServiceProvider == null) {
+ oAuthAdminService.registerOAuthApplicationData(oAuthConsumerApp);
}
if (log.isDebugEnabled()) {
@@ -198,8 +193,7 @@ public class DynamicClientRegistrationImpl implements DynamicClientRegistrationS
}
OAuthConsumerAppDTO createdApp =
- oAuthAdminService.getOAuthApplicationDataByAppName(oAuthConsumerAppDTO
- .getApplicationName());
+ oAuthAdminService.getOAuthApplicationDataByAppName(oAuthConsumerApp.getApplicationName());
if (log.isDebugEnabled()) {
log.debug("Retrieved Details for OAuth App " + createdApp.getApplicationName());
}
@@ -219,7 +213,7 @@ public class DynamicClientRegistrationImpl implements DynamicClientRegistrationS
Property property = new Property();
property.setName("oauthConsumerSecret");
property.setValue(createdApp.getOauthConsumerSecret());
- Property[] properties = { property };
+ Property[] properties = {property};
inboundAuthenticationRequestConfig.setProperties(properties);
}
@@ -289,14 +283,17 @@ public class DynamicClientRegistrationImpl implements DynamicClientRegistrationS
}
protected Registry getConfigSystemRegistry() {
- return (Registry)PrivilegedCarbonContext.getThreadLocalCarbonContext().
+ return (Registry) PrivilegedCarbonContext.getThreadLocalCarbonContext().
getRegistry(RegistryType.SYSTEM_CONFIGURATION);
}
@Override
public boolean unregisterOAuthApplication(String userId, String applicationName,
- String consumerKey)
- throws DynamicClientRegistrationException {
+ String consumerKey) throws DynamicClientRegistrationException {
+ DynamicClientRegistrationUtil.validateUsername(userId);
+ DynamicClientRegistrationUtil.validateApplicationName(applicationName);
+ DynamicClientRegistrationUtil.validateConsumerKey(consumerKey);
+
boolean status = false;
String tenantDomain = MultitenantUtils.getTenantDomain(userId);
String baseUser = CarbonContext.getThreadLocalCarbonContext().getUsername();
@@ -306,21 +303,23 @@ public class DynamicClientRegistrationImpl implements DynamicClientRegistrationS
PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantDomain(tenantDomain, true);
PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(userName);
- if (userId == null || userId.isEmpty()) {
+ OAuthAdminService oAuthAdminService;
+ OAuthConsumerAppDTO oAuthConsumerApp;
+ try {
+ oAuthAdminService = new OAuthAdminService();
+ oAuthConsumerApp = oAuthAdminService.getOAuthApplicationData(consumerKey);
+ } catch (IdentityOAuthAdminException e) {
+ throw new DynamicClientRegistrationException("Error occurred while retrieving application data", e);
+ } catch (Exception e) {
+ throw new DynamicClientRegistrationException("Error occurred while retrieving application data", e);
+ }
+
+ if (oAuthConsumerApp == null) {
throw new DynamicClientRegistrationException(
- "Error occurred while unregistering Application: userId cannot " +
- "be null/empty");
+ "No OAuth Consumer Application is associated with the given consumer key: " + consumerKey);
}
- try {
- OAuthAdminService oAuthAdminService = new OAuthAdminService();
- OAuthConsumerAppDTO oAuthConsumerAppDTO =
- oAuthAdminService.getOAuthApplicationData(consumerKey);
- if (oAuthConsumerAppDTO == null) {
- throw new DynamicClientRegistrationException(
- "Couldn't retrieve OAuth Consumer Application associated with the " +
- "given consumer key: " + consumerKey);
- }
+ try {
oAuthAdminService.removeOAuthApplicationData(consumerKey);
ApplicationManagementService appMgtService = ApplicationManagementService.getInstance();
@@ -331,7 +330,6 @@ public class DynamicClientRegistrationImpl implements DynamicClientRegistrationS
"Service");
}
ServiceProvider createdServiceProvider = appMgtService.getApplication(applicationName);
-
if (createdServiceProvider == null) {
throw new DynamicClientRegistrationException(
"Couldn't retrieve Service Provider Application " + applicationName);
@@ -340,10 +338,13 @@ public class DynamicClientRegistrationImpl implements DynamicClientRegistrationS
status = true;
} catch (IdentityApplicationManagementException e) {
throw new DynamicClientRegistrationException(
- "Error occurred while removing ServiceProvider for app " + applicationName, e);
+ "Error occurred while removing ServiceProvider for application '" + applicationName + "'", e);
+ } catch (IdentityOAuthAdminException e) {
+ throw new DynamicClientRegistrationException("Error occurred while removing application '" +
+ applicationName + "'", e);
} catch (Exception e) {
- throw new DynamicClientRegistrationException(
- "Error occurred while removing OAuthApp " + applicationName, e);
+ throw new DynamicClientRegistrationException("Error occurred while removing application '" +
+ applicationName + "'", e);
} finally {
PrivilegedCarbonContext.endTenantFlow();
PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(baseUser);
@@ -352,8 +353,7 @@ public class DynamicClientRegistrationImpl implements DynamicClientRegistrationS
}
@Override
- public boolean isOAuthApplicationExists(String applicationName)
- throws DynamicClientRegistrationException {
+ public boolean isOAuthApplicationExists(String applicationName) throws DynamicClientRegistrationException {
ApplicationManagementService appMgtService = ApplicationManagementService.getInstance();
if (appMgtService == null) {
throw new IllegalStateException(
@@ -361,14 +361,14 @@ public class DynamicClientRegistrationImpl implements DynamicClientRegistrationS
"Service");
}
try {
- if (appMgtService.getApplication(applicationName) != null) {
+ if (ApplicationManagementService.getInstance().getApplication(applicationName) != null) {
return true;
}
} catch (IdentityApplicationManagementException e) {
throw new DynamicClientRegistrationException(
- "Error occurred while retrieving information of OAuthApp " + applicationName,
- e);
+ "Error occurred while retrieving information of OAuthApp " + applicationName, e);
}
return false;
}
+
}
diff --git a/components/identity-extensions/org.wso2.carbon.device.mgt.oauth.extensions/src/main/java/org/wso2/carbon/device/mgt/oauth/extensions/validators/ScopeValidator.java b/components/identity-extensions/org.wso2.carbon.device.mgt.oauth.extensions/src/main/java/org/wso2/carbon/device/mgt/oauth/extensions/validators/ScopeValidator.java
index 2f534f38fe8..0432238face 100644
--- a/components/identity-extensions/org.wso2.carbon.device.mgt.oauth.extensions/src/main/java/org/wso2/carbon/device/mgt/oauth/extensions/validators/ScopeValidator.java
+++ b/components/identity-extensions/org.wso2.carbon.device.mgt.oauth.extensions/src/main/java/org/wso2/carbon/device/mgt/oauth/extensions/validators/ScopeValidator.java
@@ -70,8 +70,8 @@ public class ScopeValidator extends OAuth2ScopeValidator {
getPermissionManagerService();
try {
Permission permission = permissionManagerService.getPermission(properties);
- if(permission != null){
- String username = accessTokenDO.getAuthzUser();
+ if((permission != null) && (accessTokenDO.getAuthzUser() != null)) {
+ String username = accessTokenDO.getAuthzUser().getUserName();
UserRealm userRealm = CarbonContext.getThreadLocalCarbonContext().getUserRealm();
if(userRealm != null && userRealm.getAuthorizationManager() != null){
status = userRealm.getAuthorizationManager().isUserAuthorized(username, permission.getPath(),
diff --git a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/internal/WebappAuthenticatorFrameworkServiceComponent.java b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/internal/WebappAuthenticatorFrameworkServiceComponent.java
index b99233bbbad..d00164ea9a3 100644
--- a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/internal/WebappAuthenticatorFrameworkServiceComponent.java
+++ b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/src/main/java/org/wso2/carbon/webapp/authenticator/framework/internal/WebappAuthenticatorFrameworkServiceComponent.java
@@ -31,14 +31,12 @@ import org.wso2.carbon.webapp.authenticator.framework.DataHolder;
import org.wso2.carbon.webapp.authenticator.framework.WebappAuthenticationHandler;
import org.wso2.carbon.webapp.authenticator.framework.authenticator.WebappAuthenticator;
import org.wso2.carbon.webapp.authenticator.framework.WebappAuthenticatorRepository;
-import org.wso2.carbon.webapp.authenticator.framework.authorizer.PermissionAuthorizationValve;
import org.wso2.carbon.webapp.authenticator.framework.config.AuthenticatorConfig;
import org.wso2.carbon.webapp.authenticator.framework.config.WebappAuthenticatorConfig;
import java.util.ArrayList;
import java.util.List;
-
/**
* @scr.component name="org.wso2.carbon.webapp.authenticator" immediate="true"
* @scr.reference name="user.realmservice.default"
diff --git a/pom.xml b/pom.xml
index 3b21efdc1fa..c2bec61b78e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,8 +17,7 @@
~ under the License.
-->
-
4.0.0
@@ -383,8 +382,8 @@
bcprov-jdk15on
-
-
+
+
org.wso2.carbon
@@ -1019,13 +1018,17 @@
json
${json.wso2.version}
+
+ com.google.code.gson
+ gson
+ ${google.gson.version}
+
https://github.com/wso2/carbon-device-mgt.git
- scm:git:https://github.com/wso2/carbon-device-mgt.git
-
+ scm:git:https://github.com/wso2/carbon-device-mgt.git
scm:git:https://github.com/wso2/carbon-device-mgt.git
HEAD
@@ -1212,7 +1215,7 @@
6.1.1
- 4.4.0
+ 4.4.1
1.5.4
1.3
@@ -1225,7 +1228,7 @@
1.5.4
- 0.10.0
+ 0.10.2
1.3.0
1.3.0
1.3.0
@@ -1249,19 +1252,19 @@
7.0.34.wso2v2
- 4.4.0
+ 4.5.2
- 4.4.0
+ 4.6.0-M2
- 4.4.0
+ 4.5.0-m1
- 4.4.1
+ 4.4.8
- 4.4.1
+ 4.5.8
1.2.11-wso2v5
@@ -1272,13 +1275,13 @@
0.9.2-SNAPSHOT
- 4.4.0
+ 4.4.7
1.4.0.wso2v1
2.4.0.wso2v1
2.6.0.wso2v1
- 1.4.0
+ 4.3.0-SNAPSHOT
2.6.1
@@ -1300,6 +1303,7 @@
2.26.1.wso2v3
2.0.0.wso2v1
+ 2.3.1