| @@ -7,6 +7,7 @@ public class UrlCheck { | |||||
| public static boolean checkUrl(String url) { | public static boolean checkUrl(String url) { | ||||
| return url.contains("awsFileUpload") | return url.contains("awsFileUpload") | ||||
| || url.contains("awsFilesUpload") | |||||
| || url.contains("cimgUpload") | || url.contains("cimgUpload") | ||||
| || url.contains("ueditor/exec") | || url.contains("ueditor/exec") | ||||
| || url.contains("/wxCUserBasicInfo/importTemplate") | || url.contains("/wxCUserBasicInfo/importTemplate") | ||||
| @@ -22,11 +22,6 @@ | |||||
| <artifactId>mybatis-multi-tenancy</artifactId> | <artifactId>mybatis-multi-tenancy</artifactId> | ||||
| <version>1.0</version> | <version>1.0</version> | ||||
| </dependency> | </dependency> | ||||
| <dependency> | |||||
| <groupId>commons-fileupload</groupId> | |||||
| <artifactId>commons-fileupload</artifactId> | |||||
| <version>1.3.3</version> | |||||
| </dependency> | |||||
| </dependencies> | </dependencies> | ||||
| <build> | <build> | ||||
| <plugins> | <plugins> | ||||
| @@ -5,7 +5,6 @@ import org.rocketmq.starter.annotation.EnableRocketMQ; | |||||
| import org.springframework.beans.factory.annotation.Value; | import org.springframework.beans.factory.annotation.Value; | ||||
| import org.springframework.boot.SpringApplication; | import org.springframework.boot.SpringApplication; | ||||
| import org.springframework.boot.autoconfigure.SpringBootApplication; | import org.springframework.boot.autoconfigure.SpringBootApplication; | ||||
| import org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration; | |||||
| import org.springframework.context.annotation.Bean; | import org.springframework.context.annotation.Bean; | ||||
| import tk.mybatis.spring.annotation.MapperScan; | import tk.mybatis.spring.annotation.MapperScan; | ||||
| @@ -13,7 +12,7 @@ import tk.mybatis.spring.annotation.MapperScan; | |||||
| * @author chenkx | * @author chenkx | ||||
| * @date 2017-12-26 | * @date 2017-12-26 | ||||
| */ | */ | ||||
| @SpringBootApplication(exclude = {MultipartAutoConfiguration.class}) | |||||
| @SpringBootApplication | |||||
| @MapperScan(basePackages = {"com.iformall.mapper"}) | @MapperScan(basePackages = {"com.iformall.mapper"}) | ||||
| @EnableEncryptableProperties | @EnableEncryptableProperties | ||||
| @EnableRocketMQ | @EnableRocketMQ | ||||
| @@ -17,8 +17,6 @@ import org.springframework.context.annotation.Configuration; | |||||
| import org.springframework.http.converter.HttpMessageConverter; | import org.springframework.http.converter.HttpMessageConverter; | ||||
| import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; | import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; | ||||
| import org.springframework.web.method.support.HandlerMethodArgumentResolver; | 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 org.springframework.web.servlet.config.annotation.*; | ||||
| import java.math.BigDecimal; | import java.math.BigDecimal; | ||||
| @@ -113,14 +111,4 @@ public class WebMvcConfig implements WebMvcConfigurer { | |||||
| registrationBean.setName("koalaSignFilter"); | registrationBean.setName("koalaSignFilter"); | ||||
| return registrationBean; | 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; | |||||
| } | |||||
| } | } | ||||
| @@ -11,6 +11,7 @@ import com.amazonaws.services.s3.AmazonS3ClientBuilder; | |||||
| import com.amazonaws.services.s3.model.CannedAccessControlList; | import com.amazonaws.services.s3.model.CannedAccessControlList; | ||||
| import com.amazonaws.services.s3.model.ObjectMetadata; | import com.amazonaws.services.s3.model.ObjectMetadata; | ||||
| import com.amazonaws.services.s3.model.PutObjectRequest; | import com.amazonaws.services.s3.model.PutObjectRequest; | ||||
| import com.iformall.annotation.AuthIgnore; | |||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.config.AwsProperty; | import com.iformall.config.AwsProperty; | ||||
| import io.swagger.annotations.Api; | 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.bind.annotation.RestController; | ||||
| import org.springframework.web.multipart.MultipartFile; | 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.net.URL; | ||||
| import java.util.*; | import java.util.*; | ||||
| @@ -103,11 +103,11 @@ public class UploadController extends BaseController { | |||||
| /** | /** | ||||
| * 上传文件 | * 上传文件 | ||||
| * | * | ||||
| * @param multiReq | |||||
| * @param | |||||
| * @return | * @return | ||||
| * @throws Exception | * @throws Exception | ||||
| */ | */ | ||||
| @PostMapping(value = "/awsFileUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") | |||||
| @PostMapping(value = "/awsFileUpload") | |||||
| @ApiOperation("上传文件") | @ApiOperation("上传文件") | ||||
| public ResultData awsfileUpload(@RequestParam("file") MultipartFile multiReq) { | public ResultData awsfileUpload(@RequestParam("file") MultipartFile multiReq) { | ||||
| logger.info("[" + getIpAddr() + "] UploadController::awsfileUpload"); | logger.info("[" + getIpAddr() + "] UploadController::awsfileUpload"); | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.iformall.interceptor; | package com.iformall.interceptor; | ||||
| import com.iformall.utils.UrlCheck; | |||||
| import javax.servlet.*; | import javax.servlet.*; | ||||
| import javax.servlet.http.HttpServletRequest; | import javax.servlet.http.HttpServletRequest; | ||||
| import java.io.IOException; | import java.io.IOException; | ||||
| @@ -16,7 +18,10 @@ public class HttpServletRequestWrapperFilter implements Filter { | |||||
| ServletRequest requestWrapper = null; | ServletRequest requestWrapper = null; | ||||
| if (request instanceof HttpServletRequest) { | 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) { | if (null == requestWrapper) { | ||||
| chain.doFilter(request, response); | chain.doFilter(request, response); | ||||
| @@ -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"); | |||||
| } | |||||
| } | |||||
| @@ -22,11 +22,6 @@ | |||||
| <artifactId>mybatis-multi-tenancy</artifactId> | <artifactId>mybatis-multi-tenancy</artifactId> | ||||
| <version>1.0</version> | <version>1.0</version> | ||||
| </dependency> | </dependency> | ||||
| <dependency> | |||||
| <groupId>commons-fileupload</groupId> | |||||
| <artifactId>commons-fileupload</artifactId> | |||||
| <version>1.3.3</version> | |||||
| </dependency> | |||||
| </dependencies> | </dependencies> | ||||
| <build> | <build> | ||||
| <plugins> | <plugins> | ||||
| @@ -5,7 +5,6 @@ import org.rocketmq.starter.annotation.EnableRocketMQ; | |||||
| import org.springframework.beans.factory.annotation.Value; | import org.springframework.beans.factory.annotation.Value; | ||||
| import org.springframework.boot.SpringApplication; | import org.springframework.boot.SpringApplication; | ||||
| import org.springframework.boot.autoconfigure.SpringBootApplication; | import org.springframework.boot.autoconfigure.SpringBootApplication; | ||||
| import org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration; | |||||
| import org.springframework.context.annotation.Bean; | import org.springframework.context.annotation.Bean; | ||||
| import tk.mybatis.spring.annotation.MapperScan; | import tk.mybatis.spring.annotation.MapperScan; | ||||
| @@ -13,7 +12,7 @@ import tk.mybatis.spring.annotation.MapperScan; | |||||
| * @author chenkx | * @author chenkx | ||||
| * @date 2017-12-26 | * @date 2017-12-26 | ||||
| */ | */ | ||||
| @SpringBootApplication(exclude = {MultipartAutoConfiguration.class}) | |||||
| @SpringBootApplication | |||||
| @MapperScan(basePackages = {"com.iformall.mapper"}) | @MapperScan(basePackages = {"com.iformall.mapper"}) | ||||
| @EnableEncryptableProperties | @EnableEncryptableProperties | ||||
| @EnableRocketMQ | @EnableRocketMQ | ||||
| @@ -17,8 +17,6 @@ import org.springframework.context.annotation.Configuration; | |||||
| import org.springframework.http.converter.HttpMessageConverter; | import org.springframework.http.converter.HttpMessageConverter; | ||||
| import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; | import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; | ||||
| import org.springframework.web.method.support.HandlerMethodArgumentResolver; | 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 org.springframework.web.servlet.config.annotation.*; | ||||
| import java.math.BigDecimal; | import java.math.BigDecimal; | ||||
| @@ -113,14 +111,4 @@ public class WebMvcConfig implements WebMvcConfigurer { | |||||
| registrationBean.setName("koalaSignFilter"); | registrationBean.setName("koalaSignFilter"); | ||||
| return registrationBean; | 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; | |||||
| } | |||||
| } | } | ||||
| @@ -1,5 +1,6 @@ | |||||
| package com.iformall.interceptor; | package com.iformall.interceptor; | ||||
| import com.iformall.utils.UrlCheck; | |||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | import org.slf4j.LoggerFactory; | ||||
| @@ -21,7 +22,10 @@ public class HttpServletRequestWrapperFilter implements Filter { | |||||
| long start = System.currentTimeMillis(); | long start = System.currentTimeMillis(); | ||||
| ServletRequest requestWrapper = null; | ServletRequest requestWrapper = null; | ||||
| if (request instanceof HttpServletRequest) { | 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) { | if (null == requestWrapper) { | ||||
| chain.doFilter(request, response); | chain.doFilter(request, response); | ||||
| @@ -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"); | |||||
| } | |||||
| } | |||||