From 76f5fc6ed21196b43ae95113868b665584934221 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Thu, 18 Apr 2019 20:43:35 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=B0=8F=E7=A8=8B=E5=BA=8F=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0][=E4=BF=AE=E6=94=B9]:=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E4=B8=8A=E4=BC=A0=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/iformall/utils/UrlCheck.java | 1 + mallinkBApi/pom.xml | 5 ----- .../src/main/java/com/iformall/BApplication.java | 3 +-- .../main/java/com/iformall/config/WebMvcConfig.java | 12 ------------ .../com/iformall/controller/UploadController.java | 10 +++++----- .../HttpServletRequestWrapperFilter.java | 7 ++++++- .../src/main/java/com/iformall/utils/UrlCheck.java | 13 +++++++++++++ mallinkCApi/pom.xml | 5 ----- .../src/main/java/com/iformall/CApplication.java | 3 +-- .../main/java/com/iformall/config/WebMvcConfig.java | 12 ------------ .../HttpServletRequestWrapperFilter.java | 6 +++++- .../src/main/java/com/iformall/utils/UrlCheck.java | 13 +++++++++++++ 12 files changed, 45 insertions(+), 45 deletions(-) create mode 100644 mallinkBApi/src/main/java/com/iformall/utils/UrlCheck.java create mode 100644 mallinkCApi/src/main/java/com/iformall/utils/UrlCheck.java diff --git a/mallinkAdmin/src/main/java/com/iformall/utils/UrlCheck.java b/mallinkAdmin/src/main/java/com/iformall/utils/UrlCheck.java index 8eac9bf3c..7897bbcfc 100644 --- a/mallinkAdmin/src/main/java/com/iformall/utils/UrlCheck.java +++ b/mallinkAdmin/src/main/java/com/iformall/utils/UrlCheck.java @@ -7,6 +7,7 @@ public class UrlCheck { public static boolean checkUrl(String url) { return url.contains("awsFileUpload") + || url.contains("awsFilesUpload") || url.contains("cimgUpload") || url.contains("ueditor/exec") || url.contains("/wxCUserBasicInfo/importTemplate") diff --git a/mallinkBApi/pom.xml b/mallinkBApi/pom.xml index 0014f6ca3..a6c7c0588 100644 --- a/mallinkBApi/pom.xml +++ b/mallinkBApi/pom.xml @@ -22,11 +22,6 @@ mybatis-multi-tenancy 1.0 - - commons-fileupload - commons-fileupload - 1.3.3 - diff --git a/mallinkBApi/src/main/java/com/iformall/BApplication.java b/mallinkBApi/src/main/java/com/iformall/BApplication.java index 50460e994..8ab96db8a 100644 --- a/mallinkBApi/src/main/java/com/iformall/BApplication.java +++ b/mallinkBApi/src/main/java/com/iformall/BApplication.java @@ -5,7 +5,6 @@ import org.rocketmq.starter.annotation.EnableRocketMQ; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration; import org.springframework.context.annotation.Bean; import tk.mybatis.spring.annotation.MapperScan; @@ -13,7 +12,7 @@ import tk.mybatis.spring.annotation.MapperScan; * @author chenkx * @date 2017-12-26 */ -@SpringBootApplication(exclude = {MultipartAutoConfiguration.class}) +@SpringBootApplication @MapperScan(basePackages = {"com.iformall.mapper"}) @EnableEncryptableProperties @EnableRocketMQ diff --git a/mallinkBApi/src/main/java/com/iformall/config/WebMvcConfig.java b/mallinkBApi/src/main/java/com/iformall/config/WebMvcConfig.java index abe073f80..819f804b8 100644 --- a/mallinkBApi/src/main/java/com/iformall/config/WebMvcConfig.java +++ b/mallinkBApi/src/main/java/com/iformall/config/WebMvcConfig.java @@ -17,8 +17,6 @@ import org.springframework.context.annotation.Configuration; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.web.method.support.HandlerMethodArgumentResolver; -import org.springframework.web.multipart.MultipartResolver; -import org.springframework.web.multipart.commons.CommonsMultipartResolver; import org.springframework.web.servlet.config.annotation.*; import java.math.BigDecimal; @@ -113,14 +111,4 @@ public class WebMvcConfig implements WebMvcConfigurer { registrationBean.setName("koalaSignFilter"); return registrationBean; } - - @Bean(name = "multipartResolver") - public MultipartResolver multipartResolver() { - CommonsMultipartResolver resolver = new CommonsMultipartResolver(); - resolver.setDefaultEncoding("UTF-8"); - resolver.setResolveLazily(true); // resolveLazily属性启用是为了推迟文件解析,以在在UploadAction中捕获文件大小异常   - // resolver.setMaxInMemorySize(40960);   - resolver.setMaxUploadSize(2*1024*1024);// 上传文件大小 5M 5*1024*1024   - return resolver; - } } \ No newline at end of file diff --git a/mallinkBApi/src/main/java/com/iformall/controller/UploadController.java b/mallinkBApi/src/main/java/com/iformall/controller/UploadController.java index 075586365..70cbff023 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/UploadController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/UploadController.java @@ -11,6 +11,7 @@ import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.CannedAccessControlList; import com.amazonaws.services.s3.model.ObjectMetadata; import com.amazonaws.services.s3.model.PutObjectRequest; +import com.iformall.annotation.AuthIgnore; import com.iformall.common.ResultData; import com.iformall.config.AwsProperty; import io.swagger.annotations.Api; @@ -24,9 +25,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; -import java.io.BufferedInputStream; -import java.io.FileOutputStream; -import java.io.IOException; +import javax.servlet.http.HttpServletRequest; +import java.io.*; import java.net.URL; import java.util.*; @@ -103,11 +103,11 @@ public class UploadController extends BaseController { /** * 上传文件 * - * @param multiReq + * @param * @return * @throws Exception */ - @PostMapping(value = "/awsFileUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") + @PostMapping(value = "/awsFileUpload") @ApiOperation("上传文件") public ResultData awsfileUpload(@RequestParam("file") MultipartFile multiReq) { logger.info("[" + getIpAddr() + "] UploadController::awsfileUpload"); diff --git a/mallinkBApi/src/main/java/com/iformall/interceptor/HttpServletRequestWrapperFilter.java b/mallinkBApi/src/main/java/com/iformall/interceptor/HttpServletRequestWrapperFilter.java index 40f12f03b..ed6f301c9 100644 --- a/mallinkBApi/src/main/java/com/iformall/interceptor/HttpServletRequestWrapperFilter.java +++ b/mallinkBApi/src/main/java/com/iformall/interceptor/HttpServletRequestWrapperFilter.java @@ -1,5 +1,7 @@ package com.iformall.interceptor; +import com.iformall.utils.UrlCheck; + import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import java.io.IOException; @@ -16,7 +18,10 @@ public class HttpServletRequestWrapperFilter implements Filter { ServletRequest requestWrapper = null; if (request instanceof HttpServletRequest) { - requestWrapper = new BodyReaderHttpServletRequestWrapper((HttpServletRequest) request); + String url = ((HttpServletRequest) request).getRequestURI(); + if (!UrlCheck.checkUrl(url)) { + requestWrapper = new BodyReaderHttpServletRequestWrapper((HttpServletRequest) request); + } } if (null == requestWrapper) { chain.doFilter(request, response); diff --git a/mallinkBApi/src/main/java/com/iformall/utils/UrlCheck.java b/mallinkBApi/src/main/java/com/iformall/utils/UrlCheck.java new file mode 100644 index 000000000..d2bece626 --- /dev/null +++ b/mallinkBApi/src/main/java/com/iformall/utils/UrlCheck.java @@ -0,0 +1,13 @@ +package com.iformall.utils; + +/** + * @author gongbiao + */ +public class UrlCheck { + + public static boolean checkUrl(String url) { + return url.contains("awsFileUpload") + || url.contains("awsFilesUpload"); + } + +} diff --git a/mallinkCApi/pom.xml b/mallinkCApi/pom.xml index 1dbbe6df0..647618dbc 100644 --- a/mallinkCApi/pom.xml +++ b/mallinkCApi/pom.xml @@ -22,11 +22,6 @@ mybatis-multi-tenancy 1.0 - - commons-fileupload - commons-fileupload - 1.3.3 - diff --git a/mallinkCApi/src/main/java/com/iformall/CApplication.java b/mallinkCApi/src/main/java/com/iformall/CApplication.java index 472ccc689..c3d60da7e 100644 --- a/mallinkCApi/src/main/java/com/iformall/CApplication.java +++ b/mallinkCApi/src/main/java/com/iformall/CApplication.java @@ -5,7 +5,6 @@ import org.rocketmq.starter.annotation.EnableRocketMQ; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration; import org.springframework.context.annotation.Bean; import tk.mybatis.spring.annotation.MapperScan; @@ -13,7 +12,7 @@ import tk.mybatis.spring.annotation.MapperScan; * @author chenkx * @date 2017-12-26 */ -@SpringBootApplication(exclude = {MultipartAutoConfiguration.class}) +@SpringBootApplication @MapperScan(basePackages = {"com.iformall.mapper"}) @EnableEncryptableProperties @EnableRocketMQ diff --git a/mallinkCApi/src/main/java/com/iformall/config/WebMvcConfig.java b/mallinkCApi/src/main/java/com/iformall/config/WebMvcConfig.java index d7fd8fa54..c4064057a 100644 --- a/mallinkCApi/src/main/java/com/iformall/config/WebMvcConfig.java +++ b/mallinkCApi/src/main/java/com/iformall/config/WebMvcConfig.java @@ -17,8 +17,6 @@ import org.springframework.context.annotation.Configuration; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.web.method.support.HandlerMethodArgumentResolver; -import org.springframework.web.multipart.MultipartResolver; -import org.springframework.web.multipart.commons.CommonsMultipartResolver; import org.springframework.web.servlet.config.annotation.*; import java.math.BigDecimal; @@ -113,14 +111,4 @@ public class WebMvcConfig implements WebMvcConfigurer { registrationBean.setName("koalaSignFilter"); return registrationBean; } - - @Bean(name = "multipartResolver") - public MultipartResolver multipartResolver() { - CommonsMultipartResolver resolver = new CommonsMultipartResolver(); - resolver.setDefaultEncoding("UTF-8"); - resolver.setResolveLazily(true); // resolveLazily属性启用是为了推迟文件解析,以在在UploadAction中捕获文件大小异常   - // resolver.setMaxInMemorySize(40960);   - resolver.setMaxUploadSize(2*1024*1024);// 上传文件大小 5M 5*1024*1024   - return resolver; - } } \ No newline at end of file diff --git a/mallinkCApi/src/main/java/com/iformall/interceptor/HttpServletRequestWrapperFilter.java b/mallinkCApi/src/main/java/com/iformall/interceptor/HttpServletRequestWrapperFilter.java index e876c12a1..244517814 100644 --- a/mallinkCApi/src/main/java/com/iformall/interceptor/HttpServletRequestWrapperFilter.java +++ b/mallinkCApi/src/main/java/com/iformall/interceptor/HttpServletRequestWrapperFilter.java @@ -1,5 +1,6 @@ package com.iformall.interceptor; +import com.iformall.utils.UrlCheck; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -21,7 +22,10 @@ public class HttpServletRequestWrapperFilter implements Filter { long start = System.currentTimeMillis(); ServletRequest requestWrapper = null; if (request instanceof HttpServletRequest) { - requestWrapper = new BodyReaderHttpServletRequestWrapper((HttpServletRequest) request); + String url = ((HttpServletRequest) request).getRequestURI(); + if (!UrlCheck.checkUrl(url)) { + requestWrapper = new BodyReaderHttpServletRequestWrapper((HttpServletRequest) request); + } } if (null == requestWrapper) { chain.doFilter(request, response); diff --git a/mallinkCApi/src/main/java/com/iformall/utils/UrlCheck.java b/mallinkCApi/src/main/java/com/iformall/utils/UrlCheck.java new file mode 100644 index 000000000..d2bece626 --- /dev/null +++ b/mallinkCApi/src/main/java/com/iformall/utils/UrlCheck.java @@ -0,0 +1,13 @@ +package com.iformall.utils; + +/** + * @author gongbiao + */ +public class UrlCheck { + + public static boolean checkUrl(String url) { + return url.contains("awsFileUpload") + || url.contains("awsFilesUpload"); + } + +}