forked from community/device-mgt-core
parent
3070488adf
commit
4a061e7be2
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
@ -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>
|
Loading…
Reference in new issue