mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Merge pull request #1111 from ruwany/master
Resolving conflicts for Remote Control feature on behalf of Waruna
This commit is contained in:
commit
bb88b4ed43
@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.wso2.carbon.device.mgt.jaxrs.beans;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@ApiModel(value = "RemoteSessionInfo", description = "Template of the remote session")
|
||||||
|
public class RemoteSessionInfo {
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "Server Url", value = "Url of the remote session server.", required = true)
|
||||||
|
private String serverUrl;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "isEnabled", value = "Is remote session functionality enabled", required = true)
|
||||||
|
private Boolean isEnabled;
|
||||||
|
|
||||||
|
public String getServerUrl() {
|
||||||
|
return serverUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setServerUrl(String serverUrl) {
|
||||||
|
this.serverUrl = serverUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getEnabled() {
|
||||||
|
return isEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEnabled(Boolean enabled) {
|
||||||
|
isEnabled = enabled;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,130 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
package org.wso2.carbon.device.mgt.jaxrs.service.api;
|
||||||
|
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import io.swagger.annotations.ApiParam;
|
||||||
|
import io.swagger.annotations.ApiResponse;
|
||||||
|
import io.swagger.annotations.ApiResponses;
|
||||||
|
import io.swagger.annotations.Extension;
|
||||||
|
import io.swagger.annotations.ExtensionProperty;
|
||||||
|
import io.swagger.annotations.Info;
|
||||||
|
import io.swagger.annotations.ResponseHeader;
|
||||||
|
import io.swagger.annotations.SwaggerDefinition;
|
||||||
|
import io.swagger.annotations.Tag;
|
||||||
|
import org.wso2.carbon.apimgt.annotations.api.Scope;
|
||||||
|
import org.wso2.carbon.apimgt.annotations.api.Scopes;
|
||||||
|
import org.wso2.carbon.device.mgt.jaxrs.util.Constants;
|
||||||
|
|
||||||
|
import javax.validation.constraints.Size;
|
||||||
|
import javax.ws.rs.GET;
|
||||||
|
import javax.ws.rs.Path;
|
||||||
|
import javax.ws.rs.PathParam;
|
||||||
|
import javax.ws.rs.core.Response;
|
||||||
|
|
||||||
|
@SwaggerDefinition(
|
||||||
|
info = @Info(
|
||||||
|
version = "1.0.0",
|
||||||
|
title = "",
|
||||||
|
extensions = {
|
||||||
|
@Extension(properties = {
|
||||||
|
@ExtensionProperty(name = "name", value = "remote_session_services"),
|
||||||
|
@ExtensionProperty(name = "context", value = "/api/device-mgt/v1.0/remote-session-services"),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
),
|
||||||
|
tags = {
|
||||||
|
@Tag(name = "device_management", description = "")
|
||||||
|
}
|
||||||
|
)
|
||||||
|
@Scopes(
|
||||||
|
scopes = {
|
||||||
|
@Scope(
|
||||||
|
name = "Remote Session Connection",
|
||||||
|
description = "",
|
||||||
|
key = "perm:remote-session-service:connect",
|
||||||
|
permissions = {"/device-mgt/devices/owning-device/remote-session"}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
@Path("/remote-session-services")
|
||||||
|
@Api(value = "Remote Session Service",
|
||||||
|
description = "This carries all the resources related to the remote session service functionality.")
|
||||||
|
public interface RemoteSessionService {
|
||||||
|
/**
|
||||||
|
* Retrieve Analytics for the device type
|
||||||
|
*/
|
||||||
|
@GET
|
||||||
|
@Path("connection/{deviceType}/{deviceId}")
|
||||||
|
@ApiOperation(
|
||||||
|
consumes = "application/json",
|
||||||
|
produces = "application/json",
|
||||||
|
httpMethod = "GET",
|
||||||
|
value = "Retrieve Connection Information for the device type",
|
||||||
|
notes = "",
|
||||||
|
response = Response.class,
|
||||||
|
tags = "Remote Session Service Management",
|
||||||
|
extensions = {
|
||||||
|
@Extension(properties = {
|
||||||
|
@ExtensionProperty(name = Constants.SCOPE, value = "perm:remote-session-service:connect")
|
||||||
|
})
|
||||||
|
}
|
||||||
|
)
|
||||||
|
@ApiResponses(value = {
|
||||||
|
@ApiResponse(
|
||||||
|
code = 200,
|
||||||
|
message = "OK.",
|
||||||
|
response = Response.class,
|
||||||
|
responseHeaders = {
|
||||||
|
@ResponseHeader(
|
||||||
|
name = "Content-Type",
|
||||||
|
description = "The content type of the body"),
|
||||||
|
@ResponseHeader(
|
||||||
|
name = "Last-Modified",
|
||||||
|
description = "Date and time the resource was last modified.\n" +
|
||||||
|
"Used by caches, or in conditional requests."),
|
||||||
|
}),
|
||||||
|
@ApiResponse(
|
||||||
|
code = 400,
|
||||||
|
message = "Bad Request. \n Invalid Device Identifiers found.",
|
||||||
|
response = Response.class),
|
||||||
|
@ApiResponse(
|
||||||
|
code = 401,
|
||||||
|
message = "Unauthorized. \n Unauthorized request."),
|
||||||
|
@ApiResponse(
|
||||||
|
code = 500,
|
||||||
|
message = "Internal Server Error. \n Error on retrieving stats",
|
||||||
|
response = Response.class)
|
||||||
|
})
|
||||||
|
Response getRemoteSessionDeviceConnect(
|
||||||
|
@ApiParam(
|
||||||
|
name = "deviceId",
|
||||||
|
value = "The registered device Id.",
|
||||||
|
required = true)
|
||||||
|
@PathParam("deviceId") String deviceId,
|
||||||
|
@ApiParam(
|
||||||
|
name = "device-type",
|
||||||
|
value = "The device type, such as ios, android or windows.",
|
||||||
|
required = true)
|
||||||
|
@PathParam("deviceType")
|
||||||
|
@Size(max = 45)
|
||||||
|
String deviceType);
|
||||||
|
}
|
||||||
@ -0,0 +1,68 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.wso2.carbon.device.mgt.jaxrs.service.impl;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
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.remote.session.RemoteSessionConfiguration;
|
||||||
|
import org.wso2.carbon.device.mgt.jaxrs.beans.RemoteSessionInfo;
|
||||||
|
import org.wso2.carbon.device.mgt.jaxrs.service.api.RemoteSessionService;
|
||||||
|
|
||||||
|
import javax.ws.rs.Consumes;
|
||||||
|
import javax.ws.rs.GET;
|
||||||
|
import javax.ws.rs.Path;
|
||||||
|
import javax.ws.rs.PathParam;
|
||||||
|
import javax.ws.rs.Produces;
|
||||||
|
import javax.ws.rs.core.Response;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The api for
|
||||||
|
*/
|
||||||
|
public class RemoteSessionServiceImpl implements RemoteSessionService {
|
||||||
|
|
||||||
|
private static Log log = LogFactory.getLog(RemoteSessionServiceImpl.class);
|
||||||
|
|
||||||
|
@Path("connect/{deviceType}/{deviceId}")
|
||||||
|
@GET
|
||||||
|
@Consumes("application/json")
|
||||||
|
@Produces("application/json")
|
||||||
|
public Response getRemoteSessionDeviceConnect(@PathParam("deviceId") String deviceId,
|
||||||
|
@PathParam("deviceType") String deviceType) {
|
||||||
|
//First, check whether the remote session is enabled.
|
||||||
|
RemoteSessionInfo sessionInfo = new RemoteSessionInfo();
|
||||||
|
sessionInfo.setEnabled(false);
|
||||||
|
DeviceManagementConfig deviceManagementConfig = DeviceConfigurationManager.getInstance()
|
||||||
|
.getDeviceManagementConfig();
|
||||||
|
if (deviceManagementConfig != null) {
|
||||||
|
RemoteSessionConfiguration remoteSessionConfiguration = deviceManagementConfig.getRemoteSessionConfiguration();
|
||||||
|
if (remoteSessionConfiguration != null) {
|
||||||
|
boolean isEnabled = remoteSessionConfiguration.isEnabled();
|
||||||
|
sessionInfo.setEnabled(isEnabled);
|
||||||
|
if (isEnabled) {
|
||||||
|
sessionInfo.setServerUrl(remoteSessionConfiguration.getRemoteSessionServerUrl());
|
||||||
|
}
|
||||||
|
return Response.ok().entity(sessionInfo).build();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Response.ok().entity(sessionInfo).build();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -38,6 +38,7 @@
|
|||||||
<ref bean="userManagementAdminService"/>
|
<ref bean="userManagementAdminService"/>
|
||||||
<ref bean="groupManagementService"/>
|
<ref bean="groupManagementService"/>
|
||||||
<ref bean="geoService"/>
|
<ref bean="geoService"/>
|
||||||
|
<ref bean="remoteSessionService"/>
|
||||||
<ref bean="groupManagementAdminService"/>
|
<ref bean="groupManagementAdminService"/>
|
||||||
<ref bean="applicationManagementAdminService"/>
|
<ref bean="applicationManagementAdminService"/>
|
||||||
<ref bean="deviceTypeManagementAdminService"/>
|
<ref bean="deviceTypeManagementAdminService"/>
|
||||||
@ -81,6 +82,7 @@
|
|||||||
<bean id="userManagementService" class="org.wso2.carbon.device.mgt.jaxrs.service.impl.UserManagementServiceImpl"/>
|
<bean id="userManagementService" class="org.wso2.carbon.device.mgt.jaxrs.service.impl.UserManagementServiceImpl"/>
|
||||||
<bean id="groupManagementService" class="org.wso2.carbon.device.mgt.jaxrs.service.impl.GroupManagementServiceImpl"/>
|
<bean id="groupManagementService" class="org.wso2.carbon.device.mgt.jaxrs.service.impl.GroupManagementServiceImpl"/>
|
||||||
<bean id="geoService" class="org.wso2.carbon.device.mgt.jaxrs.service.impl.GeoLocationBasedServiceImpl"/>
|
<bean id="geoService" class="org.wso2.carbon.device.mgt.jaxrs.service.impl.GeoLocationBasedServiceImpl"/>
|
||||||
|
<bean id="remoteSessionService" class="org.wso2.carbon.device.mgt.jaxrs.service.impl.RemoteSessionServiceImpl"/>
|
||||||
<bean id="deviceManagementAdminService" class="org.wso2.carbon.device.mgt.jaxrs.service.impl.admin.DeviceManagementAdminServiceImpl"/>
|
<bean id="deviceManagementAdminService" class="org.wso2.carbon.device.mgt.jaxrs.service.impl.admin.DeviceManagementAdminServiceImpl"/>
|
||||||
<bean id="applicationManagementAdminService" class="org.wso2.carbon.device.mgt.jaxrs.service.impl.admin.ApplicationManagementAdminServiceImpl"/>
|
<bean id="applicationManagementAdminService" class="org.wso2.carbon.device.mgt.jaxrs.service.impl.admin.ApplicationManagementAdminServiceImpl"/>
|
||||||
<bean id="groupManagementAdminService" class="org.wso2.carbon.device.mgt.jaxrs.service.impl.admin.GroupManagementAdminServiceImpl"/>
|
<bean id="groupManagementAdminService" class="org.wso2.carbon.device.mgt.jaxrs.service.impl.admin.GroupManagementAdminServiceImpl"/>
|
||||||
|
|||||||
@ -21,10 +21,12 @@ import org.wso2.carbon.device.mgt.core.config.cache.CertificateCacheConfiguratio
|
|||||||
import org.wso2.carbon.device.mgt.core.config.geo.location.OperationAnalyticsConfiguration;
|
import org.wso2.carbon.device.mgt.core.config.geo.location.OperationAnalyticsConfiguration;
|
||||||
import org.wso2.carbon.device.mgt.core.config.cache.DeviceCacheConfiguration;
|
import org.wso2.carbon.device.mgt.core.config.cache.DeviceCacheConfiguration;
|
||||||
import org.wso2.carbon.device.mgt.core.config.identity.IdentityConfigurations;
|
import org.wso2.carbon.device.mgt.core.config.identity.IdentityConfigurations;
|
||||||
|
import org.wso2.carbon.device.mgt.core.config.keymanager.KeyManagerConfigurations;
|
||||||
import org.wso2.carbon.device.mgt.core.config.pagination.PaginationConfiguration;
|
import org.wso2.carbon.device.mgt.core.config.pagination.PaginationConfiguration;
|
||||||
import org.wso2.carbon.device.mgt.core.config.policy.PolicyConfiguration;
|
import org.wso2.carbon.device.mgt.core.config.policy.PolicyConfiguration;
|
||||||
import org.wso2.carbon.device.mgt.core.config.pull.notification.PullNotificationConfiguration;
|
import org.wso2.carbon.device.mgt.core.config.pull.notification.PullNotificationConfiguration;
|
||||||
import org.wso2.carbon.device.mgt.core.config.push.notification.PushNotificationConfiguration;
|
import org.wso2.carbon.device.mgt.core.config.push.notification.PushNotificationConfiguration;
|
||||||
|
import org.wso2.carbon.device.mgt.core.config.remote.session.RemoteSessionConfiguration;
|
||||||
import org.wso2.carbon.device.mgt.core.config.status.task.DeviceStatusTaskConfig;
|
import org.wso2.carbon.device.mgt.core.config.status.task.DeviceStatusTaskConfig;
|
||||||
import org.wso2.carbon.device.mgt.core.config.task.TaskConfiguration;
|
import org.wso2.carbon.device.mgt.core.config.task.TaskConfiguration;
|
||||||
|
|
||||||
@ -41,6 +43,7 @@ public final class DeviceManagementConfig {
|
|||||||
private DeviceManagementConfigRepository deviceManagementConfigRepository;
|
private DeviceManagementConfigRepository deviceManagementConfigRepository;
|
||||||
private TaskConfiguration taskConfiguration;
|
private TaskConfiguration taskConfiguration;
|
||||||
private IdentityConfigurations identityConfigurations;
|
private IdentityConfigurations identityConfigurations;
|
||||||
|
private KeyManagerConfigurations keyManagerConfigurations;
|
||||||
private PolicyConfiguration policyConfiguration;
|
private PolicyConfiguration policyConfiguration;
|
||||||
private PaginationConfiguration paginationConfiguration;
|
private PaginationConfiguration paginationConfiguration;
|
||||||
private PushNotificationConfiguration pushNotificationConfiguration;
|
private PushNotificationConfiguration pushNotificationConfiguration;
|
||||||
@ -50,6 +53,8 @@ public final class DeviceManagementConfig {
|
|||||||
private CertificateCacheConfiguration certificateCacheConfiguration;
|
private CertificateCacheConfiguration certificateCacheConfiguration;
|
||||||
private OperationAnalyticsConfiguration operationAnalyticsConfiguration;
|
private OperationAnalyticsConfiguration operationAnalyticsConfiguration;
|
||||||
private String defaultGroupsConfiguration;
|
private String defaultGroupsConfiguration;
|
||||||
|
private RemoteSessionConfiguration remoteSessionConfiguration;
|
||||||
|
|
||||||
|
|
||||||
@XmlElement(name = "ManagementRepository", required = true)
|
@XmlElement(name = "ManagementRepository", required = true)
|
||||||
public DeviceManagementConfigRepository getDeviceManagementConfigRepository() {
|
public DeviceManagementConfigRepository getDeviceManagementConfigRepository() {
|
||||||
@ -70,6 +75,15 @@ public final class DeviceManagementConfig {
|
|||||||
this.identityConfigurations = identityConfigurations;
|
this.identityConfigurations = identityConfigurations;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@XmlElement(name = "KeyManagerConfiguration", required = true)
|
||||||
|
public KeyManagerConfigurations getKeyManagerConfigurations() {
|
||||||
|
return keyManagerConfigurations;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setKeyManagerConfigurations(KeyManagerConfigurations keyManagerConfigurations) {
|
||||||
|
this.keyManagerConfigurations = keyManagerConfigurations;
|
||||||
|
}
|
||||||
|
|
||||||
@XmlElement(name = "PolicyConfiguration", required = true)
|
@XmlElement(name = "PolicyConfiguration", required = true)
|
||||||
public PolicyConfiguration getPolicyConfiguration() {
|
public PolicyConfiguration getPolicyConfiguration() {
|
||||||
return policyConfiguration;
|
return policyConfiguration;
|
||||||
@ -159,5 +173,13 @@ public final class DeviceManagementConfig {
|
|||||||
public void setDefaultGroupsConfiguration(String defaultGroupsConfiguration) {
|
public void setDefaultGroupsConfiguration(String defaultGroupsConfiguration) {
|
||||||
this.defaultGroupsConfiguration = defaultGroupsConfiguration;
|
this.defaultGroupsConfiguration = defaultGroupsConfiguration;
|
||||||
}
|
}
|
||||||
|
@XmlElement(name = "RemoteSessionConfiguration", required = true)
|
||||||
|
public RemoteSessionConfiguration getRemoteSessionConfiguration() {
|
||||||
|
return remoteSessionConfiguration;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRemoteSessionConfiguration(RemoteSessionConfiguration remoteSessionConfiguration) {
|
||||||
|
this.remoteSessionConfiguration = remoteSessionConfiguration;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,59 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
package org.wso2.carbon.device.mgt.core.config.keymanager;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configurations related to key management.
|
||||||
|
*/
|
||||||
|
@XmlRootElement(name = "KeyManagerConfiguration")
|
||||||
|
public class KeyManagerConfigurations {
|
||||||
|
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,143 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* you may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.wso2.carbon.device.mgt.core.config.remote.session;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class represents the information related to Remote Session configuration.
|
||||||
|
*/
|
||||||
|
@XmlRootElement(name = "RemoteSessionConfiguration")
|
||||||
|
public class RemoteSessionConfiguration {
|
||||||
|
|
||||||
|
private String remoteSessionServerUrl;
|
||||||
|
private boolean enabled;
|
||||||
|
private int maxHTTPConnectionPerHost;
|
||||||
|
private int maxTotalHTTPConnections;
|
||||||
|
private int maxMessagesPerSecond;
|
||||||
|
private int sessionIdleTimeOut;
|
||||||
|
private int maxSessionDuration;
|
||||||
|
private int sessionBufferSize;
|
||||||
|
|
||||||
|
public void setRemoteSessionServerUrl(String remoteSessionServerUrl) {
|
||||||
|
this.remoteSessionServerUrl = remoteSessionServerUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remote session server url
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@XmlElement(name = "RemoteSessionServerUrl", required = true)
|
||||||
|
public String getRemoteSessionServerUrl() {
|
||||||
|
return remoteSessionServerUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remote session enabled
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@XmlElement(name = "Enabled", required = true)
|
||||||
|
public boolean isEnabled() {
|
||||||
|
return enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEnabled(boolean enabled) {
|
||||||
|
this.enabled = enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Maximum connections per host for external http invocations
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@XmlElement(name = "MaximumHTTPConnectionPerHost", required = true, defaultValue = "2")
|
||||||
|
public int getMaxHTTPConnectionPerHost() {
|
||||||
|
return maxHTTPConnectionPerHost;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMaxHTTPConnectionPerHost(int maxHTTPConnectionPerHost) {
|
||||||
|
this.maxHTTPConnectionPerHost = maxHTTPConnectionPerHost;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Maximum total connections for external http invocation
|
||||||
|
*/
|
||||||
|
@XmlElement(name = "MaximumTotalHTTPConnections", required = true, defaultValue = "100")
|
||||||
|
public int getMaxTotalHTTPConnections() {
|
||||||
|
return maxTotalHTTPConnections;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMaxTotalHTTPConnections(int maxTotalHTTPConnections) {
|
||||||
|
this.maxTotalHTTPConnections = maxTotalHTTPConnections;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is for protect device from message spamming. Throttling limit in term of messages for device
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@XmlElement(name = "MaximumMessagesPerSecond", required = true, defaultValue = "10")
|
||||||
|
public int getMaxMessagesPerSession() {
|
||||||
|
return maxMessagesPerSecond;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMaxMessagesPerSession(int maxMessagesPerSession) {
|
||||||
|
this.maxMessagesPerSecond = maxMessagesPerSession;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Maximum idle timeout in minutes
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@XmlElement(name = "SessionIdleTimeOut", required = true, defaultValue = "5")
|
||||||
|
public int getSessionIdleTimeOut() {
|
||||||
|
return sessionIdleTimeOut;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSessionIdleTimeOut(int sessionIdleTimeOut) {
|
||||||
|
this.sessionIdleTimeOut = sessionIdleTimeOut;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Maximum session duration in minutes
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@XmlElement(name = "MaximumSessionDuration", required = true, defaultValue = "15")
|
||||||
|
public int getMaxSessionDuration() {
|
||||||
|
return maxSessionDuration;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMaxSessionDuration(int maxSessionDuration) {
|
||||||
|
this.maxSessionDuration = maxSessionDuration;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Maximum session buffer size in kilo bytes
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@XmlElement(name = "SessionBufferSize", required = true, defaultValue = "640")
|
||||||
|
public int getSessionBufferSize() {
|
||||||
|
return sessionBufferSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSessionBufferSize(int sessionBufferSize) {
|
||||||
|
this.sessionBufferSize = sessionBufferSize;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -32,6 +32,7 @@ import java.sql.Connection;
|
|||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Timestamp;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -45,6 +46,7 @@ public class ConfigOperationDAOImpl extends GenericOperationDAOImpl {
|
|||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
try {
|
try {
|
||||||
operationId = super.addOperation(operation);
|
operationId = super.addOperation(operation);
|
||||||
|
operation.setCreatedTimeStamp(new Timestamp(new java.util.Date().getTime()).toString());
|
||||||
Connection conn = OperationManagementDAOFactory.getConnection();
|
Connection conn = OperationManagementDAOFactory.getConnection();
|
||||||
stmt = conn.prepareStatement("INSERT INTO DM_CONFIG_OPERATION(OPERATION_ID, OPERATION_CONFIG) VALUES(?, ?)");
|
stmt = conn.prepareStatement("INSERT INTO DM_CONFIG_OPERATION(OPERATION_ID, OPERATION_CONFIG) VALUES(?, ?)");
|
||||||
stmt.setInt(1, operationId);
|
stmt.setInt(1, operationId);
|
||||||
|
|||||||
@ -22,7 +22,11 @@ import org.apache.commons.logging.Log;
|
|||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationResponse;
|
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationResponse;
|
||||||
import org.wso2.carbon.device.mgt.core.DeviceManagementConstants;
|
import org.wso2.carbon.device.mgt.core.DeviceManagementConstants;
|
||||||
import org.wso2.carbon.device.mgt.core.dto.operation.mgt.*;
|
import org.wso2.carbon.device.mgt.core.dto.operation.mgt.CommandOperation;
|
||||||
|
import org.wso2.carbon.device.mgt.core.dto.operation.mgt.ConfigOperation;
|
||||||
|
import org.wso2.carbon.device.mgt.core.dto.operation.mgt.Operation;
|
||||||
|
import org.wso2.carbon.device.mgt.core.dto.operation.mgt.PolicyOperation;
|
||||||
|
import org.wso2.carbon.device.mgt.core.dto.operation.mgt.ProfileOperation;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -32,6 +36,7 @@ import java.sql.SQLException;
|
|||||||
|
|
||||||
public class OperationDAOUtil {
|
public class OperationDAOUtil {
|
||||||
private static final Log log = LogFactory.getLog(OperationDAOUtil.class);
|
private static final Log log = LogFactory.getLog(OperationDAOUtil.class);
|
||||||
|
|
||||||
public static Operation convertOperation(org.wso2.carbon.device.mgt.common.operation.mgt.Operation operation) {
|
public static Operation convertOperation(org.wso2.carbon.device.mgt.common.operation.mgt.Operation operation) {
|
||||||
|
|
||||||
Operation dtoOperation = null;
|
Operation dtoOperation = null;
|
||||||
@ -40,28 +45,28 @@ public class OperationDAOUtil {
|
|||||||
dtoOperation = new CommandOperation();
|
dtoOperation = new CommandOperation();
|
||||||
} else if (operation.getType().equals(org.wso2.carbon.device.mgt.common.operation.mgt.Operation.Type.PROFILE)) {
|
} else if (operation.getType().equals(org.wso2.carbon.device.mgt.common.operation.mgt.Operation.Type.PROFILE)) {
|
||||||
dtoOperation = new ProfileOperation();
|
dtoOperation = new ProfileOperation();
|
||||||
}else if(operation.getType().equals(org.wso2.carbon.device.mgt.common.operation.mgt.Operation.Type.POLICY)){
|
} else if (operation.getType().equals(org.wso2.carbon.device.mgt.common.operation.mgt.Operation.Type.POLICY)) {
|
||||||
dtoOperation = new PolicyOperation();
|
dtoOperation = new PolicyOperation();
|
||||||
}else if(operation.getType().equals(org.wso2.carbon.device.mgt.common.operation.mgt.Operation.Type.CONFIG)) {
|
} else if (operation.getType().equals(org.wso2.carbon.device.mgt.common.operation.mgt.Operation.Type.CONFIG)) {
|
||||||
dtoOperation = new ConfigOperation();
|
dtoOperation = new ConfigOperation();
|
||||||
}else{
|
} else {
|
||||||
dtoOperation = new Operation();
|
dtoOperation = new Operation();
|
||||||
}
|
}
|
||||||
|
|
||||||
dtoOperation.setEnabled(operation.isEnabled());
|
dtoOperation.setEnabled(operation.isEnabled());
|
||||||
dtoOperation.setCode(operation.getCode());
|
dtoOperation.setCode(operation.getCode());
|
||||||
|
|
||||||
if (operation.getType() != null){
|
if (operation.getType() != null) {
|
||||||
dtoOperation.setType(Operation.Type.valueOf(operation.getType().toString()));
|
dtoOperation.setType(Operation.Type.valueOf(operation.getType().toString()));
|
||||||
}else{
|
} else {
|
||||||
dtoOperation.setType(null);
|
dtoOperation.setType(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
dtoOperation.setCreatedTimeStamp(operation.getCreatedTimeStamp());
|
dtoOperation.setCreatedTimeStamp(operation.getCreatedTimeStamp());
|
||||||
|
|
||||||
if (operation.getStatus() != null){
|
if (operation.getStatus() != null) {
|
||||||
dtoOperation.setStatus(Operation.Status.valueOf(operation.getStatus().toString()));
|
dtoOperation.setStatus(Operation.Status.valueOf(operation.getStatus().toString()));
|
||||||
}else{
|
} else {
|
||||||
dtoOperation.setStatus(null);
|
dtoOperation.setStatus(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -70,31 +75,35 @@ public class OperationDAOUtil {
|
|||||||
dtoOperation.setReceivedTimeStamp(operation.getReceivedTimeStamp());
|
dtoOperation.setReceivedTimeStamp(operation.getReceivedTimeStamp());
|
||||||
dtoOperation.setProperties(operation.getProperties());
|
dtoOperation.setProperties(operation.getProperties());
|
||||||
|
|
||||||
|
if (operation.getControl() != null) {
|
||||||
|
dtoOperation.setControl(Operation.Control.valueOf(operation.getControl().toString()));
|
||||||
|
}
|
||||||
|
|
||||||
return dtoOperation;
|
return dtoOperation;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static org.wso2.carbon.device.mgt.common.operation.mgt.Operation convertOperation(Operation dtoOperation){
|
public static org.wso2.carbon.device.mgt.common.operation.mgt.Operation convertOperation(Operation dtoOperation) {
|
||||||
|
|
||||||
org.wso2.carbon.device.mgt.common.operation.mgt.Operation operation = null;
|
org.wso2.carbon.device.mgt.common.operation.mgt.Operation operation = null;
|
||||||
|
|
||||||
if (dtoOperation.getType().equals(Operation.Type.COMMAND)){
|
if (dtoOperation.getType().equals(Operation.Type.COMMAND)) {
|
||||||
operation = new org.wso2.carbon.device.mgt.core.operation.mgt.CommandOperation();
|
operation = new org.wso2.carbon.device.mgt.core.operation.mgt.CommandOperation();
|
||||||
}else if(dtoOperation.getType().equals(Operation.Type.PROFILE)){
|
} else if (dtoOperation.getType().equals(Operation.Type.PROFILE)) {
|
||||||
operation = new org.wso2.carbon.device.mgt.core.operation.mgt.ProfileOperation();
|
operation = new org.wso2.carbon.device.mgt.core.operation.mgt.ProfileOperation();
|
||||||
}else{
|
} else {
|
||||||
operation = new org.wso2.carbon.device.mgt.common.operation.mgt.Operation();
|
operation = new org.wso2.carbon.device.mgt.common.operation.mgt.Operation();
|
||||||
}
|
}
|
||||||
operation.setEnabled(dtoOperation.isEnabled());
|
operation.setEnabled(dtoOperation.isEnabled());
|
||||||
operation.setCode(dtoOperation.getCode());
|
operation.setCode(dtoOperation.getCode());
|
||||||
|
|
||||||
if(dtoOperation.getType() != null) {
|
if (dtoOperation.getType() != null) {
|
||||||
operation.setType(org.wso2.carbon.device.mgt.common.operation.mgt.Operation.Type.valueOf(dtoOperation
|
operation.setType(org.wso2.carbon.device.mgt.common.operation.mgt.Operation.Type.valueOf(dtoOperation
|
||||||
.getType().toString()));
|
.getType().toString()));
|
||||||
}
|
}
|
||||||
|
|
||||||
operation.setCreatedTimeStamp(dtoOperation.getCreatedTimeStamp());
|
operation.setCreatedTimeStamp(dtoOperation.getCreatedTimeStamp());
|
||||||
|
|
||||||
if(dtoOperation.getStatus() != null) {
|
if (dtoOperation.getStatus() != null) {
|
||||||
operation.setStatus(org.wso2.carbon.device.mgt.common.operation.mgt.Operation.Status.valueOf(dtoOperation
|
operation.setStatus(org.wso2.carbon.device.mgt.common.operation.mgt.Operation.Status.valueOf(dtoOperation
|
||||||
.getStatus().toString()));
|
.getStatus().toString()));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,6 +6,7 @@
|
|||||||
"httpsURL": "https://%iot.gateway.host%:%iot.gateway.https.port%",
|
"httpsURL": "https://%iot.gateway.host%:%iot.gateway.https.port%",
|
||||||
"httpURL": "http://%iot.gateway.host%:%iot.gateway.http.port%",
|
"httpURL": "http://%iot.gateway.host%:%iot.gateway.http.port%",
|
||||||
"wssURL": "https://%iot.analytics.host%:%iot.analytics.https.port%",
|
"wssURL": "https://%iot.analytics.host%:%iot.analytics.https.port%",
|
||||||
|
"remoteSessionWSURL": "https://%iot.core.host%:%iot.core.https.port%",
|
||||||
"portalURL": "https://%iot.analytics.host%:%iot.analytics.https.port%",
|
"portalURL": "https://%iot.analytics.host%:%iot.analytics.https.port%",
|
||||||
"dashboardServerURL": "%https.ip%",
|
"dashboardServerURL": "%https.ip%",
|
||||||
"androidEnrollmentDir": "/android-web-agent/enrollment",
|
"androidEnrollmentDir": "/android-web-agent/enrollment",
|
||||||
|
|||||||
@ -46,6 +46,11 @@
|
|||||||
<AdminUsername>admin</AdminUsername>
|
<AdminUsername>admin</AdminUsername>
|
||||||
<AdminPassword>admin</AdminPassword>
|
<AdminPassword>admin</AdminPassword>
|
||||||
</IdentityConfiguration>
|
</IdentityConfiguration>
|
||||||
|
<KeyManagerConfiguration>
|
||||||
|
<ServerUrl>https://localhost:9443</ServerUrl>
|
||||||
|
<AdminUsername>admin</AdminUsername>
|
||||||
|
<AdminPassword>admin</AdminPassword>
|
||||||
|
</KeyManagerConfiguration>
|
||||||
<PolicyConfiguration>
|
<PolicyConfiguration>
|
||||||
<MonitoringClass>org.wso2.carbon.policy.mgt</MonitoringClass>
|
<MonitoringClass>org.wso2.carbon.policy.mgt</MonitoringClass>
|
||||||
<MonitoringEnable>true</MonitoringEnable>
|
<MonitoringEnable>true</MonitoringEnable>
|
||||||
@ -91,6 +96,16 @@
|
|||||||
<isEnabled>false</isEnabled>
|
<isEnabled>false</isEnabled>
|
||||||
<PublishLocationOperationResponse>false</PublishLocationOperationResponse>
|
<PublishLocationOperationResponse>false</PublishLocationOperationResponse>
|
||||||
</GeoLocationConfiguration>
|
</GeoLocationConfiguration>
|
||||||
|
<RemoteSessionConfiguration>
|
||||||
|
<Enabled>true</Enabled>
|
||||||
|
<RemoteSessionServerUrl>wss://localhost:9443</RemoteSessionServerUrl>
|
||||||
|
<MaximumHTTPConnectionPerHost>2</MaximumHTTPConnectionPerHost>
|
||||||
|
<MaximumTotalHTTPConnections>100</MaximumTotalHTTPConnections>
|
||||||
|
<MaximumMessagesPerSecond>20</MaximumMessagesPerSecond>
|
||||||
|
<SessionIdleTimeOut>15</SessionIdleTimeOut>
|
||||||
|
<MaximumSessionDuration>60</MaximumSessionDuration>
|
||||||
|
<SessionBufferSize>640</SessionBufferSize>
|
||||||
|
</RemoteSessionConfiguration>
|
||||||
<DefaultGroupsConfiguration>BYOD,COPE</DefaultGroupsConfiguration>
|
<DefaultGroupsConfiguration>BYOD,COPE</DefaultGroupsConfiguration>
|
||||||
</DeviceMgtConfiguration>
|
</DeviceMgtConfiguration>
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user