From 23b1c3f1eb68f3aa2ffdfd6acc42dd52eddef29d Mon Sep 17 00:00:00 2001 From: peggy Date: Mon, 30 Sep 2019 16:23:41 -0700 Subject: [PATCH 1/2] Process issue #164 --- .../plugins/http/DocumentInterceptor.java | 7 +++++++ .../plugins/http/DocumentInterceptorTests.java | 10 ++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/jrcc-access-spring-boot-autoconfigure/src/main/java/ca/bc/gov/open/jrccaccess/autoconfigure/plugins/http/DocumentInterceptor.java b/jrcc-access-spring-boot-autoconfigure/src/main/java/ca/bc/gov/open/jrccaccess/autoconfigure/plugins/http/DocumentInterceptor.java index 667b63fc..ae163c52 100644 --- a/jrcc-access-spring-boot-autoconfigure/src/main/java/ca/bc/gov/open/jrccaccess/autoconfigure/plugins/http/DocumentInterceptor.java +++ b/jrcc-access-spring-boot-autoconfigure/src/main/java/ca/bc/gov/open/jrccaccess/autoconfigure/plugins/http/DocumentInterceptor.java @@ -2,6 +2,7 @@ import ca.bc.gov.open.jrccaccess.autoconfigure.common.Constants; import org.slf4j.MDC; +import org.springframework.http.HttpStatus; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.servlet.HandlerInterceptor; @@ -19,7 +20,13 @@ public boolean preHandle(HttpServletRequest req, HttpServletResponse res, Object handler) throws Exception { if(req instanceof MultipartHttpServletRequest ){ MultipartHttpServletRequest multiRequest=(MultipartHttpServletRequest) req; + MultipartFile file = multiRequest.getFile("file"); + if(file == null){ + res.sendError(HttpServletResponse.SC_BAD_REQUEST, "Expecting file in the request."); + return false; + } + MDC.put(Constants.MDC_KEY_FILENAME,file.getOriginalFilename()); } return true; diff --git a/jrcc-access-spring-boot-autoconfigure/src/test/java/ca/bc/gov/open/jrccaccess/autoconfigure/plugins/http/DocumentInterceptorTests.java b/jrcc-access-spring-boot-autoconfigure/src/test/java/ca/bc/gov/open/jrccaccess/autoconfigure/plugins/http/DocumentInterceptorTests.java index bc6cb47c..d122f6cc 100644 --- a/jrcc-access-spring-boot-autoconfigure/src/test/java/ca/bc/gov/open/jrccaccess/autoconfigure/plugins/http/DocumentInterceptorTests.java +++ b/jrcc-access-spring-boot-autoconfigure/src/test/java/ca/bc/gov/open/jrccaccess/autoconfigure/plugins/http/DocumentInterceptorTests.java @@ -13,8 +13,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; +import static org.junit.Assert.*; public class DocumentInterceptorTests { @@ -37,6 +36,13 @@ public void init() throws Exception { Mockito.when(request.getFile("file")).thenReturn(multipartFile); } + @Test + public void http_request_no_file_should_reture_bad_request() throws Exception{ + MultipartHttpServletRequest badRequest = Mockito.mock(MultipartHttpServletRequest.class); + Mockito.when(badRequest.getFile("file")).thenReturn(null); + assertFalse(interceptor.preHandle(badRequest, response, o ) ); + } + @Test public void filename_should_be_added_to_MDC_after_preHandle() throws Exception{ interceptor.preHandle(request, response, o); From ab68cde7e9de4f2e900cf73f2377d6ea1204b8f3 Mon Sep 17 00:00:00 2001 From: peggy Date: Mon, 30 Sep 2019 16:59:23 -0700 Subject: [PATCH 2/2] update --- .../autoconfigure/plugins/http/DocumentInterceptorTests.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/jrcc-access-spring-boot-autoconfigure/src/test/java/ca/bc/gov/open/jrccaccess/autoconfigure/plugins/http/DocumentInterceptorTests.java b/jrcc-access-spring-boot-autoconfigure/src/test/java/ca/bc/gov/open/jrccaccess/autoconfigure/plugins/http/DocumentInterceptorTests.java index d122f6cc..5a5dc77b 100644 --- a/jrcc-access-spring-boot-autoconfigure/src/test/java/ca/bc/gov/open/jrccaccess/autoconfigure/plugins/http/DocumentInterceptorTests.java +++ b/jrcc-access-spring-boot-autoconfigure/src/test/java/ca/bc/gov/open/jrccaccess/autoconfigure/plugins/http/DocumentInterceptorTests.java @@ -14,6 +14,7 @@ import javax.servlet.http.HttpServletResponse; import static org.junit.Assert.*; +import static org.mockito.Mockito.verify; public class DocumentInterceptorTests { @@ -41,6 +42,7 @@ public void http_request_no_file_should_reture_bad_request() throws Exception{ MultipartHttpServletRequest badRequest = Mockito.mock(MultipartHttpServletRequest.class); Mockito.when(badRequest.getFile("file")).thenReturn(null); assertFalse(interceptor.preHandle(badRequest, response, o ) ); + verify(response).sendError(HttpServletResponse.SC_BAD_REQUEST,"Expecting file in the request." ); } @Test