diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.api/pom.xml index 07ef52fde5..0d53ffbc05 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/pom.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/pom.xml @@ -207,6 +207,24 @@ io.swagger swagger-annotations + + + io.swagger + swagger-core + + + org.slf4j + slf4j-api + + + + + io.swagger + swagger-jaxrs + + + javax.servlet + servlet-api provided diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/ApiOriginFilter.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/ApiOriginFilter.java new file mode 100644 index 0000000000..9ba3b5b97b --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/ApiOriginFilter.java @@ -0,0 +1,44 @@ +/* + * 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.device.mgt.jaxrs; + +import javax.servlet.*; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +public class ApiOriginFilter implements Filter { + + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + HttpServletResponse res = (HttpServletResponse) response; + res.addHeader("Access-Control-Allow-Origin", "*"); + res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); + res.addHeader("Access-Control-Allow-Headers", "Content-Type"); + chain.doFilter(request, response); + } + + public void destroy() { + //do nothing + } + + public void init(FilterConfig filterConfig) throws ServletException { + //do nothing + } + +} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Authentication.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Authentication.java deleted file mode 100644 index e28de808a0..0000000000 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Authentication.java +++ /dev/null @@ -1,34 +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.device.mgt.jaxrs.api; - -import io.swagger.annotations.Api; - -import javax.ws.rs.Consumes; -import javax.ws.rs.Produces; - -/** - * Authentication related REST-API interface. - */ -@Api(value = "Authentication") -@Produces({ "application/json", "application/xml" }) -@Consumes({ "application/json", "application/xml" }) -public interface Authentication { - -} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Certificate.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Certificate.java index af03e226aa..c7f1e4ff04 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Certificate.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Certificate.java @@ -18,15 +18,10 @@ package org.wso2.carbon.device.mgt.jaxrs.api; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; +import io.swagger.annotations.*; import org.wso2.carbon.certificate.mgt.core.dto.CertificateResponse; import org.wso2.carbon.device.mgt.common.PaginationResult; import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException; -import org.wso2.carbon.device.mgt.jaxrs.api.util.ResponsePayload; import org.wso2.carbon.device.mgt.jaxrs.beans.EnrollmentCertificate; import javax.ws.rs.*; @@ -39,6 +34,7 @@ import javax.ws.rs.core.Response; @Api(value = "Certificate", description = "Certificate related tasks such as saving certificates, " + "can be done through this API") @SuppressWarnings("NonJaxWsWebServices") +@Path("/certificates") @Produces({ "application/json", "application/xml" }) @Consumes({ "application/json", "application/xml" }) public interface Certificate { @@ -83,7 +79,7 @@ public interface Certificate { notes = "Get the client side SSL certificate details", response = CertificateResponse.class) @ApiResponses(value = { - @ApiResponse(code = 200, message = "OK"), + @ApiResponse(code = 200, message = "OK", response = CertificateResponse.class), @ApiResponse(code = 400, message = "Notification status updated successfully"), @ApiResponse(code = 500, message = "Error occurred while converting PEM file to X509Certificate") }) @@ -112,7 +108,7 @@ public interface Certificate { + "page therefore the details are paginated", response = PaginationResult.class) @ApiResponses(value = { - @ApiResponse(code = 200, message = "OK"), + @ApiResponse(code = 200, message = "OK", response = PaginationResult.class), @ApiResponse(code = 400, message = "Invalid start index"), @ApiResponse(code = 400, message = "Invalid length value"), @ApiResponse(code = 500, message = "Error occurred while fetching all certificates") diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Configuration.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Configuration.java index 7c5db4f189..5ae44a5162 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Configuration.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Configuration.java @@ -18,13 +18,8 @@ package org.wso2.carbon.device.mgt.jaxrs.api; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; +import io.swagger.annotations.*; import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfiguration; -import org.wso2.carbon.device.mgt.jaxrs.api.util.ResponsePayload; import javax.ws.rs.*; import javax.ws.rs.core.MediaType; @@ -34,9 +29,9 @@ import javax.ws.rs.core.Response; * General Tenant Configuration REST-API implementation. * All end points support JSON, XMl with content negotiation. */ +@Path("/configuration") @Api(value = "Configuration", description = "General Tenant Configuration management capabilities are exposed " + - "through " + - "this API") + "through this API") @SuppressWarnings("NonJaxWsWebServices") @Produces({ "application/json", "application/xml" }) @Consumes({ "application/json", "application/xml" }) diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Device.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Device.java index 0dc381d335..569df1cac1 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Device.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Device.java @@ -29,7 +29,7 @@ import javax.ws.rs.core.Response; /** * Device related operations such as get all the available devices, etc. */ - +@Path("/devices") @Api(value = "Device", description = "Device related operations such as get all the available devices, etc.") @SuppressWarnings("NonJaxWsWebServices") public interface Device { @@ -41,6 +41,7 @@ public interface Device { * @return Device List */ @GET + @Path("devices") @ApiOperation( consumes = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON, @@ -95,7 +96,7 @@ public interface Device { */ @GET @Path("user/{user}") - Response getDevice(@PathParam("user") String user); + Response getDeviceOfUser(@PathParam("user") String user); /** * Fetch device count of a given user. @@ -105,7 +106,7 @@ public interface Device { */ @GET @Path("user/{user}/count") - Response getDeviceCount(@PathParam("user") String user); + Response getDeviceCountOfUser(@PathParam("user") String user); /** * Get current device count @@ -118,7 +119,7 @@ public interface Device { httpMethod = "GET", value = "Getting the Device Count", notes = "Get the number of devices that are registered with WSO2 EMM.", - response = Integer.class) + response = int.class) @ApiResponses(value = { @ApiResponse(code = 200, message = "Device count"), @ApiResponse(code = 500, message = "Error occurred while fetching the device count") diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/DeviceInformation.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/DeviceInformation.java index 40bd74aa62..0d20230610 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/DeviceInformation.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/DeviceInformation.java @@ -18,14 +18,9 @@ package org.wso2.carbon.device.mgt.jaxrs.api; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; +import io.swagger.annotations.*; import org.wso2.carbon.device.mgt.common.device.details.DeviceInfo; import org.wso2.carbon.device.mgt.common.device.details.DeviceLocation; -import org.wso2.carbon.device.mgt.jaxrs.beans.UserCredentialWrapper; import javax.ws.rs.GET; import javax.ws.rs.Path; @@ -36,7 +31,7 @@ import javax.ws.rs.core.Response; /** * Device information related operations. */ - +@Path("/information") @Api(value = "DeviceInformation", description = "Device information related operations can be found here.") @SuppressWarnings("NonJaxWsWebServices") public interface DeviceInformation { diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/DeviceNotification.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/DeviceNotification.java index 41f1747b34..7941ac81c8 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/DeviceNotification.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/DeviceNotification.java @@ -42,8 +42,9 @@ import javax.ws.rs.core.Response; */ @Api(value = "DeviceNotification", description = "Device notification related operations can be found here.") @SuppressWarnings("NonJaxWsWebServices") +@Path("/notifications") @Produces({"application/json", "application/xml"}) -@Consumes({ "application/json", "application/xml" }) +@Consumes({"application/json", "application/xml"}) public interface DeviceNotification { @GET @@ -57,9 +58,10 @@ public interface DeviceNotification { response = Notification.class, responseContainer = "List") @ApiResponses(value = { - @ApiResponse(code = 200, message = "List of Notifications"), + @ApiResponse(code = 200, message = "List of Notifications", response = Notification.class, + responseContainer = "List"), @ApiResponse(code = 500, message = "Error occurred while retrieving the notification list") - }) + }) Response getNotifications(); @GET @@ -74,12 +76,13 @@ public interface DeviceNotification { response = Notification.class, responseContainer = "List") @ApiResponses(value = { - @ApiResponse(code = 200, message = "List of Notifications"), + @ApiResponse(code = 200, message = "List of Notifications", response = Notification.class, + responseContainer = "List"), @ApiResponse(code = 500, message = "Error occurred while retrieving the notification list") - }) + }) Response getNotificationsByStatus(@ApiParam(name = "status", value = "Provide the notification status as" - + " the value for {status}", required = true) - @PathParam("status") Notification.Status status); + + " the value for {status}", required = true) + @PathParam("status") Notification.Status status); @PUT @Path("{id}/{status}") @@ -93,12 +96,12 @@ public interface DeviceNotification { @ApiResponses(value = { @ApiResponse(code = 201, message = "Notification status updated successfully"), @ApiResponse(code = 500, message = "Error occurred while updating notification status") - }) - Response updateNotificationStatus( @ApiParam(name = "id", value = "Provide the ID of the notification" - + " you wish you update", required = true) @PathParam("id") int id, - @ApiParam(name = "status", value = "Provide the notification status as" - + " the value", required = true) @PathParam("status") - Notification.Status status); + }) + Response updateNotificationStatus(@ApiParam(name = "id", value = "Provide the ID of the notification" + + " you wish you update", required = true) @PathParam("id") int id, + @ApiParam(name = "status", value = "Provide the notification status as" + + " the value", required = true) @PathParam("status") + Notification.Status status); @POST @ApiOperation( @@ -110,7 +113,7 @@ public interface DeviceNotification { @ApiResponses(value = { @ApiResponse(code = 201, message = "NNotification has added successfully"), @ApiResponse(code = 500, message = "Error occurred while updating notification status") - }) + }) Response addNotification(Notification notification); } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/DeviceSearch.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/DeviceSearch.java index 5760813e07..38ea427db5 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/DeviceSearch.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/DeviceSearch.java @@ -18,23 +18,19 @@ package org.wso2.carbon.device.mgt.jaxrs.api; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.wso2.carbon.device.mgt.common.PaginationResult; +import io.swagger.annotations.*; import org.wso2.carbon.device.mgt.common.device.details.DeviceWrapper; import org.wso2.carbon.device.mgt.common.search.SearchContext; import javax.ws.rs.GET; +import javax.ws.rs.Path; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; /** * Device search related operations such as getting device information. */ - +@Path("/search") @Api(value = "DeviceSearch", description = "Device searching related operations can be found here.") @SuppressWarnings("NonJaxWsWebServices") public interface DeviceSearch { @@ -48,9 +44,9 @@ public interface DeviceSearch { response = DeviceWrapper.class, responseContainer = "List") @ApiResponses(value = { - @ApiResponse(code = 200, message = "OK"), + @ApiResponse(code = 200, message = "OK", response = DeviceWrapper.class, responseContainer = "List"), @ApiResponse(code = 500, message = "Error occurred while searching the device information") }) - Response getDeviceInfo(@ApiParam(name = "enrollmentCertificates", value = "List of search conditions", + Response getFilteredDeviceInfo(@ApiParam(name = "enrollmentCertificates", value = "List of search conditions", required = true) SearchContext searchContext); } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Feature.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Feature.java index 5051c153fc..5d85d40d4e 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Feature.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Feature.java @@ -34,6 +34,7 @@ import javax.ws.rs.core.Response; @Api(value = "Feature", description = "Feature management related operations can be found here.") @SuppressWarnings("NonJaxWsWebServices") +@Path("/features") @Produces({"application/json", "application/xml"}) @Consumes({"application/json", "application/xml"}) public interface Feature { diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/License.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/License.java index fe07dce2e3..f8884e818c 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/License.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/License.java @@ -28,6 +28,7 @@ import javax.ws.rs.core.Response; * This class represents license related operations. */ @Api(value = "License") +@Path("/license") @SuppressWarnings("NonJaxWsWebServices") public interface License { diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Operation.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Operation.java index bb54200f16..baefe95816 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Operation.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Operation.java @@ -19,25 +19,19 @@ package org.wso2.carbon.device.mgt.jaxrs.api; import io.swagger.annotations.*; -import org.wso2.carbon.device.mgt.common.PaginationResult; import org.wso2.carbon.device.mgt.common.app.mgt.Application; import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException; import org.wso2.carbon.device.mgt.jaxrs.api.context.DeviceOperationContext; -import org.wso2.carbon.device.mgt.jaxrs.api.util.ResponsePayload; import org.wso2.carbon.device.mgt.jaxrs.beans.ApplicationWrapper; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.QueryParam; +import javax.ws.rs.*; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; /** * */ - +@Path("/operations") @Api(value = "Operation", description = "Operation management related operations can be found here.") public interface Operation { @@ -51,7 +45,7 @@ public interface Operation { consumes = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML, produces = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML, httpMethod = "GET", - value = "Getting Pagination Details for Operations on a Device.", + value = "Getting Paginated Details for Operations on a Device.", notes = "You will carry out many operations on a device. In a situation where you wish to view the all" + " the operations carried out on a device it is not feasible to show all the details on one page" + " therefore the details are paginated." + @@ -59,23 +53,23 @@ public interface Operation { "carried out, the details of the 21 operations will be broken down into 3 pages with 10 operation" + " details per page.", response = org.wso2.carbon.device.mgt.common.operation.mgt.Operation.class) - @ApiResponses(value = { @ApiResponse(code = 200, message = "List of Operations on a device."), - @ApiResponse(code = 500, message = "Error occurred while fetching the operations for the " + - "device.") }) + @ApiResponses(value = {@ApiResponse(code = 200, message = "List of Operations on a device."), + @ApiResponse(code = 500, message = "Error occurred while fetching the operations for the " + + "device.")}) Response getDeviceOperations(@ApiParam(name = "type", value = "Define the device type as the value for {type}. " + - "Example: ios, android or windows.", - required = true) @PathParam("type") String type, + "Example: ios, android or windows.", + required = true) @PathParam("type") String type, @ApiParam(name = "id", value = "Define the device ID", - required = true) @PathParam("id") String id, + required = true) @PathParam("id") String id, @ApiParam(name = "start", value = "Provide the starting pagination index. Example 10", - required = true) @QueryParam("start") int startIdx, + required = true) @QueryParam("start") int startIdx, @ApiParam(name = "length", value = "Provide how many device details you require from" + - " the starting pagination index. For example if " + - "you require the device details from the 10th " + - "pagination index to the 15th, " + - "you must define 10 as the value for start and 5 " + - "as the value for length.", - required = true) @QueryParam("length") int length, + " the starting pagination index. For example if " + + "you require the device details from the 10th " + + "pagination index to the 15th, " + + "you must define 10 as the value for start and 5 " + + "as the value for length.", + required = true) @QueryParam("length") int length, @QueryParam("search") String search); @GET @@ -88,14 +82,14 @@ public interface Operation { responseContainer = "List", notes = "Get the details of operations carried out on a selected device.", response = org.wso2.carbon.device.mgt.common.operation.mgt.Operation.class) - @ApiResponses(value = { @ApiResponse(code = 200, message = "List of Operations on a device."), - @ApiResponse(code = 500, message = "Error occurred while fetching the operations for the " + - "device.") }) - Response getDeviceOperations(@ApiParam(name = "type", value = "Define the device type as the value for {type}. " + - "Example: ios, android or windows.", - required = true) @PathParam("type") String type, - @ApiParam(name = "id", value = "Define the device ID", - required = true) @PathParam("id") String id); + @ApiResponses(value = {@ApiResponse(code = 200, message = "List of Operations on a device."), + @ApiResponse(code = 500, message = "Error occurred while fetching the operations for the " + + "device.")}) + Response getAllDeviceOperations(@ApiParam(name = "type", value = "Define the device type as the value for {type}. " + + "Example: ios, android or windows.", + required = true) @PathParam("type") String type, + @ApiParam(name = "id", value = "Define the device ID", + required = true) @PathParam("id") String id); /* @deprecated */ @POST @@ -111,14 +105,14 @@ public interface Operation { responseContainer = "List", notes = "Get the list of applications that a device has subscribed.", response = Application.class) - @ApiResponses(value = { @ApiResponse(code = 200, message = "List of installed application details of a device."), - @ApiResponse(code = 500, message = "Error occurred while fetching the apps of the device" + - ".") }) + @ApiResponses(value = {@ApiResponse(code = 200, message = "List of installed application details of a device.", response = Application.class, responseContainer = "List"), + @ApiResponse(code = 500, message = "Error occurred while fetching the apps of the device" + + ".")}) Response getInstalledApps(@ApiParam(name = "type", value = "Define the device type as the value for {type}. " + - "Example: ios, android or windows.", - required = true) @PathParam("type") String type, + "Example: ios, android or windows.", + required = true) @PathParam("type") String type, @ApiParam(name = "id", value = "Define the device ID", - required = true) @PathParam("id") String id); + required = true) @PathParam("id") String id); @POST @Path("installApp/{tenantDomain}") @@ -128,16 +122,16 @@ public interface Operation { httpMethod = "POST", value = "Installing an Application on a Device.", notes = "Install a selected application on a device.") - @ApiResponses(value = { @ApiResponse(code = 200, message = "Operation was successfully added to the queue."), - @ApiResponse(code = 500, message = "Error occurred while saving the operation.") }) + @ApiResponses(value = {@ApiResponse(code = 200, message = "Operation was successfully added to the queue."), + @ApiResponse(code = 500, message = "Error occurred while saving the operation.")}) Response installApplication(@ApiParam(name = "applicationWrapper", value = "Details about the application and the" + - " users and roles it should be " + - "installed on.", - required = true) ApplicationWrapper applicationWrapper, + " users and roles it should be " + + "installed on.", + required = true) ApplicationWrapper applicationWrapper, @ApiParam(name = "tenantDomain", value = "Provide the tenant domain as the value for " + - "{tenantDomain}. The default tenant domain " + - "of WSO2 EMM is carbon.super.", - required = true) @PathParam("tenantDomain") String tenantDomain); + "{tenantDomain}. The default tenant domain " + + "of WSO2 EMM is carbon.super.", + required = true) @PathParam("tenantDomain") String tenantDomain); @POST @Path("uninstallApp/{tenantDomain}") @@ -147,16 +141,16 @@ public interface Operation { httpMethod = "POST", value = "Uninstalling an Application from a Device.", notes = "Uninstall a selected application from a device.") - @ApiResponses(value = { @ApiResponse(code = 200, message = "Operation was successfully added to the queue."), - @ApiResponse(code = 500, message = "Error occurred while saving the operation.") }) + @ApiResponses(value = {@ApiResponse(code = 200, message = "Operation was successfully added to the queue."), + @ApiResponse(code = 500, message = "Error occurred while saving the operation.")}) Response uninstallApplication(@ApiParam(name = "applicationWrapper", value = "Details about the application and" + - " the users and roles it should be " + - "uninstalled.", - required = true) ApplicationWrapper applicationWrapper, + " the users and roles it should be " + + "uninstalled.", + required = true) ApplicationWrapper applicationWrapper, @ApiParam(name = "tenantDomain", value = "Provide the tenant domain as the value for " + - "{tenantDomain}. The default tenant domain " + - "of WSO2 EMM is carbon.super.", - required = true) @PathParam("tenantDomain") String tenantDomain); + "{tenantDomain}. The default tenant domain " + + "of WSO2 EMM is carbon.super.", + required = true) @PathParam("tenantDomain") String tenantDomain); @GET @@ -167,8 +161,8 @@ public interface Operation { httpMethod = "POST", value = "Retrieving the operation details.", notes = "This will return the operation details including the responses from the devices") - @ApiResponses(value = { @ApiResponse(code = 200, message = "Activity details provided successfully.."), - @ApiResponse(code = 500, message = "Error occurred while fetching the activity for the supplied id.") }) + @ApiResponses(value = {@ApiResponse(code = 200, message = "Activity details provided successfully.."), + @ApiResponse(code = 500, message = "Error occurred while fetching the activity for the supplied id.")}) Response getActivity(@ApiParam(name = "id", value = "Provide activity id {id} as ACTIVITY_(number)", required = true) @PathParam("id") String id) throws MDMAPIException; diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Policy.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Policy.java index 57a5521328..7189cff0e4 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Policy.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Policy.java @@ -20,25 +20,15 @@ package org.wso2.carbon.device.mgt.jaxrs.api; import io.swagger.annotations.*; import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException; -import org.wso2.carbon.device.mgt.jaxrs.api.util.ResponsePayload; import org.wso2.carbon.device.mgt.jaxrs.beans.PolicyWrapper; import org.wso2.carbon.device.mgt.jaxrs.beans.PriorityUpdatedPolicyWrapper; -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; +import javax.ws.rs.*; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import java.util.List; -/** - * - */ - +@Path("/policies") @Api(value = "Policy", description = "Policy management related operations can be found here.") public interface Policy { @@ -52,11 +42,11 @@ public interface Policy { notes = "Add a policy using this REST API command. When adding a policy you will have the option of " + "saving the policy or saving and publishing the policy. Using the REST API command given below " + "you are able to save a created Policy and this policy will be in the inactive state") - @ApiResponses(value = { @ApiResponse(code = 201, message = "Created the policy."), - @ApiResponse(code = 500, message = "Policy Management related error occurred when " + - "adding the policy") }) + @ApiResponses(value = {@ApiResponse(code = 201, message = "Created the policy."), + @ApiResponse(code = 500, message = "Policy Management related error occurred when " + + "adding the policy")}) Response addPolicy(@ApiParam(name = "policyWrapper", value = "Policy details related to the operation.", - required = true) PolicyWrapper policyWrapper); + required = true) PolicyWrapper policyWrapper); @POST @Path("active-policy") @@ -69,14 +59,14 @@ public interface Policy { "will have the option of saving the policy or saving and publishing the policy. Using the REST " + "API command given below you are able to save and publish a created policy and this policy will " + "be in the active state.") - @ApiResponses(value = { @ApiResponse(code = 201, message = "Created the policy."), - @ApiResponse(code = 500, message = "Policy Management related error occurred when " + - "adding the policy") }) + @ApiResponses(value = {@ApiResponse(code = 201, message = "Created the policy."), + @ApiResponse(code = 500, message = "Policy Management related error occurred when " + + "adding the policy")}) Response addActivePolicy(@ApiParam(name = "policyWrapper", value = "Policy details related to the operation.", - required = true) PolicyWrapper policyWrapper); + required = true) PolicyWrapper policyWrapper); @GET - @Produces({ MediaType.APPLICATION_JSON}) + @Produces({MediaType.APPLICATION_JSON}) @ApiOperation( consumes = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON, @@ -85,9 +75,10 @@ public interface Policy { responseContainer = "List", notes = "Retrieve the details of all the policies that you have created in WSO2 EMM.", response = org.wso2.carbon.policy.mgt.common.Policy.class) - @ApiResponses(value = { @ApiResponse(code = 200, message = "Fetched all policies."), - @ApiResponse(code = 500, message = "Policy Management related error occurred when " + - "fetching the policies.") }) + @ApiResponses(value = {@ApiResponse(code = 200, message = "Fetched all policies.", + response = org.wso2.carbon.policy.mgt.common.Policy.class, responseContainer = "List"), + @ApiResponse(code = 500, message = "Policy Management related error occurred when " + + "fetching the policies.")}) Response getAllPolicies(); @GET @@ -100,11 +91,11 @@ public interface Policy { value = "Getting Details of a Policy.", notes = "Retrieve the details of a selected policy in WSO2 EMM.", response = org.wso2.carbon.policy.mgt.common.Policy.class) - @ApiResponses(value = { @ApiResponse(code = 200, message = "Fetched policy details."), - @ApiResponse(code = 500, message = "Policy Management related error occurred when " + - "fetching the policies.") }) + @ApiResponses(value = {@ApiResponse(code = 200, message = "Fetched policy details."), + @ApiResponse(code = 500, message = "Policy Management related error occurred when " + + "fetching the policies.")}) Response getPolicy(@ApiParam(name = "id", value = "Policy ID value to identify a policy uniquely.", - required = true) @PathParam("id") int policyId); + required = true) @PathParam("id") int policyId); @GET @Path("count") @@ -114,9 +105,9 @@ public interface Policy { httpMethod = "GET", value = "Getting the Policy Count.", notes = "Get the number of policies that are created in WSO2 EMM.", - response = Integer.class) - @ApiResponses(value = { @ApiResponse(code = 200, message = "Fetched the policy count."), - @ApiResponse(code = 500, message = "Error while Fetching the policy count.") }) + response = int.class) + @ApiResponses(value = {@ApiResponse(code = 200, message = "Fetched the policy count."), + @ApiResponse(code = 500, message = "Error while Fetching the policy count.")}) Response getPolicyCount(); @PUT @@ -128,13 +119,13 @@ public interface Policy { value = "Updating a Policy.", notes = "If you wish to make changes to an existing policy, you can do so by updating the policy using " + "this API") - @ApiResponses(value = { @ApiResponse(code = 201, message = "Policy has been updated successfully."), - @ApiResponse(code = 500, message = "Policy Management related exception in policy " + - "update") }) + @ApiResponses(value = {@ApiResponse(code = 201, message = "Policy has been updated successfully."), + @ApiResponse(code = 500, message = "Policy Management related exception in policy " + + "update")}) Response updatePolicy(@ApiParam(name = "policyWrapper", value = "Policy details related to the operation.", - required = true) PolicyWrapper policyWrapper, + required = true) PolicyWrapper policyWrapper, @ApiParam(name = "id", value = "Policy ID value to identify a policy uniquely.", - required = true) @PathParam("id") int policyId); + required = true) @PathParam("id") int policyId); @PUT @Path("priorities") @@ -147,12 +138,12 @@ public interface Policy { value = "Updating the Policy Priority.", notes = "If you wish to make changes to the existing policy priority order, " + "you can do so by updating the priority order using this API") - @ApiResponses(value = { @ApiResponse(code = 200, message = "Policy Priorities successfully updated."), - @ApiResponse(code = 400, message = "Policy priorities did not update."), - @ApiResponse(code = 500, message = "Error in updating policy priorities.") }) + @ApiResponses(value = {@ApiResponse(code = 200, message = "Policy Priorities successfully updated."), + @ApiResponse(code = 400, message = "Policy priorities did not update."), + @ApiResponse(code = 500, message = "Error in updating policy priorities.")}) Response updatePolicyPriorities(@ApiParam(name = "priorityUpdatedPolicies", - value = "List of policy update details..", - required = true) List priorityUpdatedPolicies); + value = "List of policy update details..", + required = true) List priorityUpdatedPolicies); @POST @Path("bulk-remove") @@ -164,11 +155,11 @@ public interface Policy { httpMethod = "POST", value = "Removing Multiple Policies.", notes = "In situations where you need to delete more than one policy you can do so using this API.") - @ApiResponses(value = { @ApiResponse(code = 200, message = "Policies have been successfully deleted."), - @ApiResponse(code = 400, message = "Policy does not exist."), - @ApiResponse(code = 500, message = "Error in deleting policies.") }) + @ApiResponses(value = {@ApiResponse(code = 200, message = "Policies have been successfully deleted."), + @ApiResponse(code = 400, message = "Policy does not exist."), + @ApiResponse(code = 500, message = "Error in deleting policies.")}) Response bulkRemovePolicy(@ApiParam(name = "policyIds", value = "Policy ID list to be deleted.", - required = true) List policyIds); + required = true) List policyIds); @PUT @Produces("application/json") @@ -180,10 +171,10 @@ public interface Policy { value = "Activating Policies.", notes = "Using the REST API command you are able to publish a policy in order to bring a policy that is " + "in the inactive state to the active state.") - @ApiResponses(value = { @ApiResponse(code = 200, message = "Policies have been successfully activated."), - @ApiResponse(code = 500, message = "Error in activating policies.") }) + @ApiResponses(value = {@ApiResponse(code = 200, message = "Policies have been successfully activated."), + @ApiResponse(code = 500, message = "Error in activating policies.")}) Response activatePolicy(@ApiParam(name = "policyIds", value = "Policy ID list to be activated.", - required = true) List policyIds); + required = true) List policyIds); @PUT @Produces("application/json") @@ -195,10 +186,10 @@ public interface Policy { value = "Deactivating Policies.", notes = "Using the REST API command you are able to unpublish a policy in order to bring a policy that " + "is in the active state to the inactive state.") - @ApiResponses(value = { @ApiResponse(code = 200, message = "Policies have been successfully deactivated."), - @ApiResponse(code = 500, message = "Error in deactivating policies.") }) + @ApiResponses(value = {@ApiResponse(code = 200, message = "Policies have been successfully deactivated."), + @ApiResponse(code = 500, message = "Error in deactivating policies.")}) Response inactivatePolicy(@ApiParam(name = "policyIds", value = "Policy ID list to be deactivated.", - required = true) List policyIds) throws MDMAPIException; + required = true) List policyIds) throws MDMAPIException; @PUT @Produces("application/json") @@ -213,8 +204,8 @@ public interface Policy { " policies (removing, activating, deactivating and updating) or add new policies, the existing" + " devices will not receive these changes immediately. Once all the required changes are made" + " you need to apply the changes to push the policy changes to the existing devices.") - @ApiResponses(value = { @ApiResponse(code = 200, message = "Changes have been successfully updated."), - @ApiResponse(code = 500, message = "Error in updating policies.") }) + @ApiResponses(value = {@ApiResponse(code = 200, message = "Changes have been successfully updated."), + @ApiResponse(code = 500, message = "Error in updating policies.")}) Response applyChanges(); @GET @@ -229,11 +220,11 @@ public interface Policy { "It will monitor the device based on the policy monitoring frequency that you define in " + "milliseconds.Using this REST API to start the policy monitoring task is optional as " + "WSO2 EMM uses an OSGI call to start the monitoring task") - @ApiResponses(value = { @ApiResponse(code = 200, message = "Policy monitoring service started successfully."), - @ApiResponse(code = 500, message = "Policy Management related exception when starting " + - "monitoring service.") }) + @ApiResponses(value = {@ApiResponse(code = 200, message = "Policy monitoring service started successfully."), + @ApiResponse(code = 500, message = "Policy Management related exception when starting " + + "monitoring service.")}) Response startTaskService(@ApiParam(name = "milliseconds", value = "Policy monitoring frequency in milliseconds.", - required = true) @PathParam("milliseconds") int monitoringFrequency); + required = true) @PathParam("milliseconds") int monitoringFrequency); @GET @Path("update-task/{milliseconds}") @@ -258,11 +249,11 @@ public interface Policy { "filters the policies based on the Platform (device type), filters based on the device ownership" + " type , filters based on the user role or name and finally the policy is enforced on the device.", response = org.wso2.carbon.policy.mgt.common.Policy.class) - @ApiResponses(value = { @ApiResponse(code = 200, message = "Fetched current policy."), - @ApiResponse(code = 500, message = "Error occurred while getting the current policy.") }) + @ApiResponses(value = {@ApiResponse(code = 200, message = "Fetched current policy."), + @ApiResponse(code = 500, message = "Error occurred while getting the current policy.")}) Response getDeviceActivePolicy(@ApiParam(name = "type", value = "Define the device type as the value for {type}." + - " Example: ios, android, windows..", - required = true) @PathParam("type") String type, + " Example: ios, android, windows..", + required = true) @PathParam("type") String type, @ApiParam(name = "id", value = "Define the device ID as the value for {id}.", - required = true) @PathParam("id") String id); + required = true) @PathParam("id") String id); } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Profile.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Profile.java index 182b1adbf6..7762048499 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Profile.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Profile.java @@ -30,6 +30,7 @@ import javax.ws.rs.core.Response; * These end points provide profile related operations. */ @Api(value = "Profile") +@Path("/profiles") @SuppressWarnings("NonJaxWsWebServices") public interface Profile { diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Role.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Role.java index a179d32e42..a9cc10cf83 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Role.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Role.java @@ -19,26 +19,15 @@ package org.wso2.carbon.device.mgt.jaxrs.api; import io.swagger.annotations.*; -import org.wso2.carbon.device.mgt.common.app.mgt.Application; -import org.wso2.carbon.device.mgt.jaxrs.api.util.ResponsePayload; import org.wso2.carbon.device.mgt.jaxrs.beans.RoleWrapper; import org.wso2.carbon.user.mgt.common.UIPermissionNode; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; +import javax.ws.rs.*; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import java.util.List; -/** - * - */ +@Path("/roles") @Api(value = "Role", description = "Role management related operations can be found here.") public interface Role { @@ -54,7 +43,7 @@ public interface Role { response = String.class) @ApiResponses(value = { @ApiResponse(code = 200, message = "List of available roles"), @ApiResponse(code = 500, message = "Error occurred while fetching the role list.") }) - Response getRoles(); + Response getAllRoles(); @GET @Path("{userStore}") @@ -69,7 +58,7 @@ public interface Role { response = String.class) @ApiResponses(value = { @ApiResponse(code = 200, message = "List of available roles"), @ApiResponse(code = 500, message = "Error occurred while fetching the role list.") }) - Response getRoles(@ApiParam(name = "userStore", value = "Provide the name of the UserStore you wish to get the" + + Response getRolesOfUserStore(@ApiParam(name = "userStore", value = "Provide the name of the UserStore you wish to get the" + " details from ", required = true) @PathParam("userStore") String userStore); @@ -203,9 +192,10 @@ public interface Role { produces = MediaType.APPLICATION_JSON, httpMethod = "GET", value = "Getting the Role Count.", - response = Integer.class, + response = int.class, notes = "Get the number of roles in WSO2 EMM.") @ApiResponses(value = { @ApiResponse(code = 200, message = "Retrieved the role count."), @ApiResponse(code = 500, message = "Error occurred while retrieving the role count.") }) Response getRoleCount(); + } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/User.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/User.java index c3aefdbd82..7ac2eeab7f 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/User.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/User.java @@ -18,25 +18,12 @@ package org.wso2.carbon.device.mgt.jaxrs.api; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; +import io.swagger.annotations.*; import org.apache.axis2.databinding.types.soapencoding.Integer; -import org.wso2.carbon.device.mgt.jaxrs.api.util.ResponsePayload; import org.wso2.carbon.device.mgt.jaxrs.beans.UserCredentialWrapper; import org.wso2.carbon.device.mgt.jaxrs.beans.UserWrapper; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; +import javax.ws.rs.*; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import java.util.List; @@ -44,6 +31,7 @@ import java.util.List; /** * This represents the JAX-RS services of User related functionality. */ +@Path("/users") @Api(value = "User", description = "User management related operations can be found here.") public interface User { @@ -138,7 +126,7 @@ public interface User { @ApiResponse(code = 400, message = "User by username: 'username' does not exist for role retrieval"), @ApiResponse(code = 500, message = "Exception in trying to retrieve roles for user by username: 'username'") }) - Response getRoles(@ApiParam(name = "username", value = "Provide the user name of the user you wish to get" + Response getRolesOfUser(@ApiParam(name = "username", value = "Provide the user name of the user you wish to get" + " the role details", required = true) @QueryParam("username") String username); @GET @@ -253,7 +241,7 @@ public interface User { httpMethod = "GET", value = "Getting the User Count", notes = "Get the number of users in WSO2 EMM", - response = Integer.class) + response = int.class) @ApiResponses(value = { @ApiResponse(code = 200, message = "OK"), @ApiResponse(code = 500, message = "Error occurred while retrieving the list of users that exist" @@ -264,7 +252,7 @@ public interface User { @PUT @Path("{roleName}/users") @Produces({MediaType.APPLICATION_JSON}) - Response updateRoles(@PathParam("username") String username, List userList); + Response updateRoles(@PathParam("roleName") String roleName, List userList); @POST @Path("change-password") diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/AuthenticationImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/AuthenticationImpl.java deleted file mode 100644 index 8bc0cd78d8..0000000000 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/AuthenticationImpl.java +++ /dev/null @@ -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.device.mgt.jaxrs.api.impl; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import javax.ws.rs.Consumes; -import javax.ws.rs.Produces; - -/** - * Authentication related REST-API implementation. - */ -@Produces({ "application/json", "application/xml" }) -@Consumes({ "application/json", "application/xml" }) -public class AuthenticationImpl { - - private static Log log = LogFactory.getLog(AuthenticationImpl.class); -} - diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/DeviceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/DeviceImpl.java index e25b9b9288..19ea361c08 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/DeviceImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/DeviceImpl.java @@ -142,7 +142,7 @@ public class DeviceImpl implements Device{ */ @GET @Path("user/{user}") - public Response getDevice(@PathParam("user") String user) { + public Response getDeviceOfUser(@PathParam("user") String user) { List devices; try { devices = DeviceMgtAPIUtils.getDeviceManagementService().getDevicesOfUser(user); @@ -165,7 +165,7 @@ public class DeviceImpl implements Device{ */ @GET @Path("user/{user}/count") - public Response getDeviceCount(@PathParam("user") String user) { + public Response getDeviceCountOfUser(@PathParam("user") String user) { try { Integer count = DeviceMgtAPIUtils.getDeviceManagementService().getDeviceCount(user); return Response.status(Response.Status.OK).entity(count).build(); diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/DeviceSearchImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/DeviceSearchImpl.java index 4582fa24d3..7ed9576d0b 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/DeviceSearchImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/DeviceSearchImpl.java @@ -38,7 +38,7 @@ public class DeviceSearchImpl implements DeviceSearch { private static Log log = LogFactory.getLog(DeviceSearchImpl.class); @GET - public Response getDeviceInfo(SearchContext searchContext) { + public Response getFilteredDeviceInfo(SearchContext searchContext) { SearchManagerService searchManagerService; List devices; try { diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/OperationImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/OperationImpl.java index 8306682668..edd4fc1906 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/OperationImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/OperationImpl.java @@ -103,7 +103,7 @@ public class OperationImpl implements org.wso2.carbon.device.mgt.jaxrs.api.Opera @Override @GET @Path("{type}/{id}") - public Response getDeviceOperations(@PathParam("type") String type, @PathParam("id") String id) { + public Response getAllDeviceOperations(@PathParam("type") String type, @PathParam("id") String id) { List operations; DeviceManagementProviderService dmService; DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/RoleImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/RoleImpl.java index 739f5f5678..278a7dfd26 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/RoleImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/RoleImpl.java @@ -65,7 +65,7 @@ public class RoleImpl implements org.wso2.carbon.device.mgt.jaxrs.api.Role { @Override @GET @Produces({MediaType.APPLICATION_JSON}) - public Response getRoles() { + public Response getAllRoles() { List filteredRoles; try { filteredRoles = getRolesFromUserStore(); @@ -89,7 +89,7 @@ public class RoleImpl implements org.wso2.carbon.device.mgt.jaxrs.api.Role { @GET @Path("{userStore}") @Produces({MediaType.APPLICATION_JSON}) - public Response getRoles(@PathParam("userStore") String userStore) { + public Response getRolesOfUserStore(@PathParam("userStore") String userStore) { String[] roles; try { AbstractUserStoreManager abstractUserStoreManager = diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/UserImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/UserImpl.java index 2b136e6131..427a654e54 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/UserImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/UserImpl.java @@ -371,7 +371,7 @@ public class UserImpl implements org.wso2.carbon.device.mgt.jaxrs.api.User { @GET @Path("roles") @Produces({MediaType.APPLICATION_JSON}) - public Response getRoles(@QueryParam("username") String username) { + public Response getRolesOfUser(@QueryParam("username") String username) { ResponsePayload responsePayload = new ResponsePayload(); try { UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager(); @@ -716,7 +716,7 @@ public class UserImpl implements org.wso2.carbon.device.mgt.jaxrs.api.User { @PUT @Path("{roleName}/users") @Produces({MediaType.APPLICATION_JSON}) - public Response updateRoles(@PathParam("username") String username, List userList) { + public Response updateRoles(@PathParam("roleName") String username, List userList) { try { final UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager(); if (log.isDebugEnabled()) { diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/ApplicationWrapper.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/ApplicationWrapper.java index bb43a97643..1040045dde 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/ApplicationWrapper.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/ApplicationWrapper.java @@ -21,51 +21,54 @@ package org.wso2.carbon.device.mgt.jaxrs.beans; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import org.wso2.carbon.device.mgt.common.DeviceIdentifier; + import java.util.List; @ApiModel(value = "ApplicationWrapper", description = "Application details together with user, " + - "role or devices the application is associated with.") + "role or devices the application is associated with.") public class ApplicationWrapper { - @ApiModelProperty(name = "userNameList", value = "List of user names.", required = true ) - private List userNameList; - @ApiModelProperty(name = "roleNameList", value = "List of role names.", required = true ) - private List roleNameList; - @ApiModelProperty(name = "deviceIdentifiers", value = "List of device identifiers.", required = true ) - private List deviceIdentifiers; - @ApiModelProperty(name = "application", value = "Details of the mobile application.", required = true ) - private MobileApp application; + @ApiModelProperty(name = "userNameList", value = "List of user names.", required = true) + private List userNameList; + @ApiModelProperty(name = "roleNameList", value = "List of role names.", required = true) + private List roleNameList; + @ApiModelProperty(name = "deviceIdentifiers", value = "List of device identifiers.", required = true, + dataType = "List[org.wso2.carbon.device.mgt.common.DeviceIdentifier]") + private List deviceIdentifiers; + @ApiModelProperty(name = "application", value = "Details of the mobile application.", required = true) + private MobileApp application; + + public MobileApp getApplication() { + return application; + } - public MobileApp getApplication() { - return application; - } + public void setApplication(MobileApp application) { + this.application = application; + } - public void setApplication(MobileApp application) { - this.application = application; - } - public List getUserNameList() { - return userNameList; - } + public List getUserNameList() { + return userNameList; + } - public void setUserNameList(List userNameList) { - this.userNameList = userNameList; - } + public void setUserNameList(List userNameList) { + this.userNameList = userNameList; + } - public List getRoleNameList() { - return roleNameList; - } + public List getRoleNameList() { + return roleNameList; + } - public void setRoleNameList(List roleNameList) { - this.roleNameList = roleNameList; - } + public void setRoleNameList(List roleNameList) { + this.roleNameList = roleNameList; + } - public List getDeviceIdentifiers() { - return deviceIdentifiers; - } + public List getDeviceIdentifiers() { + return deviceIdentifiers; + } - public void setDeviceIdentifiers(List deviceIdentifiers) { - this.deviceIdentifiers = deviceIdentifiers; - } + public void setDeviceIdentifiers(List deviceIdentifiers) { + this.deviceIdentifiers = deviceIdentifiers; + } } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/MobileApp.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/MobileApp.java index dd6a699c6c..fe7f4e0268 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/MobileApp.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/MobileApp.java @@ -27,42 +27,42 @@ import java.util.Properties; * This class represents the generic mobile AuthenticationImpl information * which is used by AppM. */ -@ApiModel(value = "ApplicationWrapper", description = "Details of a mobile application.") +@ApiModel(value = "MobileApp", description = "Details of a mobile application.") public class MobileApp { - @ApiModelProperty(name = "id", value = "Id of the app used internally.", required = true ) + @ApiModelProperty(name = "id", value = "Id of the app used internally.", required = true) private String id; - @ApiModelProperty(name = "name", value = "The name of the application.", required = true ) + @ApiModelProperty(name = "name", value = "The name of the application.", required = true) private String name; @ApiModelProperty(name = "type", value = "The type of the application. The following types of applications are " + - "supported: enterprise, public and webapp..", required = true ) + "supported: enterprise, public and webapp..", required = true) private MobileAppTypes type; - @ApiModelProperty(name = "platform", value = "Platform the app can be installed on .", required = true ) + @ApiModelProperty(name = "platform", value = "Platform the app can be installed on .", required = true) private String platform; - @ApiModelProperty(name = "version", value = "Version of the application.", required = true ) + @ApiModelProperty(name = "version", value = "Version of the application.", required = true) private String version; - @ApiModelProperty(name = "identifier", value = "The package name of the application.", required = true ) + @ApiModelProperty(name = "identifier", value = "The package name of the application.", required = true) private String identifier; - @ApiModelProperty(name = "iconImage", value = "Link to the icon of the app.", required = true ) + @ApiModelProperty(name = "iconImage", value = "Link to the icon of the app.", required = true) private String iconImage; @ApiModelProperty(name = "packageName", value = "Define the exact name of the application package. You can use one " + - "of the following methods to get the package name.\n" + - "Go to the respective application in the play store and copy the" + - " ID or package name from the URL.\n" + - "Example: The play store application URL for the Viber app is " + - "https://play.google.com/store/apps/details?id=com.viber.voip&hl=en." + - " Therefore, the package name or " + - "the application ID is: id=com.viber.voip \n" + - "Download the System Info for Android to your device from the" + - " play store. \n" + - "Once the application is successfully installed go to the Tasks " + - "tab and you will see the package name under the respective " + - "application..", required = true ) + "of the following methods to get the package name.\n" + + "Go to the respective application in the play store and copy the" + + " ID or package name from the URL.\n" + + "Example: The play store application URL for the Viber app is " + + "https://play.google.com/store/apps/details?id=com.viber.voip&hl=en." + + " Therefore, the package name or " + + "the application ID is: id=com.viber.voip \n" + + "Download the System Info for Android to your device from the" + + " play store. \n" + + "Once the application is successfully installed go to the Tasks " + + "tab and you will see the package name under the respective " + + "application..", required = true) private String packageName; - @ApiModelProperty(name = "appIdentifier", value = "The package name of the application.", required = true ) + @ApiModelProperty(name = "appIdentifier", value = "The package name of the application.", required = true) private String appIdentifier; private String location; - @ApiModelProperty(name = "properties", value = "List of meta data.", required = true ) + @ApiModelProperty(name = "properties", value = "List of meta data.", required = true) private Properties properties; public MobileAppTypes getType() { diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/Profile.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/Profile.java index cad8906371..17f8b905bf 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/Profile.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/Profile.java @@ -18,11 +18,10 @@ package org.wso2.carbon.device.mgt.jaxrs.beans; - - import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import org.wso2.carbon.device.mgt.core.dto.DeviceType; + import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import java.sql.Timestamp; @@ -118,4 +117,5 @@ public class Profile { public void setProfileFeaturesList(List profileFeaturesList) { this.profileFeaturesList = profileFeaturesList; } + } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/RoleWrapper.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/RoleWrapper.java index ed8cfda09c..c0856021e2 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/RoleWrapper.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/RoleWrapper.java @@ -23,54 +23,54 @@ import io.swagger.annotations.ApiModelProperty; import org.wso2.carbon.user.mgt.common.UIPermissionNode; @ApiModel(value = "RoleWrapper", description = "Role details including permission and the users in the roles are " + - "wrapped here.") + "wrapped here.") public class RoleWrapper { @ApiModelProperty(name = "roleName", value = "The name of the role.", required = true) - private String roleName; + private String roleName; @ApiModelProperty(name = "permissions", value = "Lists out all the permissions associated with roles.", - required = true) - private String[] permissions; + required = true, dataType = "List[java.lang.String]") + private String[] permissions; @ApiModelProperty(name = "users", value = "The list of users assigned to the selected role.", - required = true) - private String[] users; + required = true, dataType = "List[java.lang.String]") + private String[] users; @ApiModelProperty(name = "permissionList", value = "This contain the following, " + - "\n resourcePath\tThe path related to the API.\n " + - "displayName\tThe name of the permission that is shown " + - "in the UI.\n" + - "nodeList\tLists out the nested permissions.", - required = true) - private UIPermissionNode permissionList; + "\n resourcePath\tThe path related to the API.\n " + + "displayName\tThe name of the permission that is shown " + + "in the UI.\n" + + "nodeList\tLists out the nested permissions.", + required = true) + private UIPermissionNode permissionList; - public String getRoleName() { - return roleName; - } + public String getRoleName() { + return roleName; + } - public void setRoleName(String roleName) { - this.roleName = roleName; - } + public void setRoleName(String roleName) { + this.roleName = roleName; + } - public String[] getPermissions() { - return permissions; - } + public String[] getPermissions() { + return permissions; + } - public void setPermissions(String[] permissions) { - this.permissions = permissions; - } + public void setPermissions(String[] permissions) { + this.permissions = permissions; + } - public String[] getUsers() { - return users; - } + public String[] getUsers() { + return users; + } - public void setUsers(String[] users) { - this.users = users; - } + public void setUsers(String[] users) { + this.users = users; + } - public UIPermissionNode getPermissionList() { - return permissionList; - } + public UIPermissionNode getPermissionList() { + return permissionList; + } - public void setPermissionList(UIPermissionNode permissionList) { - this.permissionList = permissionList; - } + public void setPermissionList(UIPermissionNode permissionList) { + this.permissionList = permissionList; + } } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/webapp/WEB-INF/cxf-servlet.xml b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/webapp/WEB-INF/cxf-servlet.xml index 3f2159018c..05d9a6d8b4 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/webapp/WEB-INF/cxf-servlet.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/webapp/WEB-INF/cxf-servlet.xml @@ -24,145 +24,46 @@ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd"> - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + + + + + + + + + + + + + + + + @@ -175,9 +76,6 @@ - diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/webapp/WEB-INF/web.xml b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/webapp/WEB-INF/web.xml index ab8d04cbe8..97f0970968 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/webapp/WEB-INF/web.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/webapp/WEB-INF/web.xml @@ -25,6 +25,16 @@ org.apache.cxf.transport.servlet.CXFServlet + + + + + + + + swagger.security.filter + ApiAuthorizationFilterImpl + 1 @@ -41,7 +51,7 @@ doAuthentication - true + false