mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
adding App management integeration related code
This commit is contained in:
parent
3070488adf
commit
4a061e7be2
@ -78,7 +78,9 @@
|
|||||||
org.wso2.carbon.governance.api.generic.dataobjects,
|
org.wso2.carbon.governance.api.generic.dataobjects,
|
||||||
org.wso2.carbon.apimgt.api,
|
org.wso2.carbon.apimgt.api,
|
||||||
org.wso2.carbon.apimgt.api.model,
|
org.wso2.carbon.apimgt.api.model,
|
||||||
org.wso2.carbon.apimgt.impl
|
org.wso2.carbon.apimgt.impl,
|
||||||
|
org.wso2.carbon.identity.oauth.stub,
|
||||||
|
org.wso2.carbon.identity.oauth.stub.dto
|
||||||
</Import-Package>
|
</Import-Package>
|
||||||
<Export-Package>
|
<Export-Package>
|
||||||
!org.wso2.carbon.device.mgt.core.internal,
|
!org.wso2.carbon.device.mgt.core.internal,
|
||||||
@ -195,6 +197,10 @@
|
|||||||
<groupId>org.apache.axis2.wso2</groupId>
|
<groupId>org.apache.axis2.wso2</groupId>
|
||||||
<artifactId>axis2</artifactId>
|
<artifactId>axis2</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wso2.carbon.identity</groupId>
|
||||||
|
<artifactId>org.wso2.carbon.identity.oauth.stub</artifactId>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
@ -28,4 +28,15 @@ public final class DeviceManagementConstants {
|
|||||||
public static final String DEFAULT_LICENSE_CONFIG_XML_NAME = "license-config.xml";
|
public static final String DEFAULT_LICENSE_CONFIG_XML_NAME = "license-config.xml";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static final class AppManagement {
|
||||||
|
private AppManagement() {
|
||||||
|
throw new AssertionError();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final String OAUTH_APPLICATION_NAME = "app_management_application";
|
||||||
|
public static final String OAUTH2_GRANT_TYPE_CLIENT_CREDENTIALS = "client_credentials";
|
||||||
|
public final static String OAUTH_VERSION_2 = "oauth-2.0";
|
||||||
|
public final static String OAUTH_ADMIN_SERVICE = "/services/OAuthAdminService";
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -77,7 +77,7 @@ public class APIPublisherConfig {
|
|||||||
Document doc = DeviceManagerUtil.convertToDocument(publisherConfig);
|
Document doc = DeviceManagerUtil.convertToDocument(publisherConfig);
|
||||||
|
|
||||||
/* Un-marshaling Device Management configuration */
|
/* Un-marshaling Device Management configuration */
|
||||||
JAXBContext ctx = JAXBContext.newInstance(DeviceManagementConfig.class);
|
JAXBContext ctx = JAXBContext.newInstance(APIPublisherConfig.class);
|
||||||
Unmarshaller unmarshaller = ctx.createUnmarshaller();
|
Unmarshaller unmarshaller = ctx.createUnmarshaller();
|
||||||
config = (APIPublisherConfig) unmarshaller.unmarshal(doc);
|
config = (APIPublisherConfig) unmarshaller.unmarshal(doc);
|
||||||
} catch (JAXBException e) {
|
} catch (JAXBException e) {
|
||||||
|
|||||||
@ -0,0 +1,60 @@
|
|||||||
|
/*
|
||||||
|
* 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.device.mgt.core.app.mgt;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handles the exceptions related to Application management.
|
||||||
|
*/
|
||||||
|
public class AppManagementException extends Exception {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -8933142342423122660L;
|
||||||
|
private String errorMessage;
|
||||||
|
|
||||||
|
public String getErrorMessage() {
|
||||||
|
return errorMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setErrorMessage(String errorMessage) {
|
||||||
|
this.errorMessage = errorMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public AppManagementException(String msg, Exception nestedEx) {
|
||||||
|
super(msg, nestedEx);
|
||||||
|
setErrorMessage(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
public AppManagementException(String message, Throwable cause) {
|
||||||
|
super(message, cause);
|
||||||
|
setErrorMessage(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
public AppManagementException(String msg) {
|
||||||
|
super(msg);
|
||||||
|
setErrorMessage(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
public AppManagementException() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public AppManagementException(Throwable cause) {
|
||||||
|
super(cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,132 @@
|
|||||||
|
/*
|
||||||
|
* 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.device.mgt.core.app.mgt;
|
||||||
|
|
||||||
|
import org.apache.axis2.AxisFault;
|
||||||
|
import org.apache.axis2.context.ConfigurationContext;
|
||||||
|
import org.apache.axis2.context.ConfigurationContextFactory;
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||||
|
import org.wso2.carbon.device.mgt.core.DeviceManagementConstants;
|
||||||
|
import org.wso2.carbon.device.mgt.core.app.mgt.oauth.ServiceAuthenticator;
|
||||||
|
import org.wso2.carbon.device.mgt.core.app.mgt.oauth.dto.Credential;
|
||||||
|
import org.wso2.carbon.device.mgt.core.app.mgt.config.AppManagementConfig;
|
||||||
|
import org.wso2.carbon.device.mgt.core.config.DeviceConfigurationManager;
|
||||||
|
import org.wso2.carbon.device.mgt.core.config.identity.IdentityConfigurations;
|
||||||
|
import org.wso2.carbon.device.mgt.core.dto.Application;
|
||||||
|
import org.wso2.carbon.device.mgt.core.service.AppManager;
|
||||||
|
import org.wso2.carbon.identity.oauth.stub.OAuthAdminServiceException;
|
||||||
|
import org.wso2.carbon.identity.oauth.stub.OAuthAdminServiceStub;
|
||||||
|
import org.wso2.carbon.identity.oauth.stub.dto.OAuthConsumerAppDTO;
|
||||||
|
|
||||||
|
import java.rmi.RemoteException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Implements AppManager interface
|
||||||
|
*/
|
||||||
|
public class AppManagerImplHttp implements AppManager {
|
||||||
|
|
||||||
|
private static Log log = LogFactory.getLog(AppManagerImplHttp.class);
|
||||||
|
private static AppManagementConfig appManagementConfig;
|
||||||
|
private static final String GET_APP_LIST_URL =
|
||||||
|
"store/apis/assets/mobileapp?domain=carbon.super&page=1";
|
||||||
|
private static String appManagerUrl;
|
||||||
|
private static String consumerKey;
|
||||||
|
private static String consumerSecret;
|
||||||
|
|
||||||
|
public AppManagerImplHttp(AppManagementConfig appManagementConfig) {
|
||||||
|
this.appManagementConfig = appManagementConfig;
|
||||||
|
this.appManagerUrl = appManagementConfig.getAppManagerUrl();
|
||||||
|
this.consumerKey = appManagementConfig.getConsumerKey();
|
||||||
|
this.consumerSecret = appManagementConfig.getConsumerSecret();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Application[] getApplicationList(String domain, int pageNumber, int size)
|
||||||
|
throws AppManagementException {
|
||||||
|
return new Application[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public void updateApplicationStatusOnDevice(DeviceIdentifier deviceId,
|
||||||
|
Application application, String status) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public String getApplicationStatusOnDevice(DeviceIdentifier deviceId,
|
||||||
|
Application application) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public Credential getClientCredentials() throws AppManagementException {
|
||||||
|
OAuthAdminServiceStub oAuthAdminServiceStub;
|
||||||
|
OAuthConsumerAppDTO appDTO = new OAuthConsumerAppDTO();
|
||||||
|
appDTO.setApplicationName(DeviceManagementConstants.AppManagement.OAUTH_APPLICATION_NAME);
|
||||||
|
appDTO.setGrantTypes(
|
||||||
|
DeviceManagementConstants.AppManagement.OAUTH2_GRANT_TYPE_CLIENT_CREDENTIALS);
|
||||||
|
appDTO.setOAuthVersion(DeviceManagementConstants.AppManagement.OAUTH_VERSION_2);
|
||||||
|
IdentityConfigurations identityConfigurations =
|
||||||
|
DeviceConfigurationManager.getInstance().getDeviceManagementConfig()
|
||||||
|
.getDeviceManagementConfigRepository()
|
||||||
|
.getIdentityConfigurations();
|
||||||
|
String serverUrl = identityConfigurations.getServerUrl();
|
||||||
|
String username = identityConfigurations.getAdminUsername();
|
||||||
|
String password = identityConfigurations.getAdminPassword();
|
||||||
|
String oauthAdminServiceUrl = serverUrl +
|
||||||
|
DeviceManagementConstants.AppManagement.OAUTH_ADMIN_SERVICE;
|
||||||
|
|
||||||
|
try {
|
||||||
|
ConfigurationContext configContext = ConfigurationContextFactory
|
||||||
|
.createConfigurationContextFromFileSystem(null, null);
|
||||||
|
oAuthAdminServiceStub = new OAuthAdminServiceStub(configContext, oauthAdminServiceUrl);
|
||||||
|
|
||||||
|
ServiceAuthenticator authenticator = ServiceAuthenticator.getInstance();
|
||||||
|
authenticator.setAccessUsername(username);
|
||||||
|
authenticator.setAccessPassword(password);
|
||||||
|
authenticator.authenticate(oAuthAdminServiceStub._getServiceClient());
|
||||||
|
|
||||||
|
OAuthConsumerAppDTO createdAppData = null;
|
||||||
|
try {
|
||||||
|
createdAppData = oAuthAdminServiceStub.getOAuthApplicationDataByAppName(
|
||||||
|
DeviceManagementConstants.AppManagement.OAUTH_APPLICATION_NAME);
|
||||||
|
}
|
||||||
|
//application doesn't exist. Due to the way getOAuthApplicationDataByAppName has been
|
||||||
|
//implemented, it throws an AxisFault if the App doesn't exist. Hence the catch.
|
||||||
|
catch (AxisFault fault) {
|
||||||
|
oAuthAdminServiceStub.registerOAuthApplicationData(appDTO);
|
||||||
|
createdAppData = oAuthAdminServiceStub.getOAuthApplicationDataByAppName(
|
||||||
|
DeviceManagementConstants.AppManagement.OAUTH_APPLICATION_NAME);
|
||||||
|
}
|
||||||
|
|
||||||
|
Credential credential = new Credential();
|
||||||
|
credential.setConsumerKey(createdAppData.getOauthConsumerKey());
|
||||||
|
credential.setConsumerSecret(createdAppData.getOauthConsumerSecret());
|
||||||
|
return credential;
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
String msg = "Error while registering a new application.";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new AppManagementException(msg, e);
|
||||||
|
} catch (OAuthAdminServiceException e) {
|
||||||
|
String msg = "Error while working with oauth admin services stub.";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new AppManagementException(msg, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,68 @@
|
|||||||
|
/*
|
||||||
|
* 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.device.mgt.core.app.mgt.config;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
|
||||||
|
@XmlRootElement(name = "AppManagementConfig")
|
||||||
|
public class AppManagementConfig {
|
||||||
|
|
||||||
|
private boolean enabled;
|
||||||
|
private String appManagerUrl;
|
||||||
|
private String consumerKey;
|
||||||
|
private String consumerSecret;
|
||||||
|
|
||||||
|
@XmlElement(name = "ConsumerKey", required = true)
|
||||||
|
public String getConsumerKey() {
|
||||||
|
return consumerKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setConsumerKey(String consumerKey) {
|
||||||
|
this.consumerKey = consumerKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
@XmlElement(name = "ConsumerSecret", required = true)
|
||||||
|
public String getConsumerSecret() {
|
||||||
|
return consumerSecret;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setConsumerSecret(String consumerSecret) {
|
||||||
|
this.consumerSecret = consumerSecret;
|
||||||
|
}
|
||||||
|
|
||||||
|
@XmlElement(name = "Enabled", required = true)
|
||||||
|
public boolean isEnabled() {
|
||||||
|
return enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEnabled(boolean enabled) {
|
||||||
|
this.enabled = enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
@XmlElement(name = "AppManagerUrl", required = false)
|
||||||
|
public String getAppManagerUrl() {
|
||||||
|
return appManagerUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAppManagerUrl(String appManagerUrl) {
|
||||||
|
this.appManagerUrl = appManagerUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,72 @@
|
|||||||
|
/*
|
||||||
|
* 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.device.mgt.core.app.mgt.config;
|
||||||
|
|
||||||
|
import org.w3c.dom.Document;
|
||||||
|
import org.wso2.carbon.device.mgt.core.app.mgt.AppManagementException;
|
||||||
|
import org.wso2.carbon.device.mgt.core.util.DeviceManagerUtil;
|
||||||
|
import org.wso2.carbon.utils.CarbonUtils;
|
||||||
|
|
||||||
|
import javax.xml.bind.JAXBContext;
|
||||||
|
import javax.xml.bind.Unmarshaller;
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
|
public class AppManagementConfigurationManager {
|
||||||
|
|
||||||
|
private AppManagementConfig appManagementConfig;
|
||||||
|
private static AppManagementConfigurationManager appManagementConfigManager;
|
||||||
|
|
||||||
|
private static final String APP_MANAGER_CONFIG_FILE = "app-management-config.xml";
|
||||||
|
private static final String APP_MANAGER_CONFIG_PATH =
|
||||||
|
CarbonUtils.getEtcCarbonConfigDirPath() + File.separator + APP_MANAGER_CONFIG_FILE;
|
||||||
|
|
||||||
|
public static AppManagementConfigurationManager getInstance() {
|
||||||
|
if (appManagementConfigManager == null) {
|
||||||
|
synchronized (AppManagementConfigurationManager.class) {
|
||||||
|
if (appManagementConfigManager == null) {
|
||||||
|
appManagementConfigManager = new AppManagementConfigurationManager();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return appManagementConfigManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
public synchronized void initConfig() throws AppManagementException {
|
||||||
|
try {
|
||||||
|
File appManagementConfig =
|
||||||
|
new File(AppManagementConfigurationManager.APP_MANAGER_CONFIG_PATH);
|
||||||
|
Document doc = DeviceManagerUtil.convertToDocument(appManagementConfig);
|
||||||
|
|
||||||
|
/* Un-marshaling App Management configuration */
|
||||||
|
JAXBContext cdmContext = JAXBContext.newInstance(AppManagementConfig.class);
|
||||||
|
Unmarshaller unmarshaller = cdmContext.createUnmarshaller();
|
||||||
|
this.appManagementConfig = (AppManagementConfig) unmarshaller.unmarshal(doc);
|
||||||
|
} catch (Exception e) {
|
||||||
|
/* Catches generic exception as there's no specific task to be carried out catching a particular
|
||||||
|
exception */
|
||||||
|
throw new AppManagementException(
|
||||||
|
"Error occurred while initializing application management Configurations", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public AppManagementConfig getAppManagementConfig() {
|
||||||
|
return appManagementConfig;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,74 @@
|
|||||||
|
/*
|
||||||
|
* 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.device.mgt.core.app.mgt.oauth;
|
||||||
|
|
||||||
|
|
||||||
|
import org.apache.axis2.client.Options;
|
||||||
|
import org.apache.axis2.client.ServiceClient;
|
||||||
|
import org.apache.axis2.transport.http.HttpTransportProperties;
|
||||||
|
import org.wso2.carbon.device.mgt.core.app.mgt.AppManagementException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Authenticate a given service client.
|
||||||
|
*/
|
||||||
|
public class ServiceAuthenticator {
|
||||||
|
|
||||||
|
private static ServiceAuthenticator instance = null;
|
||||||
|
private String accessUsername = null;
|
||||||
|
private String accessPassword = null;
|
||||||
|
|
||||||
|
private ServiceAuthenticator() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ServiceAuthenticator getInstance() {
|
||||||
|
|
||||||
|
if (instance != null) {
|
||||||
|
return instance;
|
||||||
|
} else {
|
||||||
|
instance = new ServiceAuthenticator();
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void authenticate(ServiceClient client) throws AppManagementException {
|
||||||
|
|
||||||
|
if (accessUsername != null && accessPassword != null) {
|
||||||
|
Options option = client.getOptions();
|
||||||
|
HttpTransportProperties.Authenticator auth = new HttpTransportProperties.Authenticator();
|
||||||
|
auth.setUsername(accessUsername);
|
||||||
|
auth.setPassword(accessPassword);
|
||||||
|
auth.setPreemptiveAuthentication(true);
|
||||||
|
option.setProperty(org.apache.axis2.transport.http.HTTPConstants.AUTHENTICATE, auth);
|
||||||
|
option.setManageSession(true);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
throw new AppManagementException("Authentication username or password not set");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAccessUsername(String accessUsername) {
|
||||||
|
this.accessUsername = accessUsername;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAccessPassword(String accessPassword) {
|
||||||
|
this.accessPassword = accessPassword;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,43 @@
|
|||||||
|
/*
|
||||||
|
* 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.device.mgt.core.app.mgt.oauth.dto;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DTO of the consumer key and secret
|
||||||
|
*/
|
||||||
|
public class Credential {
|
||||||
|
String consumerKey;
|
||||||
|
String consumerSecret;
|
||||||
|
|
||||||
|
public String getConsumerKey() {
|
||||||
|
return consumerKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setConsumerKey(String consumerKey) {
|
||||||
|
this.consumerKey = consumerKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getConsumerSecret() {
|
||||||
|
return consumerSecret;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setConsumerSecret(String consumerSecret) {
|
||||||
|
this.consumerSecret = consumerSecret;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -19,6 +19,7 @@ package org.wso2.carbon.device.mgt.core.config;
|
|||||||
|
|
||||||
import org.wso2.carbon.device.mgt.core.config.datasource.DataSourceConfig;
|
import org.wso2.carbon.device.mgt.core.config.datasource.DataSourceConfig;
|
||||||
import org.wso2.carbon.device.mgt.core.config.email.EmailConfigurations;
|
import org.wso2.carbon.device.mgt.core.config.email.EmailConfigurations;
|
||||||
|
import org.wso2.carbon.device.mgt.core.config.identity.IdentityConfigurations;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlElement;
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
import javax.xml.bind.annotation.XmlRootElement;
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
@ -29,8 +30,9 @@ import javax.xml.bind.annotation.XmlRootElement;
|
|||||||
@XmlRootElement(name = "ManagementRepository")
|
@XmlRootElement(name = "ManagementRepository")
|
||||||
public class DeviceManagementConfigRepository {
|
public class DeviceManagementConfigRepository {
|
||||||
|
|
||||||
private DataSourceConfig dataSourceConfig;
|
private DataSourceConfig dataSourceConfig;
|
||||||
private EmailConfigurations emailConfigurations;
|
private EmailConfigurations emailConfigurations;
|
||||||
|
private IdentityConfigurations identityConfigurations;
|
||||||
|
|
||||||
@XmlElement(name = "DataSourceConfiguration", required = true)
|
@XmlElement(name = "DataSourceConfiguration", required = true)
|
||||||
public DataSourceConfig getDataSourceConfig() {
|
public DataSourceConfig getDataSourceConfig() {
|
||||||
@ -41,12 +43,21 @@ public class DeviceManagementConfigRepository {
|
|||||||
this.dataSourceConfig = dataSourceConfig;
|
this.dataSourceConfig = dataSourceConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
@XmlElement(name = "EmailClientConfiguration", required = true)
|
@XmlElement(name = "EmailClientConfiguration", required = true)
|
||||||
public EmailConfigurations getEmailConfigurations() {
|
public EmailConfigurations getEmailConfigurations() {
|
||||||
return emailConfigurations;
|
return emailConfigurations;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setEmailConfigurations(EmailConfigurations emailConfigurations) {
|
public void setEmailConfigurations(EmailConfigurations emailConfigurations) {
|
||||||
this.emailConfigurations = emailConfigurations;
|
this.emailConfigurations = emailConfigurations;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@XmlElement(name = "IdentityConfiguration", required = true)
|
||||||
|
public IdentityConfigurations getIdentityConfigurations() {
|
||||||
|
return identityConfigurations;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIdentityConfigurations(IdentityConfigurations identityConfigurations) {
|
||||||
|
this.identityConfigurations = identityConfigurations;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,59 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2014, 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.core.config.identity;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configurations related to identity management.
|
||||||
|
*/
|
||||||
|
@XmlRootElement(name = "IdentityConfiguration")
|
||||||
|
public class IdentityConfigurations {
|
||||||
|
private String serverUrl;
|
||||||
|
private String adminUsername;
|
||||||
|
private String adminPassword;
|
||||||
|
|
||||||
|
@XmlElement(name = "AdminUsername", required = true)
|
||||||
|
public String getAdminUsername() {
|
||||||
|
return adminUsername;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAdminUsername(String adminUsername) {
|
||||||
|
this.adminUsername = adminUsername;
|
||||||
|
}
|
||||||
|
|
||||||
|
@XmlElement(name = "AdminPassword", required = true)
|
||||||
|
public String getAdminPassword() {
|
||||||
|
return adminPassword;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAdminPassword(String adminPassword) {
|
||||||
|
this.adminPassword = adminPassword;
|
||||||
|
}
|
||||||
|
|
||||||
|
@XmlElement(name = "ServerUrl", required = true)
|
||||||
|
public String getServerUrl() {
|
||||||
|
return serverUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setServerUrl(String serverUrl) {
|
||||||
|
this.serverUrl = serverUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,101 @@
|
|||||||
|
/*
|
||||||
|
* 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.device.mgt.core.dto;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holds data about an application that can be installed on a device.
|
||||||
|
*/
|
||||||
|
public class Application implements Serializable {
|
||||||
|
private static final long serialVersionUID = -81011063453453455L;
|
||||||
|
String id;
|
||||||
|
String name;
|
||||||
|
String packageName;
|
||||||
|
String platform;
|
||||||
|
String fileUrl;
|
||||||
|
String applicationType;
|
||||||
|
String category;
|
||||||
|
|
||||||
|
public String getApplicationType() {
|
||||||
|
return applicationType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setApplicationType(String applicationType) {
|
||||||
|
this.applicationType = applicationType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCategory() {
|
||||||
|
return category;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCategory(String category) {
|
||||||
|
this.category = category;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(String id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPackageName() {
|
||||||
|
return packageName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPackageName(String packageName) {
|
||||||
|
this.packageName = packageName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPlatform() {
|
||||||
|
return platform;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPlatform(String platform) {
|
||||||
|
this.platform = platform;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFileUrl() {
|
||||||
|
return fileUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFileUrl(String fileUrl) {
|
||||||
|
this.fileUrl = fileUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setType(String type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
String type;
|
||||||
|
}
|
||||||
@ -21,7 +21,9 @@ package org.wso2.carbon.device.mgt.core.internal;
|
|||||||
|
|
||||||
import org.wso2.carbon.device.mgt.common.license.mgt.LicenseManager;
|
import org.wso2.carbon.device.mgt.common.license.mgt.LicenseManager;
|
||||||
import org.wso2.carbon.device.mgt.core.api.mgt.APIPublisherService;
|
import org.wso2.carbon.device.mgt.core.api.mgt.APIPublisherService;
|
||||||
|
import org.wso2.carbon.device.mgt.core.app.mgt.config.AppManagementConfig;
|
||||||
import org.wso2.carbon.device.mgt.core.config.license.LicenseConfig;
|
import org.wso2.carbon.device.mgt.core.config.license.LicenseConfig;
|
||||||
|
import org.wso2.carbon.device.mgt.core.service.AppManager;
|
||||||
import org.wso2.carbon.device.mgt.core.service.DeviceManagementService;
|
import org.wso2.carbon.device.mgt.core.service.DeviceManagementService;
|
||||||
import org.wso2.carbon.registry.core.service.RegistryService;
|
import org.wso2.carbon.registry.core.service.RegistryService;
|
||||||
import org.wso2.carbon.user.core.service.RealmService;
|
import org.wso2.carbon.user.core.service.RealmService;
|
||||||
@ -36,6 +38,8 @@ public class DeviceManagementDataHolder {
|
|||||||
private RegistryService registryService;
|
private RegistryService registryService;
|
||||||
private LicenseConfig licenseConfig;
|
private LicenseConfig licenseConfig;
|
||||||
private APIPublisherService apiPublisherService;
|
private APIPublisherService apiPublisherService;
|
||||||
|
private AppManager appManager;
|
||||||
|
private AppManagementConfig appManagerConfig;
|
||||||
|
|
||||||
private static DeviceManagementDataHolder thisInstance = new DeviceManagementDataHolder();
|
private static DeviceManagementDataHolder thisInstance = new DeviceManagementDataHolder();
|
||||||
|
|
||||||
@ -106,4 +110,20 @@ public class DeviceManagementDataHolder {
|
|||||||
this.apiPublisherService = apiPublisherService;
|
this.apiPublisherService = apiPublisherService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public AppManager getAppManager() {
|
||||||
|
return appManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAppManager(AppManager appManager) {
|
||||||
|
this.appManager = appManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
public AppManagementConfig getAppManagerConfig() {
|
||||||
|
return appManagerConfig;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAppManagerConfig(AppManagementConfig appManagerConfig) {
|
||||||
|
this.appManagerConfig = appManagerConfig;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -34,14 +34,19 @@ import org.wso2.carbon.device.mgt.core.DeviceManagementServiceProviderImpl;
|
|||||||
import org.wso2.carbon.device.mgt.core.api.mgt.APIPublisherService;
|
import org.wso2.carbon.device.mgt.core.api.mgt.APIPublisherService;
|
||||||
import org.wso2.carbon.device.mgt.core.api.mgt.APIPublisherServiceImpl;
|
import org.wso2.carbon.device.mgt.core.api.mgt.APIPublisherServiceImpl;
|
||||||
import org.wso2.carbon.device.mgt.core.api.mgt.APIRegistrationStartupObserver;
|
import org.wso2.carbon.device.mgt.core.api.mgt.APIRegistrationStartupObserver;
|
||||||
|
import org.wso2.carbon.device.mgt.core.app.mgt.AppManagerImplHttp;
|
||||||
import org.wso2.carbon.device.mgt.core.config.DeviceConfigurationManager;
|
import org.wso2.carbon.device.mgt.core.config.DeviceConfigurationManager;
|
||||||
import org.wso2.carbon.device.mgt.core.config.DeviceManagementConfig;
|
import org.wso2.carbon.device.mgt.core.config.DeviceManagementConfig;
|
||||||
|
import org.wso2.carbon.device.mgt.core.app.mgt.config.AppManagementConfig;
|
||||||
|
import org.wso2.carbon.device.mgt.core.app.mgt.config.AppManagementConfigurationManager;
|
||||||
import org.wso2.carbon.device.mgt.core.config.datasource.DataSourceConfig;
|
import org.wso2.carbon.device.mgt.core.config.datasource.DataSourceConfig;
|
||||||
import org.wso2.carbon.device.mgt.core.config.license.LicenseConfig;
|
import org.wso2.carbon.device.mgt.core.config.license.LicenseConfig;
|
||||||
import org.wso2.carbon.device.mgt.core.config.license.LicenseConfigurationManager;
|
import org.wso2.carbon.device.mgt.core.config.license.LicenseConfigurationManager;
|
||||||
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory;
|
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory;
|
||||||
import org.wso2.carbon.device.mgt.core.license.mgt.LicenseManagerImpl;
|
import org.wso2.carbon.device.mgt.core.license.mgt.LicenseManagerImpl;
|
||||||
import org.wso2.carbon.device.mgt.core.operation.mgt.dao.OperationManagementDAOFactory;
|
import org.wso2.carbon.device.mgt.core.operation.mgt.dao.OperationManagementDAOFactory;
|
||||||
|
import org.wso2.carbon.device.mgt.core.service.AppManagementServiceImpl;
|
||||||
|
import org.wso2.carbon.device.mgt.core.service.AppManager;
|
||||||
import org.wso2.carbon.device.mgt.core.service.DeviceManagementService;
|
import org.wso2.carbon.device.mgt.core.service.DeviceManagementService;
|
||||||
import org.wso2.carbon.device.mgt.core.service.DeviceManagementServiceImpl;
|
import org.wso2.carbon.device.mgt.core.service.DeviceManagementServiceImpl;
|
||||||
import org.wso2.carbon.device.mgt.core.util.DeviceManagementSchemaInitializer;
|
import org.wso2.carbon.device.mgt.core.util.DeviceManagementSchemaInitializer;
|
||||||
@ -106,6 +111,13 @@ public class DeviceManagementServiceComponent {
|
|||||||
DeviceManagementDataHolder.getInstance().setLicenseManager(licenseManager);
|
DeviceManagementDataHolder.getInstance().setLicenseManager(licenseManager);
|
||||||
DeviceManagementDataHolder.getInstance().setLicenseConfig(licenseConfig);
|
DeviceManagementDataHolder.getInstance().setLicenseConfig(licenseConfig);
|
||||||
|
|
||||||
|
AppManagementConfigurationManager.getInstance().initConfig();
|
||||||
|
AppManagementConfig appConfig =
|
||||||
|
AppManagementConfigurationManager.getInstance().getAppManagementConfig();
|
||||||
|
DeviceManagementDataHolder.getInstance().setAppManagerConfig(appConfig);
|
||||||
|
AppManagerImplHttp appManager = new AppManagerImplHttp(appConfig);
|
||||||
|
DeviceManagementDataHolder.getInstance().setAppManager(appManager);
|
||||||
|
|
||||||
OperationManagementDAOFactory.init(dsConfig);
|
OperationManagementDAOFactory.init(dsConfig);
|
||||||
|
|
||||||
/* If -Dsetup option enabled then create device management database schema */
|
/* If -Dsetup option enabled then create device management database schema */
|
||||||
@ -146,6 +158,11 @@ public class DeviceManagementServiceComponent {
|
|||||||
bundleContext.registerService(APIPublisherService.class, publisher, null);
|
bundleContext.registerService(APIPublisherService.class, publisher, null);
|
||||||
|
|
||||||
bundleContext.registerService(ServerStartupObserver.class, new APIRegistrationStartupObserver(), null);
|
bundleContext.registerService(ServerStartupObserver.class, new APIRegistrationStartupObserver(), null);
|
||||||
|
|
||||||
|
|
||||||
|
/* Registering App Management service */
|
||||||
|
bundleContext.registerService(AppManager.class.getName(),
|
||||||
|
new AppManagementServiceImpl(), null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setupDeviceManagementSchema(DataSourceConfig config)
|
private void setupDeviceManagementSchema(DataSourceConfig config)
|
||||||
|
|||||||
@ -0,0 +1,48 @@
|
|||||||
|
/*
|
||||||
|
* 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.device.mgt.core.service;
|
||||||
|
|
||||||
|
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||||
|
import org.wso2.carbon.device.mgt.core.app.mgt.AppManagementException;
|
||||||
|
import org.wso2.carbon.device.mgt.core.app.mgt.oauth.dto.Credential;
|
||||||
|
import org.wso2.carbon.device.mgt.core.dto.Application;
|
||||||
|
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
|
||||||
|
|
||||||
|
public class AppManagementServiceImpl implements AppManager {
|
||||||
|
@Override public Application[] getApplicationList(String domain, int pageNumber, int size)
|
||||||
|
throws AppManagementException {
|
||||||
|
return DeviceManagementDataHolder.getInstance().getAppManager()
|
||||||
|
.getApplicationList(domain, pageNumber, size);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public void updateApplicationStatusOnDevice(DeviceIdentifier deviceId,
|
||||||
|
Application application, String status) {
|
||||||
|
DeviceManagementDataHolder.getInstance().getAppManager()
|
||||||
|
.updateApplicationStatusOnDevice(deviceId, application, status);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public String getApplicationStatusOnDevice(DeviceIdentifier deviceId,
|
||||||
|
Application application) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public Credential getClientCredentials() throws AppManagementException{
|
||||||
|
return DeviceManagementDataHolder.getInstance().getAppManager().getClientCredentials();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,69 @@
|
|||||||
|
/*
|
||||||
|
* 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.device.mgt.core.service;
|
||||||
|
|
||||||
|
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||||
|
import org.wso2.carbon.device.mgt.core.app.mgt.oauth.dto.Credential;
|
||||||
|
import org.wso2.carbon.device.mgt.core.dto.Application;
|
||||||
|
import org.wso2.carbon.device.mgt.core.app.mgt.AppManagementException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This will handle the Application management side of MDM by acting a bridge between
|
||||||
|
* MDM and App manager product.
|
||||||
|
*/
|
||||||
|
public interface AppManager {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This will communicate with App manager and retrieve the list of apps in the store, when
|
||||||
|
* the domain is given. The list is broken down into pages and retrieved.
|
||||||
|
* @param domain Tenant domain of the app list to be retrieved.
|
||||||
|
* @param pageNumber Page number of the list.
|
||||||
|
* @param size Number of items in one page.
|
||||||
|
* @return The list of applications belongs to a domain.
|
||||||
|
* @throws AppManagementException
|
||||||
|
*/
|
||||||
|
|
||||||
|
Application [] getApplicationList(String domain, int pageNumber, int size)
|
||||||
|
throws AppManagementException;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates the application, install/uninstall status of the a certain application, on a device.
|
||||||
|
* @param deviceId Device id of the device that the status belongs to.
|
||||||
|
* @param application Application details of the app being updated.
|
||||||
|
* @param status Installed/Uninstalled
|
||||||
|
*/
|
||||||
|
void updateApplicationStatusOnDevice(DeviceIdentifier deviceId, Application application,
|
||||||
|
String status);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve the status of an application on a device. Whether it is installed or not.
|
||||||
|
* @param deviceId Device id of the device that the status belongs to.
|
||||||
|
* @param application Application details of the app being searched.
|
||||||
|
* @return Status of the application on the device.
|
||||||
|
*/
|
||||||
|
String getApplicationStatusOnDevice(DeviceIdentifier deviceId, Application application);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new application and return client Id and secret.
|
||||||
|
* @return consumer Id and consumer key.
|
||||||
|
* * @throws AppManagementException
|
||||||
|
*/
|
||||||
|
Credential getClientCredentials() throws AppManagementException;
|
||||||
|
}
|
||||||
@ -105,6 +105,8 @@
|
|||||||
<bundleDef>
|
<bundleDef>
|
||||||
org.wso2.carbon.commons:org.wso2.carbon.email.verification
|
org.wso2.carbon.commons:org.wso2.carbon.email.verification
|
||||||
</bundleDef>
|
</bundleDef>
|
||||||
|
<bundleDef>org.wso2.carbon.identity:org.wso2.carbon.identity.oauth.stub:${carbon.identity.version}
|
||||||
|
</bundleDef>
|
||||||
</bundles>
|
</bundles>
|
||||||
<importFeatures>
|
<importFeatures>
|
||||||
<importFeatureDef>org.wso2.carbon.core.server:${carbon.kernel.version}</importFeatureDef>
|
<importFeatureDef>org.wso2.carbon.core.server:${carbon.kernel.version}</importFeatureDef>
|
||||||
|
|||||||
@ -0,0 +1,23 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<AppManagementConfig>
|
||||||
|
<Enabled>true</Enabled>
|
||||||
|
<AppManagerUrl>http:/www.google.com</AppManagerUrl>
|
||||||
|
</AppManagementConfig>
|
||||||
@ -30,6 +30,11 @@
|
|||||||
<keepAliveTime>20</keepAliveTime>
|
<keepAliveTime>20</keepAliveTime>
|
||||||
<ThreadQueueCapacity>1000</ThreadQueueCapacity>
|
<ThreadQueueCapacity>1000</ThreadQueueCapacity>
|
||||||
</EmailClientConfiguration>
|
</EmailClientConfiguration>
|
||||||
|
<IdentityConfiguration>
|
||||||
|
<ServerUrl>https://localhost:9443</ServerUrl>
|
||||||
|
<AdminUsername>admin</AdminUsername>
|
||||||
|
<AdminPassword>admin</AdminPassword>
|
||||||
|
</IdentityConfiguration>
|
||||||
</ManagementRepository>
|
</ManagementRepository>
|
||||||
</DeviceMgtConfiguration>
|
</DeviceMgtConfiguration>
|
||||||
|
|
||||||
|
|||||||
7
pom.xml
7
pom.xml
@ -154,6 +154,12 @@
|
|||||||
<artifactId>org.wso2.carbon.device.mgt.user.common</artifactId>
|
<artifactId>org.wso2.carbon.device.mgt.user.common</artifactId>
|
||||||
<version>${carbon.device.mgt.version}</version>
|
<version>${carbon.device.mgt.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wso2.carbon.identity</groupId>
|
||||||
|
<artifactId>org.wso2.carbon.identity.oauth.stub</artifactId>
|
||||||
|
<version>${carbon.identity.version}</version>
|
||||||
|
</dependency>
|
||||||
<!-- Device Management dependencies -->
|
<!-- Device Management dependencies -->
|
||||||
|
|
||||||
<!-- Governance dependencies -->
|
<!-- Governance dependencies -->
|
||||||
@ -1056,6 +1062,7 @@
|
|||||||
<!-- Identity -->
|
<!-- Identity -->
|
||||||
<carbon.identity.version>4.3.3</carbon.identity.version>
|
<carbon.identity.version>4.3.3</carbon.identity.version>
|
||||||
|
|
||||||
|
|
||||||
<!-- Multi-tenancy -->
|
<!-- Multi-tenancy -->
|
||||||
<carbon.multitenancy.version>4.3.3</carbon.multitenancy.version>
|
<carbon.multitenancy.version>4.3.3</carbon.multitenancy.version>
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user