Quellcode durchsuchen

返回报告界面

guochao vor 6 Jahren
Ursprung
Commit
07f499d1fb

+ 13 - 0
.idea/libraries/Maven__javax_servlet_javax_servlet_api_4_0_1.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: javax.servlet:javax.servlet-api:4.0.1">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/javax/servlet/javax.servlet-api/4.0.1/javax.servlet-api-4.0.1.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/javax/servlet/javax.servlet-api/4.0.1/javax.servlet-api-4.0.1-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/javax/servlet/javax.servlet-api/4.0.1/javax.servlet-api-4.0.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__net_lingala_zip4j_zip4j_1_3_2.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: net.lingala.zip4j:zip4j:1.3.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/net/lingala/zip4j/zip4j/1.3.2/zip4j-1.3.2.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/net/lingala/zip4j/zip4j/1.3.2/zip4j-1.3.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/net/lingala/zip4j/zip4j/1.3.2/zip4j-1.3.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 16 - 2
.idea/workspace.xml

@@ -1,7 +1,19 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="ChangeListManager">
-    <list default="true" id="c25ee83f-38b8-4a56-8a1f-62ecc8d6cec2" name="Default Changelist" comment="" />
+    <list default="true" id="c25ee83f-38b8-4a56-8a1f-62ecc8d6cec2" name="Default Changelist" comment="">
+      <change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__javax_servlet_javax_servlet_api_4_0_1.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__net_lingala_zip4j_zip4j_1_3_2.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_projectreactor_addons_reactor_extra_3_2_3_RELEASE.xml" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_gateway_core_2_1_3_RELEASE.xml" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_gateway_2_1_3_RELEASE.xml" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/gateway-demo.iml" beforeDir="false" afterPath="$PROJECT_DIR$/gateway-demo.iml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/pom.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/cn/iselab/mooctest/site/web/ctrl/HandleReportController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/iselab/mooctest/site/web/ctrl/HandleReportController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/resources/application.properties" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/application.properties" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/cn/iselab/mooctest/site/web/ctrl/HandleReportController.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/cn/iselab/mooctest/site/web/ctrl/HandleReportController.class" afterDir="false" />
+    </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -104,7 +116,9 @@
       <workItem from="1573454875714" duration="718000" />
       <workItem from="1573738004164" duration="4826000" />
       <workItem from="1573797788287" duration="4744000" />
-      <workItem from="1573803183351" duration="6039000" />
+      <workItem from="1573803183351" duration="6316000" />
+      <workItem from="1573817067721" duration="3410000" />
+      <workItem from="1573886504964" duration="1797000" />
     </task>
     <servers />
   </component>

+ 2 - 0
gateway-demo.iml

@@ -145,5 +145,7 @@
     <orderEntry type="library" scope="TEST" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" />
     <orderEntry type="library" name="Maven: org.projectlombok:lombok:1.16.6" level="project" />
     <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.5" level="project" />
+    <orderEntry type="library" name="Maven: net.lingala.zip4j:zip4j:1.3.2" level="project" />
+    <orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet:javax.servlet-api:4.0.1" level="project" />
   </component>
 </module>

+ 15 - 1
pom.xml

@@ -59,7 +59,21 @@
             <artifactId>gson</artifactId>
         </dependency>
 
-
+        <!-- ZIP -->
+        <dependency>
+            <groupId>net.lingala.zip4j</groupId>
+            <artifactId>zip4j</artifactId>
+            <version>1.3.2</version>
+        </dependency>
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>javax.servlet-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>org.springframework.boot</groupId>-->
+<!--            <artifactId>spring-boot-starter-webflux</artifactId>-->
+<!--        </dependency>-->
     </dependencies>
 
     <dependencyManagement>

+ 47 - 3
src/main/java/cn/iselab/mooctest/site/web/ctrl/HandleReportController.java

@@ -5,19 +5,23 @@ import cn.iselab.mooctest.site.web.data.vulData.ProjectInfoVO;
 import cn.iselab.mooctest.site.web.data.vulData.VulReportDataVO;
 import cn.iselab.mooctest.site.web.data.vulData.VulStatisticsVO;
 import cn.iselab.mooctest.site.web.data.vulData.VulnerabilityVo;
+import net.lingala.zip4j.exception.ZipException;
+import net.lingala.zip4j.model.ZipParameters;
+import net.lingala.zip4j.util.Zip4jConstants;
 import org.apache.commons.io.FileUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.server.reactive.ServerHttpResponse;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import com.google.gson.Gson;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.io.File;
-import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import java.io.*;
 import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.Date;
@@ -34,6 +38,8 @@ public class HandleReportController {
     private String REPORT_JSON_UPLOAD_PATH;
     @Value("${order.autoReport.upload.path}")
     private String REPORT_UPLOAD_PATH;
+    @Value("${host.ip}")
+    private String HOST_IP;
 
     @Autowired
     private AutoReportProductService autoReportProductService;
@@ -41,7 +47,7 @@ public class HandleReportController {
     private static final Logger log = LoggerFactory.getLogger(Process.class.getName());
 
     @RequestMapping(value = "/generate/report/{orderId}/{ownerId}", method = RequestMethod.GET)
-    public void generateReport(@PathVariable(value = "orderId") Long orderId, @PathVariable(value = "ownerId") Long ownerId){
+    public String generateReport(@PathVariable(value = "orderId") Long orderId, @PathVariable(value = "ownerId") Long ownerId){
         List<String> menus = new ArrayList<>();
         menus.add("APK扫描");
         ProjectInfoVO projectInfoVO = new ProjectInfoVO();
@@ -59,6 +65,7 @@ public class HandleReportController {
         vulReportDataVO.setVulStatistics(vulStatisticsVO);
         System.out.println(vulReportDataVO.toString());
         handleReport(orderId, ownerId, vulReportDataVO);
+        return "http://"+HOST_IP+"/reportFile/"+ownerId+"/"+orderId+"/vulReport/dist/vulResults.html";
     }
 
 
@@ -75,15 +82,52 @@ public class HandleReportController {
 
     private void reportTransferToPath(Long orderId, Long ownerId, String path) {
         String autoReportPath = REPORT_UPLOAD_PATH + ownerId + "/" + orderId + "/vulReport";
+        String downloadPath = autoReportPath+"/report.zip";
         File uploadFile = new File(autoReportPath);
+        File downloadFile = new File(downloadPath);
         boolean sign = uploadFile.mkdirs();
         log.info("------------mkdirs------------", sign);
         try {
             log.info("开始拷贝文件");
             FileUtils.copyDirectoryToDirectory(new File(path + "dist"), new File(autoReportPath));
+            net.lingala.zip4j.core.ZipFile zipFile = new net.lingala.zip4j.core.ZipFile(downloadFile);
+            ZipParameters parameters = new ZipParameters();
+            parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
+            parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
+            zipFile.addFolder(new File(autoReportPath+ "/dist"),parameters);
             log.info("----------------拷贝结束-------------------");
         } catch (IOException e) {
             log.info("----------copy error{}---------", e);
+        }catch (ZipException e){
+            log.info("----------copy error{}---------", e);
         }
     }
+
+//    @RequestMapping(value = "/download/report/{orderId}/{ownerId}", method = RequestMethod.GET)
+//    public void downloadFile(@PathVariable(value = "orderId") Long orderId, @PathVariable(value = "ownerId") Long ownerId, HttpServletResponse response){
+//
+//        String filePath = REPORT_UPLOAD_PATH + ownerId + "/" + orderId + "/vulReport/";
+//        String fileName = "report.zip";
+//        response.setCharacterEncoding("utf-8");
+//        try {
+//            File file=new File(filePath,fileName);
+//            // 以流的形式下载文件。
+//            BufferedInputStream fis = new BufferedInputStream(new FileInputStream(file.getPath()));
+//            byte[] buffer = new byte[fis.available()];
+//            fis.read(buffer);
+//            fis.close();
+//            // 清空response
+//            response.reset();
+//            OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
+//            response.setContentType("application/octet-stream");
+//            response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+//            toClient.write(buffer);
+//            toClient.flush();
+//            toClient.close();
+//        }
+//        catch (IOException ex) {
+//            ex.printStackTrace();
+//        }
+//    }
+
 }

+ 1 - 0
src/main/resources/application.properties

@@ -11,5 +11,6 @@ order.autoReport.service.path=/Users/guochao/Desktop/project/enterprise-mooctest
 static.resource.autoReport.url=/reportFile/
 order.autoReport.image.upload.path=/mooctest-report/src/images/
 order.vulReport.json.upload.path=/static-scan-report/src/json/
+host.ip=106.14.81.62
 
 

+ 1 - 0
target/classes/application.properties

@@ -11,5 +11,6 @@ order.autoReport.service.path=/Users/guochao/Desktop/project/enterprise-mooctest
 static.resource.autoReport.url=/reportFile/
 order.autoReport.image.upload.path=/mooctest-report/src/images/
 order.vulReport.json.upload.path=/static-scan-report/src/json/
+host.ip=106.14.81.62
 
 

BIN
target/classes/cn/iselab/mooctest/site/web/ctrl/HandleReportController.class