mirror of
https://repository.entgra.net/community/device-mgt-plugins.git
synced 2025-09-16 23:42:15 +00:00
Merge pull request #263 from hasuniea/master
add swagger annotations to windows plugin
This commit is contained in:
commit
f47d465d81
@ -142,6 +142,7 @@ public interface DeviceManagementService {
|
|||||||
@ApiResponses(value = {
|
@ApiResponses(value = {
|
||||||
@ApiResponse(code = 200, message = "Licence agreement"),
|
@ApiResponse(code = 200, message = "Licence agreement"),
|
||||||
@ApiResponse(code = 500, message = "Error occurred while retrieving the license configured for Android " +
|
@ApiResponse(code = 500, message = "Error occurred while retrieving the license configured for Android " +
|
||||||
"device enrolment")})
|
"device enrolment")
|
||||||
|
})
|
||||||
String getLicense() throws AndroidAgentException;
|
String getLicense() throws AndroidAgentException;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -305,5 +305,10 @@
|
|||||||
<artifactId>json</artifactId>
|
<artifactId>json</artifactId>
|
||||||
<version>2.0.0.wso2v1</version>
|
<version>2.0.0.wso2v1</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.swagger</groupId>
|
||||||
|
<artifactId>swagger-annotations</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
@ -18,12 +18,21 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.common.beans;
|
package org.wso2.carbon.mdm.mobileservices.windows.common.beans;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class for java CacheEntry
|
* Class for java CacheEntry
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "CacheEntry",
|
||||||
|
description = "This class carries all information related to token cache")
|
||||||
public class CacheEntry {
|
public class CacheEntry {
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "deviceID", value = "Windows deviceIdentifier", required = true)
|
||||||
private String deviceID;
|
private String deviceID;
|
||||||
|
@ApiModelProperty(name = "username", value = "Enrolled User", required = true)
|
||||||
private String username;
|
private String username;
|
||||||
|
@ApiModelProperty(name = "ownership", value = "Enrollment ownership(BYOD/COPE)", required = true)
|
||||||
private String ownership;
|
private String ownership;
|
||||||
|
|
||||||
public String getOwnership() {
|
public String getOwnership() {
|
||||||
|
|||||||
@ -18,10 +18,17 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.common.beans;
|
package org.wso2.carbon.mdm.mobileservices.windows.common.beans;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class for challenge token
|
* Class for challenge token
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "Token", description = "Details related device encryption.")
|
||||||
public class Token {
|
public class Token {
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "challengeToken",
|
||||||
|
value = "Enrollment Binary security token", required = true)
|
||||||
private String challengeToken;
|
private String challengeToken;
|
||||||
|
|
||||||
public String getChallengeToken() {
|
public String getChallengeToken() {
|
||||||
|
|||||||
@ -18,17 +18,28 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.common.beans;
|
package org.wso2.carbon.mdm.mobileservices.windows.common.beans;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bean class for storing Windows plugin properties after reading the property file.
|
* Bean class for storing Windows plugin properties after reading the property file.
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "WindowsPluginProperties", description = "Windows plugin related properties.")
|
||||||
public class WindowsPluginProperties {
|
public class WindowsPluginProperties {
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "keyStorePassword", value = "Password of the keyStore.", required = true)
|
||||||
private String keyStorePassword;
|
private String keyStorePassword;
|
||||||
|
@ApiModelProperty(name = "privateKeyPassword", value = "password of the privateKey.", required = true)
|
||||||
private String privateKeyPassword;
|
private String privateKeyPassword;
|
||||||
|
@ApiModelProperty(name = "commonName", value = "Common Name of the certificate.", required = true)
|
||||||
private String commonName;
|
private String commonName;
|
||||||
|
@ApiModelProperty(name = "authPolicy", value = "Windows enrollment authentication policy(Federated/on-premise).", required = true)
|
||||||
private String authPolicy;
|
private String authPolicy;
|
||||||
|
@ApiModelProperty(name = "domain", value = "Domain of the given Email.", required = true)
|
||||||
private String domain;
|
private String domain;
|
||||||
|
@ApiModelProperty(name = "notBeforeDays", value = "Number of days to before the certificate expire.", required = true)
|
||||||
private int notBeforeDays;
|
private int notBeforeDays;
|
||||||
|
@ApiModelProperty(name = "notAfterDays", value = "Number of days to after the certificate has been expired.", required = true)
|
||||||
private int notAfterDays;
|
private int notAfterDays;
|
||||||
|
|
||||||
public String getKeyStorePassword() {
|
public String getKeyStorePassword() {
|
||||||
|
|||||||
@ -18,13 +18,23 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.common.util;
|
package org.wso2.carbon.mdm.mobileservices.windows.common.util;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DTO class to hold the information of authenticated user.
|
* DTO class to hold the information of authenticated user.
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "ApplicationInstallation",
|
||||||
|
description = "This class carries all information related to install application")
|
||||||
|
|
||||||
public class AuthenticationInfo {
|
public class AuthenticationInfo {
|
||||||
|
@ApiModelProperty(name = "message", value = "Authentication info message.", required = true)
|
||||||
private String message;
|
private String message;
|
||||||
|
@ApiModelProperty(name = "username", value = "Username of the enrolled user.", required = true)
|
||||||
private String username;
|
private String username;
|
||||||
|
@ApiModelProperty(name = "tenantDomain", value = "Enrolled user's tenant domain.", required = true)
|
||||||
private String tenantDomain;
|
private String tenantDomain;
|
||||||
|
@ApiModelProperty(name = "tenantId", value = "Enrolled user's tenant ID)", required = true)
|
||||||
private int tenantId = -1;
|
private int tenantId = -1;
|
||||||
|
|
||||||
public String getUsername() {
|
public String getUsername() {
|
||||||
|
|||||||
@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.common.util;
|
package org.wso2.carbon.mdm.mobileservices.windows.common.util;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -25,9 +27,12 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* Class for holding device ids.
|
* Class for holding device ids.
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "DeviceIDHolder", description = "This class carries all information related to DeviceIDs")
|
||||||
public class DeviceIDHolder {
|
public class DeviceIDHolder {
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "errorDeviceIdList", value = "Error occurred DeviceIds.)", required = true)
|
||||||
private List<String> errorDeviceIdList;
|
private List<String> errorDeviceIdList;
|
||||||
|
@ApiModelProperty(name = "validDeviceIDList", value = "Valid DeviceIDs.)", required = true)
|
||||||
private List<DeviceIdentifier> validDeviceIDList;
|
private List<DeviceIdentifier> validDeviceIDList;
|
||||||
|
|
||||||
public List<String> getErrorDeviceIdList() {
|
public List<String> getErrorDeviceIdList() {
|
||||||
|
|||||||
@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
||||||
@ -28,8 +30,11 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* Configurations that needs to be added on the device.
|
* Configurations that needs to be added on the device.
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "AddTag", description = "This class carries all information related to Syncml AddTag.")
|
||||||
public class AddTag {
|
public class AddTag {
|
||||||
|
@ApiModelProperty(name = "commandId", value = "CommandID of the AddTag.", required = true)
|
||||||
int commandId = -1;
|
int commandId = -1;
|
||||||
|
@ApiModelProperty(name = "items", value = "List of items of the AddTag.", required = true)
|
||||||
List<Item> items;
|
List<Item> items;
|
||||||
|
|
||||||
public int getCommandId() {
|
public int getCommandId() {
|
||||||
|
|||||||
@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
||||||
@ -25,9 +27,12 @@ import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
|||||||
/**
|
/**
|
||||||
* Inform an event occurred from device to server.
|
* Inform an event occurred from device to server.
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "Alert",
|
||||||
|
description = "This class carries all information related to Syncml alert.")
|
||||||
public class Alert {
|
public class Alert {
|
||||||
|
@ApiModelProperty(name = "commandId", value = "CommandId of The Syncml Alert.", required = true)
|
||||||
int commandId = -1;
|
int commandId = -1;
|
||||||
|
@ApiModelProperty(name = "data", value = "Data of the AlertTag.", required = true)
|
||||||
String data;
|
String data;
|
||||||
|
|
||||||
public int getCommandId() {
|
public int getCommandId() {
|
||||||
|
|||||||
@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
||||||
@ -28,9 +30,13 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* Wrapper for other SyncML elements.
|
* Wrapper for other SyncML elements.
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "AtomicTag", description = "This class carries all information related to syncml Engine Atomic tag")
|
||||||
public class AtomicTag {
|
public class AtomicTag {
|
||||||
|
@ApiModelProperty(name = "commandId", value = "Syncml Atomic tag CommandId", required = true)
|
||||||
int commandId = -1;
|
int commandId = -1;
|
||||||
|
@ApiModelProperty(name = "adds", value = "List of addtags", required = true)
|
||||||
List<AddTag> adds;
|
List<AddTag> adds;
|
||||||
|
@ApiModelProperty(name = "replaces", value = "List of replace tags", required = true)
|
||||||
List<Replace> replaces;
|
List<Replace> replaces;
|
||||||
|
|
||||||
public List<Replace> getReplaces() {
|
public List<Replace> getReplaces() {
|
||||||
|
|||||||
@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
||||||
@ -25,7 +27,10 @@ import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
|||||||
/**
|
/**
|
||||||
* Challenge data pass through the device and Device Management server for the security purpose.
|
* Challenge data pass through the device and Device Management server for the security purpose.
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "ChallengeTag",
|
||||||
|
description = "This class carries all information related to install application")
|
||||||
public class ChallengeTag {
|
public class ChallengeTag {
|
||||||
|
@ApiModelProperty(name = "meta", value = "Syncml MetaTag", required = true)
|
||||||
MetaTag meta;
|
MetaTag meta;
|
||||||
|
|
||||||
public MetaTag getMeta() {
|
public MetaTag getMeta() {
|
||||||
|
|||||||
@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
||||||
@ -25,8 +27,12 @@ import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
|||||||
/**
|
/**
|
||||||
* Credentials passed between the device and the server for security purposes.
|
* Credentials passed between the device and the server for security purposes.
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "Credential",
|
||||||
|
description = "This class carries all information related to syncml credentials")
|
||||||
public class Credential {
|
public class Credential {
|
||||||
|
@ApiModelProperty(name = "meta", value = "Syncml credential's MetaTag reference.)", required = true)
|
||||||
MetaTag meta;
|
MetaTag meta;
|
||||||
|
@ApiModelProperty(name = "data", value = "Data of the Credential Tag.)", required = true)
|
||||||
String data;
|
String data;
|
||||||
|
|
||||||
public MetaTag getMeta() {
|
public MetaTag getMeta() {
|
||||||
|
|||||||
@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
||||||
@ -28,8 +30,12 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* Configurations that need to be delete on Device.
|
* Configurations that need to be delete on Device.
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "DeleteTag",
|
||||||
|
description = "This class carries all information related to Syncml DeleteTag.")
|
||||||
public class DeleteTag {
|
public class DeleteTag {
|
||||||
|
@ApiModelProperty(name = "commandId", value = "CommandId of the Syncl DeleteTag.", required = true)
|
||||||
int commandId = -1;
|
int commandId = -1;
|
||||||
|
@ApiModelProperty(name = "items", value = "List of items of the syncml DeleteTag. ", required = true)
|
||||||
List<Item> items;
|
List<Item> items;
|
||||||
|
|
||||||
public int getCommandId() {
|
public int getCommandId() {
|
||||||
|
|||||||
@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
||||||
@ -28,8 +30,12 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* Commands that needs to be executed on the device.
|
* Commands that needs to be executed on the device.
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "ExecuteTag",
|
||||||
|
description = "This class carries all information related to Syncml ExecuteTag.")
|
||||||
public class ExecuteTag {
|
public class ExecuteTag {
|
||||||
|
@ApiModelProperty(name = "type", value = "CommandId of the syncml ExecuteTag.", required = true)
|
||||||
int commandId = -1;
|
int commandId = -1;
|
||||||
|
@ApiModelProperty(name = "type", value = "List of items of the Syncml ExecuteTag.", required = true)
|
||||||
List<Item> items;
|
List<Item> items;
|
||||||
|
|
||||||
public int getCommandId() {
|
public int getCommandId() {
|
||||||
|
|||||||
@ -18,9 +18,11 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
||||||
|
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
|
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -28,8 +30,12 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* Data that needs to be retrieved from the device.
|
* Data that needs to be retrieved from the device.
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "Get",
|
||||||
|
description = "This class carries all information related to syncml GetTag.")
|
||||||
public class Get {
|
public class Get {
|
||||||
|
@ApiModelProperty(name = "commandId", value = "CommandId of the syncml GetTag.", required = true)
|
||||||
int commandId = -1;
|
int commandId = -1;
|
||||||
|
@ApiModelProperty(name = "items", value = "List of items of the Syncml GetTag.", required = true)
|
||||||
List<Item> items;
|
List<Item> items;
|
||||||
|
|
||||||
public int getCommandId() {
|
public int getCommandId() {
|
||||||
|
|||||||
@ -18,18 +18,25 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
||||||
|
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
|
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents an items that should be retrieved from the device or a command.
|
* Represents an items that should be retrieved from the device or a command.
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "Item",
|
||||||
|
description = "This class carries all information related to Syncml Item.")
|
||||||
public class Item {
|
public class Item {
|
||||||
|
@ApiModelProperty(name = "target", value = "Target reference value of the Syncml Message(ex:Device).", required = true)
|
||||||
Target target;
|
Target target;
|
||||||
|
@ApiModelProperty(name = "source", value = "Source reference of the syncml message.(Ex:EMM Server).", required = true)
|
||||||
Source source;
|
Source source;
|
||||||
|
@ApiModelProperty(name = "data", value = "Content of the syncml message.", required = true)
|
||||||
String data;
|
String data;
|
||||||
|
@ApiModelProperty(name = "meta", value = "Meta data of the syncml messsage.", required = true)
|
||||||
MetaTag meta;
|
MetaTag meta;
|
||||||
|
|
||||||
public MetaTag getMeta() {
|
public MetaTag getMeta() {
|
||||||
|
|||||||
@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import org.w3c.dom.Attr;
|
import org.w3c.dom.Attr;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
@ -26,10 +28,13 @@ import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
|||||||
/**
|
/**
|
||||||
* MetaTag data related to credentials.
|
* MetaTag data related to credentials.
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "MetaTag", description = "This class carries all information related to MetaTag")
|
||||||
public class MetaTag {
|
public class MetaTag {
|
||||||
|
@ApiModelProperty(name = "format", value = "MetaTag format.)", required = true)
|
||||||
String format;
|
String format;
|
||||||
|
@ApiModelProperty(name = "type", value = "MetaTag type)", required = true)
|
||||||
String type;
|
String type;
|
||||||
|
@ApiModelProperty(name = "nextNonce", value = "Syncml Nextnonce)", required = true)
|
||||||
String nextNonce;
|
String nextNonce;
|
||||||
|
|
||||||
public String getNextNonce() {
|
public String getNextNonce() {
|
||||||
|
|||||||
@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
||||||
@ -28,8 +30,12 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* Commands sent from the device.
|
* Commands sent from the device.
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "Replace",
|
||||||
|
description = "This class carries all information related to Syncml ReplaceTag.")
|
||||||
public class Replace {
|
public class Replace {
|
||||||
|
@ApiModelProperty(name = "commandId", value = "CommandId of the syncml ReplaceTag.", required = true)
|
||||||
int commandId = -1;
|
int commandId = -1;
|
||||||
|
@ApiModelProperty(name = "items", value = "List of items of the syncml ReplaceTag.", required = true)
|
||||||
List<Item> items;
|
List<Item> items;
|
||||||
|
|
||||||
public int getCommandId() {
|
public int getCommandId() {
|
||||||
|
|||||||
@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
||||||
@ -28,10 +30,16 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* Results sent for the requests made to the device.
|
* Results sent for the requests made to the device.
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "Results",
|
||||||
|
description = "This class carries all information related to Syncml Item.")
|
||||||
public class Results {
|
public class Results {
|
||||||
|
@ApiModelProperty(name = "commandId", value = "CommandID of the Syncml Results Tag.", required = true)
|
||||||
int commandId = -1;
|
int commandId = -1;
|
||||||
|
@ApiModelProperty(name = "messageReference", value = "MessageReference of the Syncml Results Tag.", required = true)
|
||||||
int messageReference = -1;
|
int messageReference = -1;
|
||||||
|
@ApiModelProperty(name = "commandReference", value = "CommandReference of the Syncml Results Tag.", required = true)
|
||||||
int commandReference = -1;
|
int commandReference = -1;
|
||||||
|
@ApiModelProperty(name = "item", value = "List of Items in Syncml ResultTag.", required = true)
|
||||||
List<Item> item;
|
List<Item> item;
|
||||||
|
|
||||||
public int getCommandId() {
|
public int getCommandId() {
|
||||||
|
|||||||
@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
||||||
@ -28,13 +30,20 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* Sequence data that use to execute tag list
|
* Sequence data that use to execute tag list
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "SequenceTag",
|
||||||
|
description = "This class carries all information related to Syncml SequenceTag.")
|
||||||
public class SequenceTag {
|
public class SequenceTag {
|
||||||
|
@ApiModelProperty(name = "commandId", value = "CommandId of the Syncml SequenceTag", required = true)
|
||||||
int commandId;
|
int commandId;
|
||||||
|
@ApiModelProperty(name = "exec", value = "ExcecuteTag sequence of the Syncml SequenceTag", required = true)
|
||||||
ExecuteTag exec;
|
ExecuteTag exec;
|
||||||
|
@ApiModelProperty(name = "get", value = "GetTag of the syncml SequenceTag.", required = true)
|
||||||
Get get;
|
Get get;
|
||||||
|
@ApiModelProperty(name = "deleteTag", value = "DeleteTag of the syncml SequenceTag.", required = true)
|
||||||
DeleteTag deleteTag;
|
DeleteTag deleteTag;
|
||||||
|
@ApiModelProperty(name = "atomicTag", value = "AtomicTag sequence of the syncml SequenceTag.", required = true)
|
||||||
AtomicTag atomicTag;
|
AtomicTag atomicTag;
|
||||||
|
@ApiModelProperty(name = "replaces", value = "ReplaceTag of the syncml SequenceTag.", required = true)
|
||||||
List<Replace> replaces;
|
List<Replace> replaces;
|
||||||
|
|
||||||
public DeleteTag getDeleteTag() {
|
public DeleteTag getDeleteTag() {
|
||||||
|
|||||||
@ -18,16 +18,21 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
||||||
|
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
|
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Source details of syncml header's.
|
* Source details of syncml header's.
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "Source",
|
||||||
|
description = "This class carries all information related to Syncml source.")
|
||||||
public class Source {
|
public class Source {
|
||||||
|
@ApiModelProperty(name = "LocURI", value = "Location URI.(Source Location:Device)", required = true)
|
||||||
private String LocURI;
|
private String LocURI;
|
||||||
|
@ApiModelProperty(name = "LocName", value = "Name of the location", required = true)
|
||||||
private String LocName;
|
private String LocName;
|
||||||
|
|
||||||
public String getLocURI() {
|
public String getLocURI() {
|
||||||
|
|||||||
@ -18,20 +18,31 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
||||||
|
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
|
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Status of a previously sent message to device;
|
* Status of a previously sent message to device;
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "Status",
|
||||||
|
description = "This class carries all information related to Syncml Device statuses.")
|
||||||
public class Status {
|
public class Status {
|
||||||
|
@ApiModelProperty(name = "commandId", value = "CommandId of the Syncml StatusTag.", required = true)
|
||||||
int commandId = -1;
|
int commandId = -1;
|
||||||
|
@ApiModelProperty(name = "messageReference", value = "Message referenceId.", required = true)
|
||||||
int messageReference = -1;
|
int messageReference = -1;
|
||||||
|
@ApiModelProperty(name = "commandReference", value = "Command referenceId.", required = true)
|
||||||
int commandReference = -1;
|
int commandReference = -1;
|
||||||
|
@ApiModelProperty(name = "command", value = "Command String.", required = true)
|
||||||
String command;
|
String command;
|
||||||
|
@ApiModelProperty(name = "targetReference", value = "Target reference of the status message.", required = true)
|
||||||
String targetReference;
|
String targetReference;
|
||||||
|
@ApiModelProperty(name = "data", value = "Status data of the message.(ex:200,404,500...)", required = true)
|
||||||
String data;
|
String data;
|
||||||
|
@ApiModelProperty(name = "challenge", value = "Challenge value.", required = true)
|
||||||
ChallengeTag challenge;
|
ChallengeTag challenge;
|
||||||
|
|
||||||
public Status(int commandId, int messageReference, int commandReference, String command,
|
public Status(int commandId, int messageReference, int commandReference, String command,
|
||||||
|
|||||||
@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
||||||
@ -28,14 +30,23 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* Represents the body details of a syncml.
|
* Represents the body details of a syncml.
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "SyncmlBody", description = "This class carries all information related to SyncmlBody.")
|
||||||
public class SyncmlBody {
|
public class SyncmlBody {
|
||||||
|
@ApiModelProperty(name = "getCommands", value = "Get value of the syncmlBody.", required = true)
|
||||||
Get getCommands;
|
Get getCommands;
|
||||||
|
@ApiModelProperty(name = "exec", value = "List of executeTags in syncmlBody.", required = true)
|
||||||
List<ExecuteTag> exec;
|
List<ExecuteTag> exec;
|
||||||
|
@ApiModelProperty(name = "status", value = "List of statusTags in syncmlBody.", required = true)
|
||||||
List<Status> status;
|
List<Status> status;
|
||||||
|
@ApiModelProperty(name = "alert", value = "Alert tag in syncmlBody.", required = true)
|
||||||
Alert alert;
|
Alert alert;
|
||||||
|
@ApiModelProperty(name = "replace", value = "replace tag in syncmlBody.", required = true)
|
||||||
Replace replace;
|
Replace replace;
|
||||||
|
@ApiModelProperty(name = "results", value = "Results tag in syncmlBody.", required = true)
|
||||||
Results results;
|
Results results;
|
||||||
|
@ApiModelProperty(name = "sequence", value = "Sequence tag in syncmlBody.", required = true)
|
||||||
SequenceTag sequence;
|
SequenceTag sequence;
|
||||||
|
@ApiModelProperty(name = "atomicTag", value = "Atomic tag in syncmlBody.", required = true)
|
||||||
AtomicTag atomicTag;
|
AtomicTag atomicTag;
|
||||||
|
|
||||||
public AtomicTag getAtomicTag() {
|
public AtomicTag getAtomicTag() {
|
||||||
|
|||||||
@ -18,14 +18,19 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a base format of a syncml document
|
* Represents a base format of a syncml document
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "SyncmlDocument", description = "This class carries all information related to SyncmlDocument.")
|
||||||
public class SyncmlDocument {
|
public class SyncmlDocument {
|
||||||
|
@ApiModelProperty(name = "header", value = "Header of the syncmlDocument.", required = true)
|
||||||
SyncmlHeader header;
|
SyncmlHeader header;
|
||||||
|
@ApiModelProperty(name = "body", value = "Body of the SyncmlDocument.", required = true)
|
||||||
SyncmlBody body;
|
SyncmlBody body;
|
||||||
|
|
||||||
public SyncmlHeader getHeader() {
|
public SyncmlHeader getHeader() {
|
||||||
|
|||||||
@ -18,19 +18,28 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
||||||
|
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
|
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents the header details of a syncml.
|
* Represents the header details of a syncml.
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "SyncmlHeader", description = "This class carries all information related to SyncmlHeader.")
|
||||||
public class SyncmlHeader {
|
public class SyncmlHeader {
|
||||||
|
@ApiModelProperty(name = "sessionId", value = "SessionId of the syncml Message.", required = true)
|
||||||
private int sessionId = -1;
|
private int sessionId = -1;
|
||||||
|
@ApiModelProperty(name = "MsgID", value = "MessageId of the syncml Session.", required = true)
|
||||||
private int MsgID = -1;
|
private int MsgID = -1;
|
||||||
|
@ApiModelProperty(name = "target", value = "Target of the syncml Message.(Ex:Device/Server.)", required = true)
|
||||||
private Target target;
|
private Target target;
|
||||||
|
@ApiModelProperty(name = "source", value = "Source of the Syncml Message.(Ex:Server/Device.)", required = true)
|
||||||
private Source source;
|
private Source source;
|
||||||
|
@ApiModelProperty(name = "credential", value = "Credentials of the Syncml header.", required = true)
|
||||||
private Credential credential;
|
private Credential credential;
|
||||||
|
@ApiModelProperty(name = "hexadecimalSessionId", value = "HexaDecimal SessionId of the syncmlHeader.", required = true)
|
||||||
private String hexadecimalSessionId;
|
private String hexadecimalSessionId;
|
||||||
|
|
||||||
public String getHexadecimalSessionId() {
|
public String getHexadecimalSessionId() {
|
||||||
|
|||||||
@ -18,16 +18,20 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
package org.wso2.carbon.mdm.mobileservices.windows.operations;
|
||||||
|
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
|
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Target details of syncml header's.
|
* Target details of syncml header's.
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "Target", description = "This class carries all information related to Syncml Target.")
|
||||||
public class Target {
|
public class Target {
|
||||||
|
@ApiModelProperty(name = "LocURI", value = "Location URI of the target.", required = true)
|
||||||
private String LocURI;
|
private String LocURI;
|
||||||
|
@ApiModelProperty(name = "LocName", value = "Location Name of the target.", required = true)
|
||||||
private String LocName;
|
private String LocName;
|
||||||
|
|
||||||
public String getLocURI() {
|
public String getLocURI() {
|
||||||
|
|||||||
@ -18,6 +18,10 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.services.adminoperations;
|
package org.wso2.carbon.mdm.mobileservices.windows.services.adminoperations;
|
||||||
|
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import io.swagger.annotations.ApiResponse;
|
||||||
|
import io.swagger.annotations.ApiResponses;
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.common.exceptions.WindowsDeviceEnrolmentException;
|
import org.wso2.carbon.mdm.mobileservices.windows.common.exceptions.WindowsDeviceEnrolmentException;
|
||||||
|
|
||||||
import javax.ws.rs.*;
|
import javax.ws.rs.*;
|
||||||
@ -28,6 +32,8 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* Interface for Admin operations persisting. This interface accepts operations added via UI.
|
* Interface for Admin operations persisting. This interface accepts operations added via UI.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@Api(value = "Operations", description = "Windows Device Management REST-API implementation.")
|
||||||
@Path("/operation")
|
@Path("/operation")
|
||||||
@Consumes(MediaType.APPLICATION_JSON)
|
@Consumes(MediaType.APPLICATION_JSON)
|
||||||
@Produces(MediaType.APPLICATION_JSON)
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
@ -36,22 +42,72 @@ public interface Operations {
|
|||||||
|
|
||||||
@POST
|
@POST
|
||||||
@Path("/devicelock")
|
@Path("/devicelock")
|
||||||
|
@ApiOperation(
|
||||||
|
produces = MediaType.APPLICATION_JSON,
|
||||||
|
httpMethod = "POST",
|
||||||
|
value = "Adding a Device Lock on Windows Devices via the REST API",
|
||||||
|
notes = "Adding a Device lock operation to the windows device"
|
||||||
|
)
|
||||||
|
@ApiResponses(value = {
|
||||||
|
@ApiResponse(code = 201, message = "Created"),
|
||||||
|
@ApiResponse(code = 500, message = "Internal Server error")
|
||||||
|
})
|
||||||
Response lock(@HeaderParam("Accept") String headerParam, List<String> deviceids) throws WindowsDeviceEnrolmentException;
|
Response lock(@HeaderParam("Accept") String headerParam, List<String> deviceids) throws WindowsDeviceEnrolmentException;
|
||||||
|
|
||||||
@POST
|
@POST
|
||||||
@Path("/devicedisenroll")
|
@Path("/devicedisenroll")
|
||||||
|
@ApiOperation(
|
||||||
|
produces = MediaType.APPLICATION_JSON,
|
||||||
|
httpMethod = "POST",
|
||||||
|
value = "Disenrolling Windows Devices via the REST API",
|
||||||
|
notes = "Enforcing Disenrolling operation to the windows device"
|
||||||
|
)
|
||||||
|
@ApiResponses(value = {
|
||||||
|
@ApiResponse(code = 201, message = "Created"),
|
||||||
|
@ApiResponse(code = 500, message = "Internal Server error")
|
||||||
|
})
|
||||||
Response disenroll(@HeaderParam("Accept") String headerParam, List<String> deviceids) throws WindowsDeviceEnrolmentException;
|
Response disenroll(@HeaderParam("Accept") String headerParam, List<String> deviceids) throws WindowsDeviceEnrolmentException;
|
||||||
|
|
||||||
@POST
|
@POST
|
||||||
@Path("/devicewipe")
|
@Path("/devicewipe")
|
||||||
|
@ApiOperation(
|
||||||
|
produces = MediaType.APPLICATION_JSON,
|
||||||
|
httpMethod = "POST",
|
||||||
|
value = "Wiping Information off Windows Devices via the REST API",
|
||||||
|
notes = "Enforce wipe operation to the windows device"
|
||||||
|
)
|
||||||
|
@ApiResponses(value = {
|
||||||
|
@ApiResponse(code = 201, message = "Created"),
|
||||||
|
@ApiResponse(code = 500, message = "Internal Server error")
|
||||||
|
})
|
||||||
Response wipe(@HeaderParam("Accept") String headerParam, List<String> deviceids) throws WindowsDeviceEnrolmentException;
|
Response wipe(@HeaderParam("Accept") String headerParam, List<String> deviceids) throws WindowsDeviceEnrolmentException;
|
||||||
|
|
||||||
@POST
|
@POST
|
||||||
@Path("/devicering")
|
@Path("/devicering")
|
||||||
|
@ApiOperation(
|
||||||
|
produces = MediaType.APPLICATION_JSON,
|
||||||
|
httpMethod = "POST",
|
||||||
|
value = "Ringing Windows Devices via the Rest API",
|
||||||
|
notes = "Adding a Device ring operation to the windows device."
|
||||||
|
)
|
||||||
|
@ApiResponses(value = {
|
||||||
|
@ApiResponse(code = 201, message = "Created"),
|
||||||
|
@ApiResponse(code = 500, message = "Internal Server error")
|
||||||
|
})
|
||||||
Response ring(@HeaderParam("Accept") String headerParam, List<String> deviceids) throws WindowsDeviceEnrolmentException;
|
Response ring(@HeaderParam("Accept") String headerParam, List<String> deviceids) throws WindowsDeviceEnrolmentException;
|
||||||
|
|
||||||
@POST
|
@POST
|
||||||
@Path("/lockreset")
|
@Path("/lockreset")
|
||||||
|
@ApiOperation(
|
||||||
|
produces = MediaType.APPLICATION_JSON,
|
||||||
|
httpMethod = "POST",
|
||||||
|
value = "Resetting the Lock of Windows Devices via the REST API",
|
||||||
|
notes = "Adding a Device lock re-test operation to the windows device."
|
||||||
|
)
|
||||||
|
@ApiResponses(value = {
|
||||||
|
@ApiResponse(code = 201, message = "Created"),
|
||||||
|
@ApiResponse(code = 500, message = "Internal Server error")
|
||||||
|
})
|
||||||
Response lockReset(@HeaderParam("Accept") String acceptHeader, List<String> deviceids)
|
Response lockReset(@HeaderParam("Accept") String acceptHeader, List<String> deviceids)
|
||||||
throws WindowsDeviceEnrolmentException;
|
throws WindowsDeviceEnrolmentException;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,11 +18,15 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.services.adminoperations.beans;
|
package org.wso2.carbon.mdm.mobileservices.windows.services.adminoperations.beans;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class for get device IDS.
|
* Class for get device IDS.
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "Device", description = "This class carries all information related to Device.")
|
||||||
public class Device {
|
public class Device {
|
||||||
|
@ApiModelProperty(name = "id", value = "DeviceIDs.", required = true)
|
||||||
private String id;
|
private String id;
|
||||||
|
|
||||||
public String getID() {
|
public String getID() {
|
||||||
|
|||||||
@ -1,42 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2016, 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.mdm.mobileservices.windows.services.adminoperations.beans;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class for dis-enrollment operation
|
|
||||||
*/
|
|
||||||
public class Disenrollment implements Serializable {
|
|
||||||
|
|
||||||
private boolean enabled;
|
|
||||||
|
|
||||||
public boolean isEnabled() {
|
|
||||||
return enabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEnabled(boolean enabled) {
|
|
||||||
this.enabled = enabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean isEnable() {
|
|
||||||
return enabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,49 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2016, 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.mdm.mobileservices.windows.services.adminoperations.beans;
|
|
||||||
|
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.services.syncml.beans.BasicOperation;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class for set basic operations.
|
|
||||||
*/
|
|
||||||
public class OperationRequest {
|
|
||||||
|
|
||||||
private List<Device> deviceList;
|
|
||||||
private BasicOperation basicOperation;
|
|
||||||
|
|
||||||
public BasicOperation getBasicOperation() {
|
|
||||||
return basicOperation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBasicOperation(BasicOperation basicOperation) {
|
|
||||||
this.basicOperation = basicOperation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Device> getDeviceList() {
|
|
||||||
return deviceList;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDeviceList(List<Device> deviceList) {
|
|
||||||
this.deviceList = deviceList;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,48 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2016, 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.mdm.mobileservices.windows.services.adminoperations.beans;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This bean class is for credentials coming from wab page at federated authentication step.
|
|
||||||
*/
|
|
||||||
public class OperationResponse {
|
|
||||||
|
|
||||||
private String errorCode;
|
|
||||||
private String statusCode;
|
|
||||||
|
|
||||||
public OperationResponse() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getErrorCode() {
|
|
||||||
return errorCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getStatusCode() {
|
|
||||||
return statusCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setErrorCode(String errorCode) {
|
|
||||||
this.errorCode = errorCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStatusCode(String statusCode) {
|
|
||||||
this.statusCode = statusCode;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,36 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2016, 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.mdm.mobileservices.windows.services.adminoperations.beans;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This class represents the information of encrypt operation.
|
|
||||||
*/
|
|
||||||
public class StorageEncryption implements Serializable {
|
|
||||||
private boolean encrypted;
|
|
||||||
|
|
||||||
public boolean isEncrypted() {
|
|
||||||
return encrypted;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEncrypted(boolean encrypted) {
|
|
||||||
this.encrypted = encrypted;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,50 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2016, 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.mdm.mobileservices.windows.services.adminoperations.beans.wrapper;
|
|
||||||
|
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.services.adminoperations.beans.Disenrollment;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class is used to wrap dis-enrollment bean with the device
|
|
||||||
*/
|
|
||||||
public class DisenrollmentBeanWrapper {
|
|
||||||
|
|
||||||
private Disenrollment operation;
|
|
||||||
|
|
||||||
private List<String> deviceId;
|
|
||||||
|
|
||||||
public Disenrollment getOperation() {
|
|
||||||
return operation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOperation(Disenrollment operation) {
|
|
||||||
this.operation = operation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getDeviceId() {
|
|
||||||
return deviceId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDeviceId(List<String> deviceId) {
|
|
||||||
this.deviceId = deviceId;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,48 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2016, 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.mdm.mobileservices.windows.services.adminoperations.beans.wrapper;
|
|
||||||
|
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.services.adminoperations.beans.StorageEncryption;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This class is used to wrap the Encrypt bean with devices.
|
|
||||||
*/
|
|
||||||
public class EncryptBeanWrapper {
|
|
||||||
|
|
||||||
private StorageEncryption operation;
|
|
||||||
private List<String> deviceIDs;
|
|
||||||
|
|
||||||
public StorageEncryption getOperation() {
|
|
||||||
return operation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOperation(StorageEncryption operation) {
|
|
||||||
this.operation = operation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getDeviceIDs() {
|
|
||||||
return deviceIDs;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDeviceIDs(List<String> deviceIDs) {
|
|
||||||
this.deviceIDs = deviceIDs;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,112 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2016, 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.mdm.mobileservices.windows.services.adminoperations.util;
|
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
|
||||||
import org.apache.commons.logging.Log;
|
|
||||||
import org.apache.commons.logging.LogFactory;
|
|
||||||
import org.wso2.carbon.context.PrivilegedCarbonContext;
|
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceManagementConstants;
|
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
|
||||||
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
|
|
||||||
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException;
|
|
||||||
import org.wso2.carbon.device.mgt.core.operation.mgt.ConfigOperation;
|
|
||||||
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
|
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.common.SyncmlCommandType;
|
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.common.exceptions.WindowsDeviceEnrolmentException;
|
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.services.adminoperations.beans.Device;
|
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.services.adminoperations.beans.OperationRequest;
|
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.services.syncml.beans.Wifi;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class OperationStore {
|
|
||||||
|
|
||||||
private static Log log = LogFactory.getLog(OperationStore.class);
|
|
||||||
|
|
||||||
public static boolean storeOperation(OperationRequest operationRequest, Operation.Type type,
|
|
||||||
String commandType) throws
|
|
||||||
WindowsDeviceEnrolmentException {
|
|
||||||
|
|
||||||
List<Device> devices = operationRequest.getDeviceList();
|
|
||||||
List<DeviceIdentifier> deviceIdentifiers = new ArrayList<DeviceIdentifier>();
|
|
||||||
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
|
|
||||||
|
|
||||||
Operation operation = transformBasicOperation(operationRequest, type, commandType);
|
|
||||||
|
|
||||||
for (int i = 0; i < devices.size(); i++) {
|
|
||||||
try {
|
|
||||||
deviceIdentifier.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
|
|
||||||
deviceIdentifier.setId(devices.get(i).getID());
|
|
||||||
deviceIdentifiers.add(deviceIdentifier);
|
|
||||||
getDeviceManagementServiceProvider().getDevice(deviceIdentifier);
|
|
||||||
|
|
||||||
} catch (DeviceManagementException e) {
|
|
||||||
log.error("Cannot validate device ID: " + devices.get(i).getID());
|
|
||||||
deviceIdentifiers.remove(i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
getDeviceManagementServiceProvider().addOperation(operation, deviceIdentifiers);
|
|
||||||
} catch (OperationManagementException e) {
|
|
||||||
String msg = "Failure occurred while storing command operation.";
|
|
||||||
log.error(msg);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static DeviceManagementProviderService getDeviceManagementServiceProvider() {
|
|
||||||
DeviceManagementProviderService deviceManager;
|
|
||||||
PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
|
|
||||||
deviceManager =
|
|
||||||
(DeviceManagementProviderService) ctx.getOSGiService(DeviceManagementProviderService.class, null);
|
|
||||||
|
|
||||||
if (deviceManager == null) {
|
|
||||||
String msg = "Device management service is not initialized.";
|
|
||||||
log.error(msg);
|
|
||||||
}
|
|
||||||
return deviceManager;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static Operation transformBasicOperation(OperationRequest operationRequest, Operation.Type type,
|
|
||||||
String commandType) throws WindowsDeviceEnrolmentException {
|
|
||||||
|
|
||||||
Operation operation = new Operation();
|
|
||||||
operation.setCode(commandType);
|
|
||||||
operation.setType(type);
|
|
||||||
Gson gson = new Gson();
|
|
||||||
|
|
||||||
if (commandType == SyncmlCommandType.WIFI.getValue()) {
|
|
||||||
|
|
||||||
operation = new ConfigOperation();
|
|
||||||
operation.setCode(commandType);
|
|
||||||
operation.setType(type);
|
|
||||||
|
|
||||||
Wifi wifiObject = (Wifi) operationRequest.getBasicOperation();
|
|
||||||
operation.setPayLoad(gson.toJson(wifiObject));
|
|
||||||
} else {
|
|
||||||
// no operation.....
|
|
||||||
}
|
|
||||||
|
|
||||||
return operation;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -18,6 +18,9 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.services.authbst;
|
package org.wso2.carbon.mdm.mobileservices.windows.services.authbst;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import io.swagger.annotations.ApiResponse;
|
||||||
|
import io.swagger.annotations.ApiResponses;
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.common.exceptions.WindowsDeviceEnrolmentException;
|
import org.wso2.carbon.mdm.mobileservices.windows.common.exceptions.WindowsDeviceEnrolmentException;
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.services.authbst.beans.Credentials;
|
import org.wso2.carbon.mdm.mobileservices.windows.services.authbst.beans.Credentials;
|
||||||
|
|
||||||
@ -36,5 +39,16 @@ public interface BSTProvider {
|
|||||||
@POST
|
@POST
|
||||||
@Consumes(MediaType.APPLICATION_JSON)
|
@Consumes(MediaType.APPLICATION_JSON)
|
||||||
@Path("/authentication")
|
@Path("/authentication")
|
||||||
|
@ApiOperation(
|
||||||
|
consumes = MediaType.APPLICATION_JSON,
|
||||||
|
httpMethod = "POST",
|
||||||
|
value = "Getting Binary security token via the Rest API",
|
||||||
|
notes = "Getting binary security token to call next certificate endpoints.",
|
||||||
|
response = String.class
|
||||||
|
)
|
||||||
|
@ApiResponses(value = {
|
||||||
|
@ApiResponse(code = 201, message = "Created"),
|
||||||
|
@ApiResponse(code = 500, message = "Internal Server error")
|
||||||
|
})
|
||||||
Response getBST(Credentials credentials) throws WindowsDeviceEnrolmentException;
|
Response getBST(Credentials credentials) throws WindowsDeviceEnrolmentException;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,6 +18,9 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.services.authbst.beans;
|
package org.wso2.carbon.mdm.mobileservices.windows.services.authbst.beans;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlAccessType;
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
import javax.xml.bind.annotation.XmlAccessorType;
|
import javax.xml.bind.annotation.XmlAccessorType;
|
||||||
import javax.xml.bind.annotation.XmlElement;
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
@ -26,18 +29,28 @@ import javax.xml.bind.annotation.XmlRootElement;
|
|||||||
/**
|
/**
|
||||||
* This bean class is for credentials coming from wab page at federated authentication step.
|
* This bean class is for credentials coming from wab page at federated authentication step.
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "Credentials", description = "This class carries all information related to Credentials.")
|
||||||
@XmlRootElement(name = "credentials")
|
@XmlRootElement(name = "credentials")
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
public class Credentials {
|
public class Credentials {
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "username", value = "User name", required = true)
|
||||||
@XmlElement(required = true, name = "username")
|
@XmlElement(required = true, name = "username")
|
||||||
private String username;
|
private String username;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "email", value = "Email Address of the user.", required = true)
|
||||||
@XmlElement(required = true, name = "email")
|
@XmlElement(required = true, name = "email")
|
||||||
private String email;
|
private String email;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "password", value = "password of the user.", required = true)
|
||||||
@XmlElement(required = true, name = "password")
|
@XmlElement(required = true, name = "password")
|
||||||
private String password;
|
private String password;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "ownership", value = "ownership of the user.(BYOD/COPE).", required = true)
|
||||||
@XmlElement(required = true, name = "ownership")
|
@XmlElement(required = true, name = "ownership")
|
||||||
private String ownership;
|
private String ownership;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "usertoken", value = "User Token.", required = true)
|
||||||
@XmlElement(required = true, name = "token")
|
@XmlElement(required = true, name = "token")
|
||||||
private String usertoken;
|
private String usertoken;
|
||||||
|
|
||||||
|
|||||||
@ -18,22 +18,16 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.services.configurationmgtservice;
|
package org.wso2.carbon.mdm.mobileservices.windows.services.configurationmgtservice;
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import io.swagger.annotations.ApiResponse;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceManagementConstants;
|
import io.swagger.annotations.ApiResponses;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
|
||||||
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry;
|
|
||||||
import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfiguration;
|
import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfiguration;
|
||||||
import org.wso2.carbon.device.mgt.common.license.mgt.License;
|
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.common.PluginConstants;
|
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.common.exceptions.WindowsConfigurationException;
|
import org.wso2.carbon.mdm.mobileservices.windows.common.exceptions.WindowsConfigurationException;
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.common.util.Message;
|
import org.wso2.carbon.mdm.mobileservices.windows.common.util.Message;
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.common.util.WindowsAPIUtils;
|
|
||||||
|
|
||||||
import javax.jws.WebService;
|
import javax.jws.WebService;
|
||||||
import javax.ws.rs.*;
|
import javax.ws.rs.*;
|
||||||
import javax.ws.rs.core.Response;
|
import javax.ws.rs.core.MediaType;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Windows Platform Configuration REST-API implementation.
|
* Windows Platform Configuration REST-API implementation.
|
||||||
@ -42,9 +36,7 @@ import java.util.List;
|
|||||||
@WebService
|
@WebService
|
||||||
@Produces({"application/json", "application/xml"})
|
@Produces({"application/json", "application/xml"})
|
||||||
@Consumes({"application/json", "application/xml"})
|
@Consumes({"application/json", "application/xml"})
|
||||||
public class ConfigurationMgtService {
|
public interface ConfigurationMgtService {
|
||||||
|
|
||||||
private static Log log = LogFactory.getLog(ConfigurationMgtService.class);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Save Tenant configurations.
|
* Save Tenant configurations.
|
||||||
@ -54,50 +46,17 @@ public class ConfigurationMgtService {
|
|||||||
* @throws WindowsConfigurationException
|
* @throws WindowsConfigurationException
|
||||||
*/
|
*/
|
||||||
@POST
|
@POST
|
||||||
public Message ConfigureSettings(TenantConfiguration configuration) throws WindowsConfigurationException {
|
@ApiOperation(
|
||||||
Message responseMsg = new Message();
|
consumes = MediaType.APPLICATION_JSON,
|
||||||
ConfigurationEntry licenseEntry = null;
|
httpMethod = "POST",
|
||||||
String message;
|
value = "Configuring Windows Platform Settings",
|
||||||
|
notes = "Configure the Windows platform settings using this REST API"
|
||||||
try {
|
)
|
||||||
configuration.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
|
@ApiResponses(value = {
|
||||||
if (!configuration.getConfiguration().isEmpty()) {
|
@ApiResponse(code = 201, message = "Windows platform configuration saved successfully"),
|
||||||
List<ConfigurationEntry> configs = configuration.getConfiguration();
|
@ApiResponse(code = 500, message = "Internal Server Error")
|
||||||
for (ConfigurationEntry entry : configs) {
|
})
|
||||||
if (PluginConstants.TenantConfigProperties.LICENSE_KEY.equals(entry.getName())) {
|
Message ConfigureSettings(TenantConfiguration configuration) throws WindowsConfigurationException;
|
||||||
License license = new License();
|
|
||||||
license.setName(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
|
|
||||||
license.setLanguage(PluginConstants.TenantConfigProperties.LANGUAGE_US);
|
|
||||||
license.setVersion("1.0.0");
|
|
||||||
license.setText(entry.getValue().toString());
|
|
||||||
WindowsAPIUtils.getDeviceManagementService().addLicense(DeviceManagementConstants.
|
|
||||||
MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS, license);
|
|
||||||
licenseEntry = entry;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (licenseEntry != null) {
|
|
||||||
configs.remove(licenseEntry);
|
|
||||||
}
|
|
||||||
configuration.setConfiguration(configs);
|
|
||||||
WindowsAPIUtils.getDeviceManagementService().saveConfiguration(configuration);
|
|
||||||
Response.status(Response.Status.CREATED);
|
|
||||||
responseMsg.setResponseMessage("Windows platform configuration saved successfully.");
|
|
||||||
responseMsg.setResponseCode(Response.Status.CREATED.toString());
|
|
||||||
return responseMsg;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Response.status(Response.Status.BAD_REQUEST);
|
|
||||||
responseMsg.setResponseMessage("Windows platform configuration can not be saved.");
|
|
||||||
responseMsg.setResponseCode(Response.Status.CREATED.toString());
|
|
||||||
}
|
|
||||||
} catch (DeviceManagementException e) {
|
|
||||||
message = "Error Occurred in while configuring Windows Platform.";
|
|
||||||
log.error(message, e);
|
|
||||||
throw new WindowsConfigurationException(message, e);
|
|
||||||
}
|
|
||||||
return responseMsg;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve Tenant configurations according to the device type.
|
* Retrieve Tenant configurations according to the device type.
|
||||||
@ -106,34 +65,17 @@ public class ConfigurationMgtService {
|
|||||||
* @throws WindowsConfigurationException
|
* @throws WindowsConfigurationException
|
||||||
*/
|
*/
|
||||||
@GET
|
@GET
|
||||||
public TenantConfiguration getConfiguration() throws WindowsConfigurationException {
|
@ApiOperation(
|
||||||
String msg;
|
httpMethod = "GET",
|
||||||
TenantConfiguration tenantConfiguration = null;
|
value = "Getting Windows Platform Configurations",
|
||||||
try {
|
notes = "Get the Windows platform configuration details using this REST API",
|
||||||
if (WindowsAPIUtils.getDeviceManagementService().
|
response = TenantConfiguration.class
|
||||||
getConfiguration(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS) != null) {
|
)
|
||||||
tenantConfiguration = WindowsAPIUtils.getDeviceManagementService().
|
@ApiResponses(value = {
|
||||||
getConfiguration(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
|
@ApiResponse(code = 200, message = "Get Windows Configurations"),
|
||||||
List<ConfigurationEntry> configs = tenantConfiguration.getConfiguration();
|
@ApiResponse(code = 500, message = "Server Error")
|
||||||
ConfigurationEntry entry = new ConfigurationEntry();
|
})
|
||||||
License license = WindowsAPIUtils.getDeviceManagementService().getLicense(
|
TenantConfiguration getConfiguration() throws WindowsConfigurationException;
|
||||||
DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS, PluginConstants.
|
|
||||||
TenantConfigProperties.LANGUAGE_US);
|
|
||||||
if(license != null) {
|
|
||||||
entry.setContentType(PluginConstants.TenantConfigProperties.CONTENT_TYPE_TEXT);
|
|
||||||
entry.setName(PluginConstants.TenantConfigProperties.LICENSE_KEY);
|
|
||||||
entry.setValue(license.getText());
|
|
||||||
configs.add(entry);
|
|
||||||
tenantConfiguration.setConfiguration(configs);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (DeviceManagementException e) {
|
|
||||||
msg = "Error occurred while retrieving the Windows tenant configuration";
|
|
||||||
log.error(msg, e);
|
|
||||||
throw new WindowsConfigurationException(msg, e);
|
|
||||||
}
|
|
||||||
return tenantConfiguration;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update Tenant Configurations for the specific Device type.
|
* Update Tenant Configurations for the specific Device type.
|
||||||
@ -143,39 +85,17 @@ public class ConfigurationMgtService {
|
|||||||
* @throws WindowsConfigurationException
|
* @throws WindowsConfigurationException
|
||||||
*/
|
*/
|
||||||
@PUT
|
@PUT
|
||||||
public Message updateConfiguration(TenantConfiguration configuration) throws WindowsConfigurationException {
|
@ApiOperation(
|
||||||
String message;
|
consumes = MediaType.APPLICATION_JSON,
|
||||||
Message responseMsg = new Message();
|
produces = MediaType.APPLICATION_JSON,
|
||||||
ConfigurationEntry licenseEntry = null;
|
httpMethod = "PUT",
|
||||||
try {
|
value = "Updating Windows Platform Configurations",
|
||||||
configuration.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
|
notes = "Update the Windows platform configurations using this REST API"
|
||||||
List<ConfigurationEntry> configs = configuration.getConfiguration();
|
)
|
||||||
for (ConfigurationEntry entry : configs) {
|
@ApiResponses(value = {
|
||||||
if (PluginConstants.TenantConfigProperties.LICENSE_KEY.equals(entry.getName())) {
|
@ApiResponse(code = 201, message = "Created"),
|
||||||
License license = new License();
|
@ApiResponse(code = 500, message = "Error occurred while modifying configuration settings of " +
|
||||||
license.setName(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
|
"windows platform")
|
||||||
license.setLanguage(PluginConstants.TenantConfigProperties.LANGUAGE_US);
|
})
|
||||||
license.setVersion("1.0.0");
|
Message updateConfiguration(TenantConfiguration configuration) throws WindowsConfigurationException;
|
||||||
license.setText(entry.getValue().toString());
|
|
||||||
WindowsAPIUtils.getDeviceManagementService().addLicense(DeviceManagementConstants.
|
|
||||||
MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS, license);
|
|
||||||
licenseEntry = entry;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (licenseEntry != null) {
|
|
||||||
configs.remove(licenseEntry);
|
|
||||||
}
|
|
||||||
configuration.setConfiguration(configs);
|
|
||||||
WindowsAPIUtils.getDeviceManagementService().saveConfiguration(configuration);
|
|
||||||
Response.status(Response.Status.CREATED);
|
|
||||||
responseMsg.setResponseMessage("Windows platform configuration succeeded.");
|
|
||||||
responseMsg.setResponseCode(Response.Status.CREATED.toString());
|
|
||||||
} catch (DeviceManagementException e) {
|
|
||||||
message = "Error occurred while modifying configuration settings of Windows platform.";
|
|
||||||
log.error(message, e);
|
|
||||||
throw new WindowsConfigurationException(message, e);
|
|
||||||
}
|
|
||||||
return responseMsg;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,181 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016, 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.mdm.mobileservices.windows.services.configurationmgtservice.impl;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.wso2.carbon.device.mgt.common.DeviceManagementConstants;
|
||||||
|
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
||||||
|
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry;
|
||||||
|
import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfiguration;
|
||||||
|
import org.wso2.carbon.device.mgt.common.license.mgt.License;
|
||||||
|
import org.wso2.carbon.mdm.mobileservices.windows.common.PluginConstants;
|
||||||
|
import org.wso2.carbon.mdm.mobileservices.windows.common.exceptions.WindowsConfigurationException;
|
||||||
|
import org.wso2.carbon.mdm.mobileservices.windows.common.util.Message;
|
||||||
|
import org.wso2.carbon.mdm.mobileservices.windows.common.util.WindowsAPIUtils;
|
||||||
|
|
||||||
|
import javax.jws.WebService;
|
||||||
|
import javax.ws.rs.*;
|
||||||
|
import javax.ws.rs.core.Response;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Windows Platform Configuration REST-API implementation.
|
||||||
|
* All end points supports JSON, XMl with content negotiation.
|
||||||
|
*/
|
||||||
|
@WebService
|
||||||
|
@Produces({"application/json", "application/xml"})
|
||||||
|
@Consumes({"application/json", "application/xml"})
|
||||||
|
public class ConfigurationMgtServiceImpl {
|
||||||
|
|
||||||
|
private static Log log = LogFactory.getLog(ConfigurationMgtServiceImpl.class);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Save Tenant configurations.
|
||||||
|
*
|
||||||
|
* @param configuration Tenant Configurations to be saved.
|
||||||
|
* @return Message type object for the provide save status.
|
||||||
|
* @throws WindowsConfigurationException
|
||||||
|
*/
|
||||||
|
@POST
|
||||||
|
public Message ConfigureSettings(TenantConfiguration configuration) throws WindowsConfigurationException {
|
||||||
|
Message responseMsg = new Message();
|
||||||
|
ConfigurationEntry licenseEntry = null;
|
||||||
|
String message;
|
||||||
|
|
||||||
|
try {
|
||||||
|
configuration.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
|
||||||
|
if (!configuration.getConfiguration().isEmpty()) {
|
||||||
|
List<ConfigurationEntry> configs = configuration.getConfiguration();
|
||||||
|
for (ConfigurationEntry entry : configs) {
|
||||||
|
if (PluginConstants.TenantConfigProperties.LICENSE_KEY.equals(entry.getName())) {
|
||||||
|
License license = new License();
|
||||||
|
license.setName(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
|
||||||
|
license.setLanguage(PluginConstants.TenantConfigProperties.LANGUAGE_US);
|
||||||
|
license.setVersion("1.0.0");
|
||||||
|
license.setText(entry.getValue().toString());
|
||||||
|
WindowsAPIUtils.getDeviceManagementService().addLicense(DeviceManagementConstants.
|
||||||
|
MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS, license);
|
||||||
|
licenseEntry = entry;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (licenseEntry != null) {
|
||||||
|
configs.remove(licenseEntry);
|
||||||
|
}
|
||||||
|
configuration.setConfiguration(configs);
|
||||||
|
WindowsAPIUtils.getDeviceManagementService().saveConfiguration(configuration);
|
||||||
|
Response.status(Response.Status.CREATED);
|
||||||
|
responseMsg.setResponseMessage("Windows platform configuration saved successfully.");
|
||||||
|
responseMsg.setResponseCode(Response.Status.CREATED.toString());
|
||||||
|
return responseMsg;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Response.status(Response.Status.BAD_REQUEST);
|
||||||
|
responseMsg.setResponseMessage("Windows platform configuration can not be saved.");
|
||||||
|
responseMsg.setResponseCode(Response.Status.CREATED.toString());
|
||||||
|
}
|
||||||
|
} catch (DeviceManagementException e) {
|
||||||
|
message = "Error Occurred in while configuring Windows Platform.";
|
||||||
|
log.error(message, e);
|
||||||
|
throw new WindowsConfigurationException(message, e);
|
||||||
|
}
|
||||||
|
return responseMsg;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve Tenant configurations according to the device type.
|
||||||
|
*
|
||||||
|
* @return Tenant configuration object contains specific tenant configurations.
|
||||||
|
* @throws WindowsConfigurationException
|
||||||
|
*/
|
||||||
|
@GET
|
||||||
|
public TenantConfiguration getConfiguration() throws WindowsConfigurationException {
|
||||||
|
String msg;
|
||||||
|
TenantConfiguration tenantConfiguration = null;
|
||||||
|
try {
|
||||||
|
if (WindowsAPIUtils.getDeviceManagementService().
|
||||||
|
getConfiguration(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS) != null) {
|
||||||
|
tenantConfiguration = WindowsAPIUtils.getDeviceManagementService().
|
||||||
|
getConfiguration(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
|
||||||
|
List<ConfigurationEntry> configs = tenantConfiguration.getConfiguration();
|
||||||
|
ConfigurationEntry entry = new ConfigurationEntry();
|
||||||
|
License license = WindowsAPIUtils.getDeviceManagementService().getLicense(
|
||||||
|
DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS, PluginConstants.
|
||||||
|
TenantConfigProperties.LANGUAGE_US);
|
||||||
|
if(license != null) {
|
||||||
|
entry.setContentType(PluginConstants.TenantConfigProperties.CONTENT_TYPE_TEXT);
|
||||||
|
entry.setName(PluginConstants.TenantConfigProperties.LICENSE_KEY);
|
||||||
|
entry.setValue(license.getText());
|
||||||
|
configs.add(entry);
|
||||||
|
tenantConfiguration.setConfiguration(configs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (DeviceManagementException e) {
|
||||||
|
msg = "Error occurred while retrieving the Windows tenant configuration";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new WindowsConfigurationException(msg, e);
|
||||||
|
}
|
||||||
|
return tenantConfiguration;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update Tenant Configurations for the specific Device type.
|
||||||
|
*
|
||||||
|
* @param configuration Tenant configurations to be updated.
|
||||||
|
* @return Response message.
|
||||||
|
* @throws WindowsConfigurationException
|
||||||
|
*/
|
||||||
|
@PUT
|
||||||
|
public Message updateConfiguration(TenantConfiguration configuration) throws WindowsConfigurationException {
|
||||||
|
String message;
|
||||||
|
Message responseMsg = new Message();
|
||||||
|
ConfigurationEntry licenseEntry = null;
|
||||||
|
try {
|
||||||
|
configuration.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
|
||||||
|
List<ConfigurationEntry> configs = configuration.getConfiguration();
|
||||||
|
for (ConfigurationEntry entry : configs) {
|
||||||
|
if (PluginConstants.TenantConfigProperties.LICENSE_KEY.equals(entry.getName())) {
|
||||||
|
License license = new License();
|
||||||
|
license.setName(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
|
||||||
|
license.setLanguage(PluginConstants.TenantConfigProperties.LANGUAGE_US);
|
||||||
|
license.setVersion("1.0.0");
|
||||||
|
license.setText(entry.getValue().toString());
|
||||||
|
WindowsAPIUtils.getDeviceManagementService().addLicense(DeviceManagementConstants.
|
||||||
|
MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS, license);
|
||||||
|
licenseEntry = entry;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (licenseEntry != null) {
|
||||||
|
configs.remove(licenseEntry);
|
||||||
|
}
|
||||||
|
configuration.setConfiguration(configs);
|
||||||
|
WindowsAPIUtils.getDeviceManagementService().saveConfiguration(configuration);
|
||||||
|
Response.status(Response.Status.CREATED);
|
||||||
|
responseMsg.setResponseMessage("Windows platform configuration succeeded.");
|
||||||
|
responseMsg.setResponseCode(Response.Status.CREATED.toString());
|
||||||
|
} catch (DeviceManagementException e) {
|
||||||
|
message = "Error occurred while modifying configuration settings of Windows platform.";
|
||||||
|
log.error(message, e);
|
||||||
|
throw new WindowsConfigurationException(message, e);
|
||||||
|
}
|
||||||
|
return responseMsg;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -18,32 +18,29 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.services.devicemgtservice;
|
package org.wso2.carbon.mdm.mobileservices.windows.services.devicemgtservice;
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import io.swagger.annotations.Api;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import io.swagger.annotations.ApiResponse;
|
||||||
|
import io.swagger.annotations.ApiResponses;
|
||||||
import org.wso2.carbon.device.mgt.common.Device;
|
import org.wso2.carbon.device.mgt.common.Device;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceManagementConstants;
|
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
|
||||||
import org.wso2.carbon.device.mgt.common.license.mgt.License;
|
import org.wso2.carbon.device.mgt.common.license.mgt.License;
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.common.exceptions.WindowsConfigurationException;
|
import org.wso2.carbon.mdm.mobileservices.windows.common.exceptions.WindowsConfigurationException;
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.common.util.Message;
|
import org.wso2.carbon.mdm.mobileservices.windows.common.util.Message;
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.common.util.WindowsAPIUtils;
|
|
||||||
|
|
||||||
import javax.jws.WebService;
|
import javax.jws.WebService;
|
||||||
import javax.ws.rs.*;
|
import javax.ws.rs.*;
|
||||||
import javax.ws.rs.core.Response;
|
import javax.ws.rs.core.MediaType;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Windows Device Management REST-API implementation.
|
* Windows Device Management REST-API implementation.
|
||||||
* All end points supports JSON, XMl with content negotiation.
|
* All end points supports JSON, XMl with content negotiation.
|
||||||
*/
|
*/
|
||||||
|
@Api(value = "DeviceManagementService", description = "Windows Device Management REST-API implementation.")
|
||||||
@WebService
|
@WebService
|
||||||
@Produces({"application/json", "application/xml"})
|
@Produces({"application/json", "application/xml"})
|
||||||
@Consumes({"application/json", "application/xml"})
|
@Consumes({"application/json", "application/xml"})
|
||||||
public class DeviceManagementService {
|
public interface DeviceManagementService {
|
||||||
|
|
||||||
private static Log log = LogFactory.getLog(DeviceManagementService.class);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all devices.Returns list of Windows devices registered in MDM.
|
* Get all devices.Returns list of Windows devices registered in MDM.
|
||||||
@ -52,21 +49,21 @@ public class DeviceManagementService {
|
|||||||
* @throws WindowsConfigurationException
|
* @throws WindowsConfigurationException
|
||||||
*/
|
*/
|
||||||
@GET
|
@GET
|
||||||
public List<Device> getAllDevices()
|
@ApiOperation(
|
||||||
throws WindowsConfigurationException {
|
produces = MediaType.APPLICATION_JSON,
|
||||||
String msg;
|
httpMethod = "GET",
|
||||||
List<org.wso2.carbon.device.mgt.common.Device> devices;
|
value = "Getting Details of All Windows Devices",
|
||||||
|
notes = "Use this REST API to retrieve the details " +
|
||||||
try {
|
"(e.g., the Android device type, serial number, International Mobile Station Equipment Identity " +
|
||||||
devices = WindowsAPIUtils.getDeviceManagementService().
|
"(IMEI), owner, version, model etc.) of all Windows devices that are registered with WSO2 EMM.",
|
||||||
getAllDevices(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
|
response = Device.class,
|
||||||
} catch (DeviceManagementException e) {
|
responseContainer = "List"
|
||||||
msg = "Error occurred while fetching the device list.";
|
)
|
||||||
log.error(msg, e);
|
@ApiResponses(value = {
|
||||||
throw new WindowsConfigurationException(msg, e);
|
@ApiResponse(code = 200, message = "List of Devices"),
|
||||||
}
|
@ApiResponse(code = 500, message = "Error occurred while fetching the device list")
|
||||||
return devices;
|
})
|
||||||
}
|
List<Device> getAllDevices() throws WindowsConfigurationException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fetch Windows device details of a given device Id.
|
* Fetch Windows device details of a given device Id.
|
||||||
@ -77,25 +74,21 @@ public class DeviceManagementService {
|
|||||||
*/
|
*/
|
||||||
@GET
|
@GET
|
||||||
@Path("{id}")
|
@Path("{id}")
|
||||||
public org.wso2.carbon.device.mgt.common.Device getDevice(@PathParam("id") String id)
|
@ApiOperation(
|
||||||
throws WindowsConfigurationException {
|
produces = MediaType.APPLICATION_JSON,
|
||||||
|
httpMethod = "GET",
|
||||||
String msg;
|
value = "Getting Details of an Windows Device",
|
||||||
org.wso2.carbon.device.mgt.common.Device device;
|
notes = "Use this REST API to retrieve the details " +
|
||||||
|
"(e.g., the Android device type, serial number, International Mobile Station Equipment Identity " +
|
||||||
try {
|
"(IMEI), owner, version, model etc.) of a specific Windows device that is registered with WSO2 EMM",
|
||||||
DeviceIdentifier deviceIdentifier = WindowsAPIUtils.convertToDeviceIdentifierObject(id);
|
response = Device.class
|
||||||
device = WindowsAPIUtils.getDeviceManagementService().getDevice(deviceIdentifier);
|
)
|
||||||
if (device == null) {
|
@ApiResponses(value = {
|
||||||
Response.status(Response.Status.NOT_FOUND);
|
@ApiResponse(code = 200, message = "Information of the given device"),
|
||||||
}
|
@ApiResponse(code = 500, message = "Error occurred while fetching the device information")
|
||||||
} catch (DeviceManagementException deviceMgtEx) {
|
})
|
||||||
msg = "Error occurred while fetching the device information.";
|
org.wso2.carbon.device.mgt.common.Device getDevice(@PathParam("id") String id)
|
||||||
log.error(msg, deviceMgtEx);
|
throws WindowsConfigurationException;
|
||||||
throw new WindowsConfigurationException(msg, deviceMgtEx);
|
|
||||||
}
|
|
||||||
return device;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update Windows device details of given device id.
|
* Update Windows device details of given device id.
|
||||||
@ -106,53 +99,35 @@ public class DeviceManagementService {
|
|||||||
* @throws WindowsConfigurationException
|
* @throws WindowsConfigurationException
|
||||||
*/
|
*/
|
||||||
@PUT
|
@PUT
|
||||||
|
@ApiOperation(
|
||||||
|
consumes = MediaType.APPLICATION_JSON,
|
||||||
|
httpMethod = "PUT",
|
||||||
|
value = "Updating the Details of an Windows Device",
|
||||||
|
notes = "Use this REST API to update the details of an Windows device"
|
||||||
|
)
|
||||||
|
@ApiResponses(value = {
|
||||||
|
@ApiResponse(code = 202, message = "The device enrollment details has been updated successfully"),
|
||||||
|
@ApiResponse(code = 500, message = "Error occurred while modifying the device information"),
|
||||||
|
@ApiResponse(code = 304, message = "Device not found for the update")
|
||||||
|
})
|
||||||
@Path("{id}")
|
@Path("{id}")
|
||||||
public Message updateDevice(@PathParam("id") String id, Device device)
|
Message updateDevice(@PathParam("id") String id, Device device) throws WindowsConfigurationException;
|
||||||
throws WindowsConfigurationException {
|
|
||||||
String msg;
|
|
||||||
Message responseMessage = new Message();
|
|
||||||
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
|
|
||||||
deviceIdentifier.setId(id);
|
|
||||||
deviceIdentifier
|
|
||||||
.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
|
|
||||||
boolean result;
|
|
||||||
try {
|
|
||||||
device.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
|
|
||||||
result = WindowsAPIUtils.getDeviceManagementService()
|
|
||||||
.updateDeviceInfo(deviceIdentifier, device);
|
|
||||||
if (result) {
|
|
||||||
Response.status(Response.Status.ACCEPTED);
|
|
||||||
responseMessage.setResponseMessage("Device information has modified successfully.");
|
|
||||||
} else {
|
|
||||||
Response.status(Response.Status.NOT_MODIFIED);
|
|
||||||
responseMessage.setResponseMessage("Device not found for the update.");
|
|
||||||
}
|
|
||||||
} catch (DeviceManagementException e) {
|
|
||||||
msg = "Error occurred while modifying the device information.";
|
|
||||||
log.error(msg, e);
|
|
||||||
throw new WindowsConfigurationException(msg, e);
|
|
||||||
}
|
|
||||||
return responseMessage;
|
|
||||||
}
|
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Path("license")
|
@Path("license")
|
||||||
@Produces("application/json")
|
@Produces("application/json")
|
||||||
public License getLicense() throws WindowsConfigurationException {
|
@ApiOperation(
|
||||||
License license;
|
produces = MediaType.APPLICATION_JSON,
|
||||||
|
httpMethod = "GET",
|
||||||
try {
|
value = "Getting the License Agreement for Windows Device Registration",
|
||||||
license =
|
notes = "Use this REST API to retrieve the license agreement that is used for the Windows device " +
|
||||||
WindowsAPIUtils.getDeviceManagementService().getLicense(
|
"registration process",
|
||||||
DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS,
|
response = String.class)
|
||||||
DeviceManagementConstants.LanguageCodes.LANGUAGE_CODE_ENGLISH_US);
|
@ApiResponses(value = {
|
||||||
} catch (DeviceManagementException e) {
|
@ApiResponse(code = 200, message = "Licence agreement"),
|
||||||
String msg = "Error occurred while retrieving the license configured for Windows device enrollment";
|
@ApiResponse(code = 500, message = "Error occurred while retrieving the license configured for Windows " +
|
||||||
log.error(msg, e);
|
"device enrolment")
|
||||||
throw new WindowsConfigurationException(msg, e);
|
})
|
||||||
}
|
License getLicense() throws WindowsConfigurationException;
|
||||||
return license;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,158 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016, 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.mdm.mobileservices.windows.services.devicemgtservice.impl;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.wso2.carbon.device.mgt.common.Device;
|
||||||
|
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||||
|
import org.wso2.carbon.device.mgt.common.DeviceManagementConstants;
|
||||||
|
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
||||||
|
import org.wso2.carbon.device.mgt.common.license.mgt.License;
|
||||||
|
import org.wso2.carbon.mdm.mobileservices.windows.common.exceptions.WindowsConfigurationException;
|
||||||
|
import org.wso2.carbon.mdm.mobileservices.windows.common.util.Message;
|
||||||
|
import org.wso2.carbon.mdm.mobileservices.windows.common.util.WindowsAPIUtils;
|
||||||
|
|
||||||
|
import javax.jws.WebService;
|
||||||
|
import javax.ws.rs.*;
|
||||||
|
import javax.ws.rs.core.Response;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Windows Device Management REST-API implementation.
|
||||||
|
* All end points supports JSON, XMl with content negotiation.
|
||||||
|
*/
|
||||||
|
@WebService
|
||||||
|
@Produces({"application/json", "application/xml"})
|
||||||
|
@Consumes({"application/json", "application/xml"})
|
||||||
|
public class DeviceManagementServiceImpl {
|
||||||
|
|
||||||
|
private static Log log = LogFactory.getLog(DeviceManagementServiceImpl.class);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get all devices.Returns list of Windows devices registered in MDM.
|
||||||
|
*
|
||||||
|
* @return Device List
|
||||||
|
* @throws WindowsConfigurationException
|
||||||
|
*/
|
||||||
|
@GET
|
||||||
|
public List<Device> getAllDevices()
|
||||||
|
throws WindowsConfigurationException {
|
||||||
|
String msg;
|
||||||
|
List<Device> devices;
|
||||||
|
|
||||||
|
try {
|
||||||
|
devices = WindowsAPIUtils.getDeviceManagementService().
|
||||||
|
getAllDevices(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
|
||||||
|
} catch (DeviceManagementException e) {
|
||||||
|
msg = "Error occurred while fetching the device list.";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new WindowsConfigurationException(msg, e);
|
||||||
|
}
|
||||||
|
return devices;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fetch Windows device details of a given device Id.
|
||||||
|
*
|
||||||
|
* @param id Device Id
|
||||||
|
* @return Device
|
||||||
|
* @throws WindowsConfigurationException
|
||||||
|
*/
|
||||||
|
@GET
|
||||||
|
@Path("{id}")
|
||||||
|
public Device getDevice(@PathParam("id") String id)
|
||||||
|
throws WindowsConfigurationException {
|
||||||
|
|
||||||
|
String msg;
|
||||||
|
Device device;
|
||||||
|
|
||||||
|
try {
|
||||||
|
DeviceIdentifier deviceIdentifier = WindowsAPIUtils.convertToDeviceIdentifierObject(id);
|
||||||
|
device = WindowsAPIUtils.getDeviceManagementService().getDevice(deviceIdentifier);
|
||||||
|
if (device == null) {
|
||||||
|
Response.status(Response.Status.NOT_FOUND);
|
||||||
|
}
|
||||||
|
} catch (DeviceManagementException deviceMgtEx) {
|
||||||
|
msg = "Error occurred while fetching the device information.";
|
||||||
|
log.error(msg, deviceMgtEx);
|
||||||
|
throw new WindowsConfigurationException(msg, deviceMgtEx);
|
||||||
|
}
|
||||||
|
return device;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update Windows device details of given device id.
|
||||||
|
*
|
||||||
|
* @param id Device Id
|
||||||
|
* @param device Device Details
|
||||||
|
* @return Message
|
||||||
|
* @throws WindowsConfigurationException
|
||||||
|
*/
|
||||||
|
@PUT
|
||||||
|
@Path("{id}")
|
||||||
|
public Message updateDevice(@PathParam("id") String id, Device device)
|
||||||
|
throws WindowsConfigurationException {
|
||||||
|
String msg;
|
||||||
|
Message responseMessage = new Message();
|
||||||
|
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
|
||||||
|
deviceIdentifier.setId(id);
|
||||||
|
deviceIdentifier
|
||||||
|
.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
|
||||||
|
boolean result;
|
||||||
|
try {
|
||||||
|
device.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
|
||||||
|
result = WindowsAPIUtils.getDeviceManagementService()
|
||||||
|
.updateDeviceInfo(deviceIdentifier, device);
|
||||||
|
if (result) {
|
||||||
|
Response.status(Response.Status.ACCEPTED);
|
||||||
|
responseMessage.setResponseMessage("Device information has modified successfully.");
|
||||||
|
} else {
|
||||||
|
Response.status(Response.Status.NOT_MODIFIED);
|
||||||
|
responseMessage.setResponseMessage("Device not found for the update.");
|
||||||
|
}
|
||||||
|
} catch (DeviceManagementException e) {
|
||||||
|
msg = "Error occurred while modifying the device information.";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new WindowsConfigurationException(msg, e);
|
||||||
|
}
|
||||||
|
return responseMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
@GET
|
||||||
|
@Path("license")
|
||||||
|
@Produces("application/json")
|
||||||
|
public License getLicense() throws WindowsConfigurationException {
|
||||||
|
License license;
|
||||||
|
|
||||||
|
try {
|
||||||
|
license =
|
||||||
|
WindowsAPIUtils.getDeviceManagementService().getLicense(
|
||||||
|
DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS,
|
||||||
|
DeviceManagementConstants.LanguageCodes.LANGUAGE_CODE_ENGLISH_US);
|
||||||
|
} catch (DeviceManagementException e) {
|
||||||
|
String msg = "Error occurred while retrieving the license configured for Windows device enrollment";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new WindowsConfigurationException(msg, e);
|
||||||
|
}
|
||||||
|
return license;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@ -18,6 +18,9 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.services.discovery;
|
package org.wso2.carbon.mdm.mobileservices.windows.services.discovery;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import io.swagger.annotations.ApiResponse;
|
||||||
|
import io.swagger.annotations.ApiResponses;
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.common.PluginConstants;
|
import org.wso2.carbon.mdm.mobileservices.windows.common.PluginConstants;
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.services.discovery.beans.DiscoveryRequest;
|
import org.wso2.carbon.mdm.mobileservices.windows.services.discovery.beans.DiscoveryRequest;
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.services.discovery.beans.DiscoveryResponse;
|
import org.wso2.carbon.mdm.mobileservices.windows.services.discovery.beans.DiscoveryResponse;
|
||||||
@ -46,6 +49,17 @@ public interface DiscoveryService {
|
|||||||
@RequestWrapper(localName = "Discover", targetNamespace = PluginConstants.DISCOVERY_SERVICE_TARGET_NAMESPACE)
|
@RequestWrapper(localName = "Discover", targetNamespace = PluginConstants.DISCOVERY_SERVICE_TARGET_NAMESPACE)
|
||||||
@WebMethod(operationName = "Discover")
|
@WebMethod(operationName = "Discover")
|
||||||
@ResponseWrapper(localName = "DiscoverResponse", targetNamespace = PluginConstants.DISCOVERY_SERVICE_TARGET_NAMESPACE)
|
@ResponseWrapper(localName = "DiscoverResponse", targetNamespace = PluginConstants.DISCOVERY_SERVICE_TARGET_NAMESPACE)
|
||||||
|
@ApiOperation(
|
||||||
|
httpMethod = "POST",
|
||||||
|
value = "Discover the EMM server via REST API.",
|
||||||
|
notes = "Request the server endpoints.",
|
||||||
|
response = DiscoveryResponse.class
|
||||||
|
)
|
||||||
|
@ApiResponses(value = {
|
||||||
|
@ApiResponse(code = 200,
|
||||||
|
message = "Windows policy, policy endpoints, enrollment endpoints and authentication endpoint."),
|
||||||
|
@ApiResponse(code = 500, message = "Internal server error")
|
||||||
|
})
|
||||||
void discover(
|
void discover(
|
||||||
@WebParam(name = "request", targetNamespace = PluginConstants.DISCOVERY_SERVICE_TARGET_NAMESPACE)
|
@WebParam(name = "request", targetNamespace = PluginConstants.DISCOVERY_SERVICE_TARGET_NAMESPACE)
|
||||||
DiscoveryRequest request,
|
DiscoveryRequest request,
|
||||||
@ -57,6 +71,15 @@ public interface DiscoveryService {
|
|||||||
@GET
|
@GET
|
||||||
@WebMethod
|
@WebMethod
|
||||||
@WebResult()
|
@WebResult()
|
||||||
|
@ApiOperation(
|
||||||
|
httpMethod = "GET",
|
||||||
|
value = "Discover the EMM server via REST API.",
|
||||||
|
notes = "Check the server availability."
|
||||||
|
)
|
||||||
|
@ApiResponses(value = {
|
||||||
|
@ApiResponse(code = 200, message = "Ok."),
|
||||||
|
@ApiResponse(code = 500, message = "Internal server error.")
|
||||||
|
})
|
||||||
Response discoverGet();
|
Response discoverGet();
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -18,21 +18,32 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.services.discovery.beans;
|
package org.wso2.carbon.mdm.mobileservices.windows.services.discovery.beans;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.*;
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
|
import javax.xml.bind.annotation.XmlAccessorType;
|
||||||
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
@XmlType(name = "DiscoveryRequest")
|
@XmlType(name = "DiscoveryRequest")
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
|
@ApiModel(value = "DiscoveryRequest",
|
||||||
|
description = "This class carries all information related to Discovery request.")
|
||||||
public class DiscoveryRequest implements Serializable {
|
public class DiscoveryRequest implements Serializable {
|
||||||
|
|
||||||
@XmlElement(name = "EmailAddress", required = true)
|
@XmlElement(name = "EmailAddress", required = true)
|
||||||
|
@ApiModelProperty(name = "emailId", value = "Email ID.", required = true)
|
||||||
private String emailId;
|
private String emailId;
|
||||||
|
|
||||||
@XmlElement(name = "RequestVersion")
|
@XmlElement(name = "RequestVersion")
|
||||||
|
@ApiModelProperty(name = "version", value = "Request Version.", required = true)
|
||||||
private String version;
|
private String version;
|
||||||
|
|
||||||
@XmlElement(name = "DeviceType")
|
@XmlElement(name = "DeviceType")
|
||||||
|
@ApiModelProperty(name = "deviceType", value = "Type of the Device.", required = true)
|
||||||
private String deviceType;
|
private String deviceType;
|
||||||
|
|
||||||
public String getEmailId() {
|
public String getEmailId() {
|
||||||
|
|||||||
@ -18,24 +18,40 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.services.discovery.beans;
|
package org.wso2.carbon.mdm.mobileservices.windows.services.discovery.beans;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.*;
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
|
import javax.xml.bind.annotation.XmlAccessorType;
|
||||||
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
@XmlType(name = "DiscoveryResponse")
|
@XmlType(name = "DiscoveryResponse")
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
|
@ApiModel(value = "DiscoveryResponse",
|
||||||
|
description = "This class carries all information related to DiscoverResponse.")
|
||||||
public class DiscoveryResponse implements Serializable {
|
public class DiscoveryResponse implements Serializable {
|
||||||
|
|
||||||
@XmlElement(name = "AuthPolicy")
|
@XmlElement(name = "AuthPolicy")
|
||||||
|
@ApiModelProperty(name = "authPolicy",
|
||||||
|
value = "Authentication policy(On-premise/Federated)", required = true)
|
||||||
private String authPolicy;
|
private String authPolicy;
|
||||||
|
|
||||||
@XmlElement(name = "EnrollmentPolicyServiceUrl")
|
@XmlElement(name = "EnrollmentPolicyServiceUrl")
|
||||||
|
@ApiModelProperty(name = "enrollmentPolicyServiceUrl",
|
||||||
|
value = "Enrollment policy(XCEP) endpoint URL.", required = true)
|
||||||
private String enrollmentPolicyServiceUrl;
|
private String enrollmentPolicyServiceUrl;
|
||||||
|
|
||||||
@XmlElement(name = "EnrollmentServiceUrl")
|
@XmlElement(name = "EnrollmentServiceUrl")
|
||||||
|
@ApiModelProperty(name = "enrollmentServiceUrl",
|
||||||
|
value = "Enrollment Service(WSTEP) endpoint URL.", required = true)
|
||||||
private String enrollmentServiceUrl;
|
private String enrollmentServiceUrl;
|
||||||
|
|
||||||
@XmlElement(name = "AuthenticationServiceUrl")
|
@XmlElement(name = "AuthenticationServiceUrl")
|
||||||
|
@ApiModelProperty(name = "authenticationServiceUrl",
|
||||||
|
value = "SOAP request authentication service URL", required = true)
|
||||||
private String authenticationServiceUrl;
|
private String authenticationServiceUrl;
|
||||||
|
|
||||||
public void setAuthenticationServiceUrl(String authenticationServiceUrl) {
|
public void setAuthenticationServiceUrl(String authenticationServiceUrl) {
|
||||||
|
|||||||
@ -18,54 +18,38 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.services.policymgtservice;
|
package org.wso2.carbon.mdm.mobileservices.windows.services.policymgtservice;
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import io.swagger.annotations.Api;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
import io.swagger.annotations.ApiResponse;
|
||||||
|
import io.swagger.annotations.ApiResponses;
|
||||||
|
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.common.exceptions.WindowsConfigurationException;
|
import org.wso2.carbon.mdm.mobileservices.windows.common.exceptions.WindowsConfigurationException;
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.common.util.Message;
|
import org.wso2.carbon.mdm.mobileservices.windows.common.util.Message;
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.common.util.WindowsAPIUtils;
|
|
||||||
import org.wso2.carbon.policy.mgt.common.Policy;
|
|
||||||
import org.wso2.carbon.policy.mgt.common.PolicyManagementException;
|
|
||||||
import org.wso2.carbon.policy.mgt.core.PolicyManagerService;
|
|
||||||
|
|
||||||
import javax.jws.WebService;
|
import javax.jws.WebService;
|
||||||
import javax.ws.rs.*;
|
import javax.ws.rs.*;
|
||||||
import javax.ws.rs.core.Response;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Endpoint for Enforce Effective Policy.
|
* Endpoint for Enforce Effective Policy.
|
||||||
*/
|
*/
|
||||||
|
@Api(value = "PolicyMgtService", description = "Windows Device Management REST-API implementation.")
|
||||||
@WebService
|
@WebService
|
||||||
@Produces({"application/json", "application/xml"})
|
@Produces({"application/json", "application/xml"})
|
||||||
@Consumes({"application/json", "application/xml"})
|
@Consumes({"application/json", "application/xml"})
|
||||||
public class PolicyMgtService {
|
public interface PolicyMgtService {
|
||||||
private static Log log = LogFactory.getLog(PolicyMgtService.class);
|
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Path("{id}")
|
@Path("{id}")
|
||||||
public Message getEffectivePolicy(@HeaderParam("Accept") String acceptHeader,
|
@ApiOperation(
|
||||||
@PathParam("id") String id) throws WindowsConfigurationException {
|
httpMethod = "GET",
|
||||||
|
value = "Identifying whether a Policy is Enforced on an Windows Device",
|
||||||
DeviceIdentifier deviceIdentifier = WindowsAPIUtils.convertToDeviceIdentifierObject(id);
|
notes = "When a device registers with WSO2 EMM, a policy is enforced on the device based on the policy " +
|
||||||
Message responseMessage = new Message();
|
"enforcement criteria. Using this API you are able to identify if a specific device has a policy " +
|
||||||
Policy policy;
|
"enforced or if no policy is enforced on the device."
|
||||||
try {
|
)
|
||||||
PolicyManagerService policyManagerService = WindowsAPIUtils.getPolicyManagerService();
|
@ApiResponses(value = {
|
||||||
policy = policyManagerService.getEffectivePolicy(deviceIdentifier);
|
@ApiResponse(code = 200, message = "Effective policy added to operation"),
|
||||||
if (policy == null) {
|
@ApiResponse(code = 204, message = "No effective policy found")
|
||||||
responseMessage.setResponseCode(Response.Status.NO_CONTENT.toString());
|
})
|
||||||
responseMessage.setResponseMessage("No effective policy found");
|
Message getEffectivePolicy(@HeaderParam("Accept") String acceptHeader,
|
||||||
return responseMessage;
|
@PathParam("id") String id) throws WindowsConfigurationException;
|
||||||
} else {
|
|
||||||
responseMessage.setResponseCode(Response.Status.OK.toString());
|
|
||||||
responseMessage.setResponseMessage("Effective policy added to operation");
|
|
||||||
return responseMessage;
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (PolicyManagementException e) {
|
|
||||||
String msg = "Error occurred while getting the policy.";
|
|
||||||
log.error(msg, e);
|
|
||||||
throw new WindowsConfigurationException(msg, e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,72 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016, 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.mdm.mobileservices.windows.services.policymgtservice.impl;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||||
|
import org.wso2.carbon.mdm.mobileservices.windows.common.exceptions.WindowsConfigurationException;
|
||||||
|
import org.wso2.carbon.mdm.mobileservices.windows.common.util.Message;
|
||||||
|
import org.wso2.carbon.mdm.mobileservices.windows.common.util.WindowsAPIUtils;
|
||||||
|
import org.wso2.carbon.mdm.mobileservices.windows.services.policymgtservice.PolicyMgtService;
|
||||||
|
import org.wso2.carbon.policy.mgt.common.Policy;
|
||||||
|
import org.wso2.carbon.policy.mgt.common.PolicyManagementException;
|
||||||
|
import org.wso2.carbon.policy.mgt.core.PolicyManagerService;
|
||||||
|
|
||||||
|
import javax.jws.WebService;
|
||||||
|
import javax.ws.rs.*;
|
||||||
|
import javax.ws.rs.core.Response;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Endpoint for Enforce Effective Policy.
|
||||||
|
*/
|
||||||
|
|
||||||
|
@WebService
|
||||||
|
@Produces({"application/json", "application/xml"})
|
||||||
|
@Consumes({"application/json", "application/xml"})
|
||||||
|
public class PolicyMgtServiceImpl implements PolicyMgtService {
|
||||||
|
private static Log log = LogFactory.getLog(PolicyMgtServiceImpl.class);
|
||||||
|
|
||||||
|
@GET
|
||||||
|
public Message getEffectivePolicy(@HeaderParam("Accept") String acceptHeader,
|
||||||
|
@PathParam("id") String id) throws WindowsConfigurationException {
|
||||||
|
|
||||||
|
DeviceIdentifier deviceIdentifier = WindowsAPIUtils.convertToDeviceIdentifierObject(id);
|
||||||
|
Message responseMessage = new Message();
|
||||||
|
Policy policy;
|
||||||
|
try {
|
||||||
|
PolicyManagerService policyManagerService = WindowsAPIUtils.getPolicyManagerService();
|
||||||
|
policy = policyManagerService.getEffectivePolicy(deviceIdentifier);
|
||||||
|
if (policy == null) {
|
||||||
|
responseMessage.setResponseCode(Response.Status.NO_CONTENT.toString());
|
||||||
|
responseMessage.setResponseMessage("No effective policy found");
|
||||||
|
return responseMessage;
|
||||||
|
} else {
|
||||||
|
responseMessage.setResponseCode(Response.Status.OK.toString());
|
||||||
|
responseMessage.setResponseMessage("Effective policy added to operation");
|
||||||
|
return responseMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (PolicyManagementException e) {
|
||||||
|
String msg = "Error occurred while getting the policy.";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new WindowsConfigurationException(msg, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -18,6 +18,10 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.services.syncml;
|
package org.wso2.carbon.mdm.mobileservices.windows.services.syncml;
|
||||||
|
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import io.swagger.annotations.ApiResponse;
|
||||||
|
import io.swagger.annotations.ApiResponses;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.wso2.carbon.device.mgt.common.notification.mgt.NotificationManagementException;
|
import org.wso2.carbon.device.mgt.common.notification.mgt.NotificationManagementException;
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.common.PluginConstants;
|
import org.wso2.carbon.mdm.mobileservices.windows.common.PluginConstants;
|
||||||
@ -35,6 +39,7 @@ import javax.ws.rs.core.Response;
|
|||||||
/**
|
/**
|
||||||
* Interface for Syncml message flow.
|
* Interface for Syncml message flow.
|
||||||
*/
|
*/
|
||||||
|
@Api(value = "SyncmlService", description = "Windows Device Management REST-API implementation.")
|
||||||
@Path("/devicemanagement")
|
@Path("/devicemanagement")
|
||||||
public interface SyncmlService {
|
public interface SyncmlService {
|
||||||
|
|
||||||
@ -42,6 +47,17 @@ public interface SyncmlService {
|
|||||||
@POST
|
@POST
|
||||||
@Consumes({PluginConstants.SYNCML_MEDIA_TYPE, MediaType.APPLICATION_XML})
|
@Consumes({PluginConstants.SYNCML_MEDIA_TYPE, MediaType.APPLICATION_XML})
|
||||||
@Produces(PluginConstants.SYNCML_MEDIA_TYPE)
|
@Produces(PluginConstants.SYNCML_MEDIA_TYPE)
|
||||||
|
@ApiOperation(
|
||||||
|
consumes = "application/vnd.syncml.dm+xml;charset=utf-8",
|
||||||
|
produces = "application/vnd.syncml.dm+xml;charset=utf-8",
|
||||||
|
httpMethod = "POST",
|
||||||
|
value = "Windows Device Management service REST API",
|
||||||
|
notes = "Windows device management session"
|
||||||
|
)
|
||||||
|
@ApiResponses(value = {
|
||||||
|
@ApiResponse(code = 200, message = "Successfully completed syncml session"),
|
||||||
|
@ApiResponse(code = 500, message = "Internal server error")
|
||||||
|
})
|
||||||
Response getResponse(Document request) throws WindowsDeviceEnrolmentException, WindowsOperationException,
|
Response getResponse(Document request) throws WindowsDeviceEnrolmentException, WindowsOperationException,
|
||||||
NotificationManagementException, WindowsConfigurationException;
|
NotificationManagementException, WindowsConfigurationException;
|
||||||
|
|
||||||
|
|||||||
@ -18,11 +18,16 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.services.syncml.beans;
|
package org.wso2.carbon.mdm.mobileservices.windows.services.syncml.beans;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bean for get basic operations.
|
* Bean for get basic operations.
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "BasicOperation",
|
||||||
|
description = "This class carries all information related to Basic operation.")
|
||||||
public class BasicOperation {
|
public class BasicOperation {
|
||||||
|
@ApiModelProperty(name = "name", value = "Name of the basic operation.", required = true)
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
|
|||||||
@ -18,19 +18,38 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.services.syncml.beans;
|
package org.wso2.carbon.mdm.mobileservices.windows.services.syncml.beans;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bean for device lockOperationUpdate screen passcode policy.
|
* Bean for device lockOperationUpdate screen passcode policy.
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "PasscodePolicy",
|
||||||
|
description = "This class carries all information related to Passcode Policy.")
|
||||||
public class PasscodePolicy extends BasicOperation {
|
public class PasscodePolicy extends BasicOperation {
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "maxFailedAttempts", value = "No of Max fail attempts.", required = true)
|
||||||
private int maxFailedAttempts;
|
private int maxFailedAttempts;
|
||||||
|
@ApiModelProperty(name = "minLength", value = "Minimum length of the Passcode.", required = true)
|
||||||
private int minLength;
|
private int minLength;
|
||||||
|
@ApiModelProperty(name = "pinHistory",
|
||||||
|
value = "The number of passwords Windows 10 Mobile remembers in the password history.", required = true)
|
||||||
private int pinHistory;
|
private int pinHistory;
|
||||||
|
@ApiModelProperty(name = "minComplexChars",
|
||||||
|
value = "The number of password element types (in other words, uppercase letters, lowercase letters, " +
|
||||||
|
"numbers, or punctuation) required to create strong passwords.", required = true)
|
||||||
private int minComplexChars;
|
private int minComplexChars;
|
||||||
|
@ApiModelProperty(name = "maxPINAgeInDays",
|
||||||
|
value = "Number of Maximum days to expire the passcode.", required = true)
|
||||||
private int maxPINAgeInDays;
|
private int maxPINAgeInDays;
|
||||||
|
@ApiModelProperty(name = "requireAlphanumeric",
|
||||||
|
value = "An integer value that specifies the complexity of the password or PIN allowed.", required = true)
|
||||||
private boolean requireAlphanumeric;
|
private boolean requireAlphanumeric;
|
||||||
|
@ApiModelProperty(name = "allowSimple", value = "Set boolean value to allow simple password.", required = true)
|
||||||
private boolean allowSimple;
|
private boolean allowSimple;
|
||||||
|
@ApiModelProperty(name = "enablePassword", value = "Set boolean value enable password.", required = true)
|
||||||
private boolean enablePassword;
|
private boolean enablePassword;
|
||||||
|
@ApiModelProperty(name = "maxInactiveTime", value = "Maximum Inactive time.", required = true)
|
||||||
private int maxInactiveTime;
|
private int maxInactiveTime;
|
||||||
|
|
||||||
public int getMaxInactiveTime() {
|
public int getMaxInactiveTime() {
|
||||||
|
|||||||
@ -18,14 +18,23 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.services.syncml.beans;
|
package org.wso2.carbon.mdm.mobileservices.windows.services.syncml.beans;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class for contains device active policy.
|
* Class for contains device active policy.
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "Profile",
|
||||||
|
description = "This class carries all information related to Profile features.")
|
||||||
public class Profile {
|
public class Profile {
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "featureCode", value = "Profile type operation feature code.", required = true)
|
||||||
String featureCode;
|
String featureCode;
|
||||||
|
@ApiModelProperty(name = "data", value = "Profile type operation data content..", required = true)
|
||||||
String data;
|
String data;
|
||||||
|
@ApiModelProperty(name = "enable", value = "Status of the Profile operation.", required = true)
|
||||||
boolean enable;
|
boolean enable;
|
||||||
|
@ApiModelProperty(name = "compliance", value = "Status of the operation compliance.", required = true)
|
||||||
boolean compliance;
|
boolean compliance;
|
||||||
|
|
||||||
public boolean isCompliance() {
|
public boolean isCompliance() {
|
||||||
|
|||||||
@ -18,19 +18,33 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.mdm.mobileservices.windows.services.syncml.beans;
|
package org.wso2.carbon.mdm.mobileservices.windows.services.syncml.beans;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bean for WIFI configurations.
|
* Bean for WIFI configurations.
|
||||||
*/
|
*/
|
||||||
|
@ApiModel(value = "Wifi",
|
||||||
|
description = "This class carries all information related to Wifi policy.")
|
||||||
public class Wifi extends BasicOperation {
|
public class Wifi extends BasicOperation {
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "networkName", value = "Name of the Wifi Network.", required = true)
|
||||||
private String networkName;
|
private String networkName;
|
||||||
|
@ApiModelProperty(name = "ssid", value = "SSID.", required = true)
|
||||||
private String ssid;
|
private String ssid;
|
||||||
|
@ApiModelProperty(name = "connectionType", value = "Type of the connection.", required = true)
|
||||||
private String connectionType;
|
private String connectionType;
|
||||||
|
@ApiModelProperty(name = "connectionMode", value = "Connection mode.", required = true)
|
||||||
private String connectionMode;
|
private String connectionMode;
|
||||||
|
@ApiModelProperty(name = "authentication", value = "Authentication type.", required = true)
|
||||||
private String authentication;
|
private String authentication;
|
||||||
|
@ApiModelProperty(name = "encryption", value = "Encryption type.", required = true)
|
||||||
private String encryption;
|
private String encryption;
|
||||||
|
@ApiModelProperty(name = "keyType", value = "Key type.", required = true)
|
||||||
private String keyType;
|
private String keyType;
|
||||||
|
@ApiModelProperty(name = "protection", value = "Protection.", required = true)
|
||||||
private String protection;
|
private String protection;
|
||||||
|
@ApiModelProperty(name = "keyMaterial", value = "Key Material.", required = true)
|
||||||
private String keyMaterial;
|
private String keyMaterial;
|
||||||
|
|
||||||
public String getNetworkName() {
|
public String getNetworkName() {
|
||||||
|
|||||||
@ -1,54 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2016, 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.mdm.mobileservices.windows.services.syncml.util;
|
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
|
||||||
import org.apache.commons.logging.LogFactory;
|
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.common.exceptions.WindowsConfigurationException;
|
|
||||||
import org.wso2.carbon.mdm.mobileservices.windows.common.util.WindowsAPIUtils;
|
|
||||||
import org.wso2.carbon.policy.mgt.common.Policy;
|
|
||||||
import org.wso2.carbon.policy.mgt.common.PolicyManagementException;
|
|
||||||
import org.wso2.carbon.policy.mgt.core.PolicyManagerService;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* implementation for PolicyManager
|
|
||||||
*/
|
|
||||||
public class PolicyManager {
|
|
||||||
|
|
||||||
private static Log log = LogFactory.getLog(PolicyManager.class);
|
|
||||||
|
|
||||||
public Policy getEffectivePolicy(DeviceIdentifier deviceIdentifier) throws WindowsConfigurationException {
|
|
||||||
Policy policy;
|
|
||||||
PolicyManagerService policyManagerService = WindowsAPIUtils.getPolicyManagerService();
|
|
||||||
try {
|
|
||||||
policy = policyManagerService.getEffectivePolicy(deviceIdentifier);
|
|
||||||
if (policy != null) {
|
|
||||||
return policy;
|
|
||||||
} else {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
} catch (PolicyManagementException e) {
|
|
||||||
String msg = "Error occurred while getting policy.";
|
|
||||||
log.error(msg, e);
|
|
||||||
throw new WindowsConfigurationException();
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,49 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2016, 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.mdm.mobileservices.windows.services.syncml.util;
|
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
|
||||||
import org.apache.commons.logging.LogFactory;
|
|
||||||
import org.wso2.carbon.context.PrivilegedCarbonContext;
|
|
||||||
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class for generate Device object from the received data.
|
|
||||||
*/
|
|
||||||
public class SyncmlUtils {
|
|
||||||
|
|
||||||
private static Log log = LogFactory.getLog(SyncmlUtils.class);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method returns Device Management Object for certain tasks such as Device enrollment etc.
|
|
||||||
*
|
|
||||||
* @return DeviceManagementServiceObject
|
|
||||||
*/
|
|
||||||
public static DeviceManagementProviderService getDeviceManagementService() {
|
|
||||||
try {
|
|
||||||
PrivilegedCarbonContext context = PrivilegedCarbonContext.getThreadLocalCarbonContext();
|
|
||||||
|
|
||||||
return (DeviceManagementProviderService) context.getOSGiService(DeviceManagementProviderService.class,
|
|
||||||
null);
|
|
||||||
} finally {
|
|
||||||
PrivilegedCarbonContext.endTenantFlow();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -197,11 +197,11 @@
|
|||||||
class="org.wso2.carbon.mdm.mobileservices.windows.services.wstep.util.MessageHandler"/>
|
class="org.wso2.carbon.mdm.mobileservices.windows.services.wstep.util.MessageHandler"/>
|
||||||
<bean id="jsonProvider" class="org.wso2.carbon.mdm.mobileservices.windows.common.util.GsonMessageBodyHandler"/>
|
<bean id="jsonProvider" class="org.wso2.carbon.mdm.mobileservices.windows.common.util.GsonMessageBodyHandler"/>
|
||||||
<bean id="configurationServiceBean"
|
<bean id="configurationServiceBean"
|
||||||
class="org.wso2.carbon.mdm.mobileservices.windows.services.configurationmgtservice.ConfigurationMgtService"/>
|
class="org.wso2.carbon.mdm.mobileservices.windows.services.configurationmgtservice.ConfigurationMgtServiceImpl"/>
|
||||||
<bean id="policyServiceBean"
|
<bean id="policyServiceBean"
|
||||||
class="org.wso2.carbon.mdm.mobileservices.windows.services.policymgtservice.PolicyMgtService"/>
|
class="org.wso2.carbon.mdm.mobileservices.windows.services.policymgtservice.PolicyMgtServiceImpl"/>
|
||||||
<bean id="errorHandler" class="org.wso2.carbon.mdm.mobileservices.windows.common.util.ErrorHandler"/>
|
<bean id="errorHandler" class="org.wso2.carbon.mdm.mobileservices.windows.common.util.ErrorHandler"/>
|
||||||
<bean id="deviceMgtServiceBean"
|
<bean id="deviceMgtServiceBean"
|
||||||
class="org.wso2.carbon.mdm.mobileservices.windows.services.devicemgtservice.DeviceManagementService"/>
|
class="org.wso2.carbon.mdm.mobileservices.windows.services.devicemgtservice.DeviceManagementServiceImpl"/>
|
||||||
</beans>
|
</beans>
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user