From 59619eed9ff7cadac455e360a25e3d151dba47c5 Mon Sep 17 00:00:00 2001 From: "m.dalakov" Date: Fri, 6 Apr 2018 11:36:07 +0300 Subject: [PATCH] SECARSP-306 *Implement AuditTrail APIs for Dashboard: *Get device audit reports: sharing download report url --- .../config/MicroserviceSecurityConfiguration.java | 1 + .../web/rest/controller/IRestDashboard.java | 17 ---------- .../web/rest/controller/IRestSharing.java | 32 +++++++++++++++++++ .../web/rest/controller/impl/RestDashboard.java | 9 ------ .../web/rest/controller/impl/RestSharing.java | 37 ++++++++++++++++++++++ .../service/ui/GetDeviceReportsRestService.java | 2 +- 6 files changed, 71 insertions(+), 27 deletions(-) create mode 100644 server/samserver/src/main/java/com/samsung/samserver/web/rest/controller/IRestSharing.java create mode 100644 server/samserver/src/main/java/com/samsung/samserver/web/rest/controller/impl/RestSharing.java diff --git a/server/samserver/src/main/java/com/samsung/samserver/config/MicroserviceSecurityConfiguration.java b/server/samserver/src/main/java/com/samsung/samserver/config/MicroserviceSecurityConfiguration.java index be7eec4..e8fa01f 100644 --- a/server/samserver/src/main/java/com/samsung/samserver/config/MicroserviceSecurityConfiguration.java +++ b/server/samserver/src/main/java/com/samsung/samserver/config/MicroserviceSecurityConfiguration.java @@ -76,6 +76,7 @@ public class MicroserviceSecurityConfiguration extends WebSecurityConfigurerAdap .antMatchers("/test/**") .antMatchers("/h2-console/**") .antMatchers("/api/device-service/**") + .antMatchers("/audit/reports/**") ; } diff --git a/server/samserver/src/main/java/com/samsung/samserver/web/rest/controller/IRestDashboard.java b/server/samserver/src/main/java/com/samsung/samserver/web/rest/controller/IRestDashboard.java index 5d5562e..d607caa 100644 --- a/server/samserver/src/main/java/com/samsung/samserver/web/rest/controller/IRestDashboard.java +++ b/server/samserver/src/main/java/com/samsung/samserver/web/rest/controller/IRestDashboard.java @@ -13,7 +13,6 @@ import org.springframework.data.web.PageableDefault; import org.springframework.http.*; import org.springframework.web.bind.annotation.*; import io.swagger.annotations.*; -import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; import java.util.List; @@ -216,20 +215,4 @@ public interface IRestDashboard { @ApiParam(value = "to", required = true) @RequestParam(value = "to") Integer to ) throws IOException; - - /* - * Load reports data - */ - @ApiOperation(value = "load reports data", notes = "The “load reports data” operation is used to obtain reports data.") - @ApiResponses(value = { - @ApiResponse(code = 200, message = "OK. Request executed successfully."), - @ApiResponse(code = 400, message = "Bad Request. The reason is contained in the tags “errorKey”, “message”, “title”"), - @ApiResponse(code = 500, message = "Internal server error. The user has to repeat action.") - }) - @RequestMapping(value ="/audit/reports/{name}", method = RequestMethod.GET) - @ResponseStatus(HttpStatus.OK) - public HttpEntity loadReportsData( - HttpServletResponse response, @PathVariable("name") String name, - @ApiParam(value = "Report identity", required = true) @RequestParam(value = "ruid") String ruid); - } diff --git a/server/samserver/src/main/java/com/samsung/samserver/web/rest/controller/IRestSharing.java b/server/samserver/src/main/java/com/samsung/samserver/web/rest/controller/IRestSharing.java new file mode 100644 index 0000000..9a7353e --- /dev/null +++ b/server/samserver/src/main/java/com/samsung/samserver/web/rest/controller/IRestSharing.java @@ -0,0 +1,32 @@ +/* + * In Samsung Ukraine R&D Center (SRK under a contract between) + * LLC "Samsung Electronics Co", Ltd (Seoul, Republic of Korea) + * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved. + */ +package com.samsung.samserver.web.rest.controller; + +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; + +/** + * Rest Interface for link sharing (no security access ) + * + * @author Mykhailo Dalakov + * @version 1.0 + */ +@RequestMapping("/") +public interface IRestSharing { + + /* + * Load reports data + */ + @RequestMapping(value ="/audit/reports/{name}", method = RequestMethod.GET) + @ResponseStatus(HttpStatus.OK) + public HttpEntity loadReportsData(HttpServletResponse response, + @PathVariable("name") String name, + @RequestParam(value = "ruid") String ruid); + +} diff --git a/server/samserver/src/main/java/com/samsung/samserver/web/rest/controller/impl/RestDashboard.java b/server/samserver/src/main/java/com/samsung/samserver/web/rest/controller/impl/RestDashboard.java index e1b435a..d030f0a 100644 --- a/server/samserver/src/main/java/com/samsung/samserver/web/rest/controller/impl/RestDashboard.java +++ b/server/samserver/src/main/java/com/samsung/samserver/web/rest/controller/impl/RestDashboard.java @@ -172,13 +172,4 @@ public class RestDashboard implements IRestDashboard { return getDeviceReportsRestService.getDeviceReports(id, from, to); } - /* - * Load reports data - */ - @Override - public HttpEntity loadReportsData(HttpServletResponse response, @PathVariable("name") String name, - @RequestParam(value = "ruid") String ruid){ - return getDeviceReportsRestService.loadReportsData(response, name, ruid); - } - } diff --git a/server/samserver/src/main/java/com/samsung/samserver/web/rest/controller/impl/RestSharing.java b/server/samserver/src/main/java/com/samsung/samserver/web/rest/controller/impl/RestSharing.java new file mode 100644 index 0000000..68c4fa8 --- /dev/null +++ b/server/samserver/src/main/java/com/samsung/samserver/web/rest/controller/impl/RestSharing.java @@ -0,0 +1,37 @@ +/* + * In Samsung Ukraine R&D Center (SRK under a contract between) + * LLC "Samsung Electronics Co", Ltd (Seoul, Republic of Korea) + * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved. + */ +package com.samsung.samserver.web.rest.controller.impl; + +import com.samsung.samserver.web.rest.controller.IRestSharing; +import com.samsung.samserver.web.rest.service.ui.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpEntity; +import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; + +/** + * REST Sharing controller. + * + * @author Mykhailo Dalakov + * @version 1.0 + */ +@RestController +public class RestSharing implements IRestSharing { + + @Autowired + private GetDeviceReportsRestService getDeviceReportsRestService; + + /* + * Load reports data, link for sharing (no security access ) + */ + @RequestMapping(value ="/audit/reports/{name}", method = RequestMethod.GET) + public HttpEntity loadReportsData(HttpServletResponse response, + @PathVariable("name") String name, + @RequestParam(value = "ruid") String ruid){ + return getDeviceReportsRestService.loadReportsData(response, name, ruid); + } + +} \ No newline at end of file diff --git a/server/samserver/src/main/java/com/samsung/samserver/web/rest/service/ui/GetDeviceReportsRestService.java b/server/samserver/src/main/java/com/samsung/samserver/web/rest/service/ui/GetDeviceReportsRestService.java index dc89b9e..9581683 100644 --- a/server/samserver/src/main/java/com/samsung/samserver/web/rest/service/ui/GetDeviceReportsRestService.java +++ b/server/samserver/src/main/java/com/samsung/samserver/web/rest/service/ui/GetDeviceReportsRestService.java @@ -76,7 +76,7 @@ public class GetDeviceReportsRestService { byte [] out = getZipCompressed(new String[]{"syscall","user"}, new byte[][]{reportSyscall,reportUser}); dr = Optional.of(deviceReportsDataService.save(new DeviceReportsData().data(out), id, from, to)); } - String uri = "/dashboard/audit/reports/" + String uri = "/audit/reports/" + Base64.getEncoder().encodeToString(("Reports["+from+"-"+to+"].zip").getBytes()) + "?ruid="+dr.get().getRuid(); String out = "{\n" + -- 2.7.4