mirror of
https://repository.entgra.net/community/device-mgt-plugins.git
synced 2025-09-16 23:42:15 +00:00
Adding payload validation for global proxy
This commit is contained in:
parent
601f527fb5
commit
f19ce5f8e1
@ -21,6 +21,7 @@ package org.wso2.carbon.mdm.services.android.bean;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@ -66,6 +67,22 @@ public class GlobalProxy extends AndroidOperation implements Serializable {
|
||||
)
|
||||
private String proxyPacUrl;
|
||||
|
||||
public boolean validateRequest() {
|
||||
if (ProxyType.MANUAL.equals(this.proxyConfigType)) {
|
||||
if (StringUtils.isEmpty(this.proxyHost)) {
|
||||
return false;
|
||||
}
|
||||
if (this.proxyPort < 0 || this.proxyPort > 65535) {
|
||||
return false;
|
||||
}
|
||||
} else if (ProxyType.AUTO.equals(this.proxyConfigType)) {
|
||||
if (StringUtils.isEmpty(proxyPacUrl)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public ProxyType getProxyConfigType() {
|
||||
return proxyConfigType;
|
||||
}
|
||||
|
||||
@ -995,14 +995,21 @@ public class DeviceManagementAdminServiceImpl implements DeviceManagementAdminSe
|
||||
}
|
||||
|
||||
GlobalProxy globalProxy = globalProxyBeanWrapper.getOperation();
|
||||
ProfileOperation operation = new ProfileOperation();
|
||||
operation.setCode(AndroidConstants.OperationCodes.GLOBAL_PROXY);
|
||||
operation.setType(Operation.Type.PROFILE);
|
||||
operation.setPayLoad(globalProxy.toJSON());
|
||||
if (globalProxy.validateRequest()) {
|
||||
ProfileOperation operation = new ProfileOperation();
|
||||
operation.setCode(AndroidConstants.OperationCodes.GLOBAL_PROXY);
|
||||
operation.setType(Operation.Type.PROFILE);
|
||||
operation.setPayLoad(globalProxy.toJSON());
|
||||
|
||||
Activity activity = AndroidDeviceUtils
|
||||
.getOperationResponse(globalProxyBeanWrapper.getDeviceIDs(), operation);
|
||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||
Activity activity = AndroidDeviceUtils
|
||||
.getOperationResponse(globalProxyBeanWrapper.getDeviceIDs(), operation);
|
||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||
} else {
|
||||
String errorMessage = "The payload of the global proxy operation is incorrect";
|
||||
log.error(errorMessage);
|
||||
throw new BadRequestException(
|
||||
new ErrorResponse.ErrorResponseBuilder().setCode(400L).setMessage(errorMessage).build());
|
||||
}
|
||||
} catch (InvalidDeviceException e) {
|
||||
String errorMessage = "Invalid Device Identifiers found.";
|
||||
log.error(errorMessage, e);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user