You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by kr...@apache.org on 2020/01/28 14:31:38 UTC

[knox] branch master updated: KNOX-2202 - Knox should use UTF-8 as default encoding instead of ISO-8859-1 (#244)

This is an automated email from the ASF dual-hosted git repository.

krisden pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/knox.git


The following commit(s) were added to refs/heads/master by this push:
     new 3f364a6  KNOX-2202 - Knox should use UTF-8 as default encoding instead of ISO-8859-1 (#244)
3f364a6 is described below

commit 3f364a601673e0e28522b1139bf955c5550483a8
Author: Kevin Risden <ri...@users.noreply.github.com>
AuthorDate: Tue Jan 28 09:31:30 2020 -0500

    KNOX-2202 - Knox should use UTF-8 as default encoding instead of ISO-8859-1 (#244)
    
    Signed-off-by: Kevin Risden <kr...@apache.org>
---
 .../rewrite/api/UrlRewriteStreamFilterFactory.java |   2 +-
 .../filter/rewrite/impl/UrlRewriteRequest.java     |   2 +-
 .../filter/rewrite/impl/UrlRewriteResponse.java    |   2 +-
 .../filter/rewrite/impl/UrlRewriteRequestTest.java | 160 +++++++++++++--------
 .../rewrite/impl/UrlRewriteResponseTest.java       |  56 +++++---
 5 files changed, 141 insertions(+), 81 deletions(-)

diff --git a/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/api/UrlRewriteStreamFilterFactory.java b/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/api/UrlRewriteStreamFilterFactory.java
index af8fd86..5a5681e 100644
--- a/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/api/UrlRewriteStreamFilterFactory.java
+++ b/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/api/UrlRewriteStreamFilterFactory.java
@@ -49,7 +49,7 @@ public abstract class UrlRewriteStreamFilterFactory {
       UrlRewriteFilterContentDescriptor config )
           throws IOException {
     UrlRewriteStreamFilter filter = create(type, name);
-    String charset = MimeTypes.getCharset( type, StandardCharsets.ISO_8859_1.name() );
+    String charset = MimeTypes.getCharset( type, StandardCharsets.UTF_8.name() );
     final InputStream filteredStream;
     if( filter != null ) {
       filteredStream = filter.filter( stream, charset, rewriter, resolver, direction, config );
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteRequest.java b/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteRequest.java
index 5fc1079..4860233 100644
--- a/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteRequest.java
+++ b/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteRequest.java
@@ -267,7 +267,7 @@ public class UrlRewriteRequest extends GatewayRequestWrapper implements Resolver
       final InputStream stream;
       UrlRewriteStreamFilter filter = UrlRewriteStreamFilterFactory.create(mimeType, null);
       if(filter != null) {
-        String charset = MimeTypes.getCharset( mimeType, StandardCharsets.ISO_8859_1.name() );
+        String charset = MimeTypes.getCharset( mimeType, StandardCharsets.UTF_8.name() );
         stream = filter.filter(input, charset, rewriter, this, UrlRewriter.Direction.IN, filterContentConfig );
       } else {
         stream = input;
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteResponse.java b/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteResponse.java
index 3b71e2a..73c0025 100644
--- a/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteResponse.java
+++ b/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteResponse.java
@@ -180,7 +180,7 @@ public class UrlRewriteResponse extends GatewayResponseWrapper implements Params
       } else {
         unFilteredStream = inBuffer;
       }
-      String charset = MimeTypes.getCharset( mimeType, StandardCharsets.ISO_8859_1.name() );
+      String charset = MimeTypes.getCharset( mimeType, StandardCharsets.UTF_8.name() );
       inStream = filter.filter( unFilteredStream, charset, rewriter, this, UrlRewriter.Direction.OUT, filterContentConfig );
       outStream = (isGzip) ? new GZIPOutputStream(output, STREAM_BUFFER_SIZE) : output;
     } else {
diff --git a/gateway-provider-rewrite/src/test/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteRequestTest.java b/gateway-provider-rewrite/src/test/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteRequestTest.java
index 7aace6b..1270a7c 100644
--- a/gateway-provider-rewrite/src/test/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteRequestTest.java
+++ b/gateway-provider-rewrite/src/test/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteRequestTest.java
@@ -17,6 +17,7 @@
  */
 package org.apache.knox.gateway.filter.rewrite.impl;
 
+import org.apache.commons.io.IOUtils;
 import org.apache.http.HttpEntity;
 import org.apache.http.entity.ContentType;
 import org.apache.knox.gateway.dispatch.InputStreamEntity;
@@ -53,8 +54,7 @@ import static org.junit.Assert.assertEquals;
 
 public class UrlRewriteRequestTest {
   @Test
-  public void testResolve() throws Exception {
-
+  public void testResolve() {
     UrlRewriteProcessor rewriter = EasyMock.createNiceMock( UrlRewriteProcessor.class );
 
     ServletContext context = EasyMock.createNiceMock( ServletContext.class );
@@ -104,7 +104,6 @@ public class UrlRewriteRequestTest {
 
   @Test
   public void testEmptyPayload() throws Exception {
-
     /* copy results */
     final ByteArrayOutputStream results = new ByteArrayOutputStream();
     final ByteArrayInputStream bai = new ByteArrayInputStream(
@@ -113,12 +112,12 @@ public class UrlRewriteRequestTest {
     final ServletInputStream payload = new ServletInputStream() {
 
       @Override
-      public int read() throws IOException {
+      public int read() {
         return bai.read();
       }
 
       @Override
-      public int available() throws IOException {
+      public int available() {
         return bai.available();
       }
 
@@ -134,12 +133,10 @@ public class UrlRewriteRequestTest {
 
       @Override
       public void setReadListener(ReadListener readListener) {
-
       }
     };
 
-    UrlRewriteProcessor rewriter = EasyMock
-        .createNiceMock(UrlRewriteProcessor.class);
+    UrlRewriteProcessor rewriter = EasyMock.createNiceMock(UrlRewriteProcessor.class);
 
     ServletContext context = EasyMock.createNiceMock(ServletContext.class);
     EasyMock.expect(context.getServletContextName())
@@ -155,26 +152,20 @@ public class UrlRewriteRequestTest {
         .andReturn("test-filter-init-param-value").anyTimes();
     EasyMock.expect(config.getServletContext()).andReturn(context).anyTimes();
 
-    HttpServletRequest request = EasyMock
-        .createNiceMock(HttpServletRequest.class);
+    HttpServletRequest request = EasyMock.createNiceMock(HttpServletRequest.class);
     EasyMock.expect(request.getScheme()).andReturn("https").anyTimes();
-    EasyMock.expect(request.getServerName()).andReturn("targethost.com")
-        .anyTimes();
+    EasyMock.expect(request.getServerName()).andReturn("targethost.com").anyTimes();
     EasyMock.expect(request.getServerPort()).andReturn(80).anyTimes();
     EasyMock.expect(request.getRequestURI()).andReturn("/").anyTimes();
     EasyMock.expect(request.getQueryString()).andReturn(null).anyTimes();
-    EasyMock.expect(request.getHeader("Host")).andReturn("sourcehost.com")
-        .anyTimes();
+    EasyMock.expect(request.getHeader("Host")).andReturn("sourcehost.com").anyTimes();
 
     EasyMock.expect(request.getMethod()).andReturn("POST").anyTimes();
-    EasyMock.expect(request.getContentType())
-        .andReturn("application/xml").anyTimes();
+    EasyMock.expect(request.getContentType()).andReturn("application/xml").anyTimes();
     EasyMock.expect(request.getInputStream()).andReturn(payload).anyTimes();
     EasyMock.expect(request.getContentLength()).andReturn(-1).anyTimes();
 
-    HttpServletResponse response = EasyMock
-        .createNiceMock(HttpServletResponse.class);
-    //    EasyMock.replay( rewriter, context, config, request, response );
+    HttpServletResponse response = EasyMock.createNiceMock(HttpServletResponse.class);
     EasyMock.replay(rewriter, context, config, request, response);
 
     // instantiate UrlRewriteRequest so that we can use it as a Template factory for targetUrl
@@ -199,7 +190,6 @@ public class UrlRewriteRequestTest {
     final InputStream input = Files.newInputStream(
         Paths.get(ClassLoader.getSystemResource("KNOX-1412.xml.gz").toURI()));
     final ServletInputStream payload = new ServletInputStream() {
-
       @Override
       public int read() throws IOException {
         return input.read();
@@ -221,10 +211,8 @@ public class UrlRewriteRequestTest {
       }
     };
 
-    GatewayServices gatewayServices = EasyMock
-        .createNiceMock(GatewayServices.class);
-    UrlRewriteEnvironment environment = EasyMock
-        .createNiceMock(UrlRewriteEnvironment.class);
+    GatewayServices gatewayServices = EasyMock.createNiceMock(GatewayServices.class);
+    UrlRewriteEnvironment environment = EasyMock.createNiceMock(UrlRewriteEnvironment.class);
     EasyMock.expect(
         environment.getAttribute(GatewayServices.GATEWAY_SERVICES_ATTRIBUTE))
         .andReturn(gatewayServices).anyTimes();
@@ -236,8 +224,7 @@ public class UrlRewriteRequestTest {
 
     EasyMock.replay(gatewayServices, environment);
 
-    UrlRewriteRulesDescriptor descriptor = UrlRewriteRulesDescriptorFactory
-        .create();
+    UrlRewriteRulesDescriptor descriptor = UrlRewriteRulesDescriptorFactory.create();
     UrlRewriteRuleDescriptor rule = descriptor.addRule("test-location");
     rule.pattern("{*}://{*}:{*}/{**}/?{**}");
     UrlRewriteActionRewriteDescriptorExt rewrite = rule.addStep("rewrite");
@@ -246,8 +233,7 @@ public class UrlRewriteRequestTest {
     rewriter.initialize(environment, descriptor);
 
     ServletContext context = EasyMock.createNiceMock(ServletContext.class);
-    EasyMock.expect(context.getServletContextName())
-        .andReturn("test-cluster-name").anyTimes();
+    EasyMock.expect(context.getServletContextName()).andReturn("test-cluster-name").anyTimes();
     EasyMock.expect(context.getInitParameter("test-init-param-name"))
         .andReturn("test-init-param-value").anyTimes();
     EasyMock.expect(context.getAttribute(
@@ -263,58 +249,42 @@ public class UrlRewriteRequestTest {
     HttpServletRequest request1 = EasyMock
         .createNiceMock(HttpServletRequest.class);
     EasyMock.expect(request1.getScheme()).andReturn("https").anyTimes();
-    EasyMock.expect(request1.getServerName()).andReturn("targethost.com")
-        .anyTimes();
+    EasyMock.expect(request1.getServerName()).andReturn("targethost.com").anyTimes();
     EasyMock.expect(request1.getServerPort()).andReturn(80).anyTimes();
     EasyMock.expect(request1.getRequestURI()).andReturn("/").anyTimes();
     EasyMock.expect(request1.getQueryString()).andReturn(null).anyTimes();
     EasyMock.expect(request1.getInputStream()).andReturn(payload).anyTimes();
-    EasyMock.expect(request1.getContentLength()).andReturn(input.available())
-        .anyTimes();
+    EasyMock.expect(request1.getContentLength()).andReturn(input.available()).anyTimes();
     EasyMock.expect(request1.getContentType()).andReturn("text/xml").anyTimes();
-    EasyMock.expect(request1.getHeader("Content-Encoding")).andReturn("gzip")
-        .anyTimes();
-    EasyMock.expect(request1.getHeader("Host")).andReturn("sourcehost.com")
-        .anyTimes();
+    EasyMock.expect(request1.getHeader("Content-Encoding")).andReturn("gzip").anyTimes();
+    EasyMock.expect(request1.getHeader("Host")).andReturn("sourcehost.com").anyTimes();
 
     /* Request wih Content-Type:application/gzip and Content-Encoding:gzip */
-    HttpServletRequest request2 = EasyMock
-        .createNiceMock(HttpServletRequest.class);
+    HttpServletRequest request2 = EasyMock.createNiceMock(HttpServletRequest.class);
     EasyMock.expect(request2.getScheme()).andReturn("https").anyTimes();
-    EasyMock.expect(request2.getServerName()).andReturn("targethost.com")
-        .anyTimes();
+    EasyMock.expect(request2.getServerName()).andReturn("targethost.com").anyTimes();
     EasyMock.expect(request2.getServerPort()).andReturn(80).anyTimes();
     EasyMock.expect(request2.getRequestURI()).andReturn("/").anyTimes();
     EasyMock.expect(request2.getQueryString()).andReturn(null).anyTimes();
     EasyMock.expect(request2.getInputStream()).andReturn(payload).anyTimes();
-    EasyMock.expect(request2.getContentLength()).andReturn(input.available())
-        .anyTimes();
-    EasyMock.expect(request2.getContentType()).andReturn("application/gzip")
-        .anyTimes();
-    EasyMock.expect(request2.getHeader("Content-Encoding")).andReturn("gzip")
-        .anyTimes();
-    EasyMock.expect(request2.getHeader("Host")).andReturn("sourcehost.com")
-        .anyTimes();
+    EasyMock.expect(request2.getContentLength()).andReturn(input.available()).anyTimes();
+    EasyMock.expect(request2.getContentType()).andReturn("application/gzip").anyTimes();
+    EasyMock.expect(request2.getHeader("Content-Encoding")).andReturn("gzip").anyTimes();
+    EasyMock.expect(request2.getHeader("Host")).andReturn("sourcehost.com").anyTimes();
 
     /* Request wih Content-Type:application/gzip no content encoding */
-    HttpServletRequest request3 = EasyMock
-        .createNiceMock(HttpServletRequest.class);
+    HttpServletRequest request3 = EasyMock.createNiceMock(HttpServletRequest.class);
     EasyMock.expect(request3.getScheme()).andReturn("https").anyTimes();
-    EasyMock.expect(request3.getServerName()).andReturn("targethost.com")
-        .anyTimes();
+    EasyMock.expect(request3.getServerName()).andReturn("targethost.com").anyTimes();
     EasyMock.expect(request3.getServerPort()).andReturn(80).anyTimes();
     EasyMock.expect(request3.getRequestURI()).andReturn("/").anyTimes();
     EasyMock.expect(request3.getQueryString()).andReturn(null).anyTimes();
     EasyMock.expect(request3.getInputStream()).andReturn(payload).anyTimes();
-    EasyMock.expect(request3.getContentLength()).andReturn(input.available())
-        .anyTimes();
-    EasyMock.expect(request3.getContentType()).andReturn("application/gzip")
-        .anyTimes();
-    EasyMock.expect(request3.getHeader("Host")).andReturn("sourcehost.com")
-        .anyTimes();
+    EasyMock.expect(request3.getContentLength()).andReturn(input.available()).anyTimes();
+    EasyMock.expect(request3.getContentType()).andReturn("application/gzip").anyTimes();
+    EasyMock.expect(request3.getHeader("Host")).andReturn("sourcehost.com").anyTimes();
 
-    HttpServletResponse response = EasyMock
-        .createNiceMock(HttpServletResponse.class);
+    HttpServletResponse response = EasyMock.createNiceMock(HttpServletResponse.class);
 
     EasyMock.replay(context, config, response, request1, request2, request3);
 
@@ -343,7 +313,75 @@ public class UrlRewriteRequestTest {
     entity = new InputStreamEntity(inputStream, request1.getContentLength(),
         ContentType.parse("application/gzip"));
     entity.writeTo(results);
-
   }
 
+  @Test
+  public void testUnicodePayload() throws Exception {
+    String data = "<?xml version=\"1.0\" standalone=\"no\"?><data>abc-大数据</data>";
+
+    final ByteArrayInputStream bai = new ByteArrayInputStream(
+        data.getBytes(StandardCharsets.UTF_8));
+
+    final ServletInputStream payload = new ServletInputStream() {
+      @Override
+      public int read() {
+        return bai.read();
+      }
+
+      @Override
+      public int available() {
+        return bai.available();
+      }
+
+      @Override
+      public boolean isFinished() {
+        return false;
+      }
+
+      @Override
+      public boolean isReady() {
+        return false;
+      }
+
+      @Override
+      public void setReadListener(ReadListener readListener) {
+      }
+    };
+
+    UrlRewriteProcessor rewriter = EasyMock.createNiceMock(UrlRewriteProcessor.class);
+
+    ServletContext context = EasyMock.createNiceMock(ServletContext.class);
+    EasyMock.expect(context.getServletContextName())
+        .andReturn("test-cluster-name").anyTimes();
+    EasyMock.expect(context.getInitParameter("test-init-param-name"))
+        .andReturn("test-init-param-value").anyTimes();
+    EasyMock.expect(context.getAttribute(
+        UrlRewriteServletContextListener.PROCESSOR_ATTRIBUTE_NAME))
+        .andReturn(rewriter).anyTimes();
+
+    FilterConfig config = EasyMock.createNiceMock(FilterConfig.class);
+    EasyMock.expect(config.getInitParameter("test-filter-init-param-name"))
+        .andReturn("test-filter-init-param-value").anyTimes();
+    EasyMock.expect(config.getServletContext()).andReturn(context).anyTimes();
+
+    HttpServletRequest request = EasyMock.createNiceMock(HttpServletRequest.class);
+    EasyMock.expect(request.getScheme()).andReturn("https").anyTimes();
+    EasyMock.expect(request.getServerName()).andReturn("targethost.com").anyTimes();
+    EasyMock.expect(request.getServerPort()).andReturn(80).anyTimes();
+    EasyMock.expect(request.getRequestURI()).andReturn("/").anyTimes();
+    EasyMock.expect(request.getQueryString()).andReturn(null).anyTimes();
+    EasyMock.expect(request.getHeader("Host")).andReturn("sourcehost.com").anyTimes();
+
+    EasyMock.expect(request.getMethod()).andReturn("POST").anyTimes();
+    EasyMock.expect(request.getContentType()).andReturn("application/xml").anyTimes();
+    EasyMock.expect(request.getInputStream()).andReturn(payload).anyTimes();
+    EasyMock.expect(request.getContentLength()).andReturn(-1).anyTimes();
+
+    HttpServletResponse response = EasyMock.createNiceMock(HttpServletResponse.class);
+    EasyMock.replay(rewriter, context, config, request, response);
+
+    UrlRewriteRequest rewriteRequest = new UrlRewriteRequest(config, request);
+
+    assertEquals(data, IOUtils.toString(rewriteRequest.getInputStream(), StandardCharsets.UTF_8));
+  }
 }
diff --git a/gateway-provider-rewrite/src/test/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteResponseTest.java b/gateway-provider-rewrite/src/test/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteResponseTest.java
index 14d9a6a..93df8bc 100644
--- a/gateway-provider-rewrite/src/test/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteResponseTest.java
+++ b/gateway-provider-rewrite/src/test/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteResponseTest.java
@@ -24,17 +24,16 @@ import org.apache.knox.gateway.filter.rewrite.api.UrlRewriteServletFilter;
 import org.easymock.EasyMock;
 import org.junit.Test;
 
-import javax.activation.MimeTypeParseException;
 import javax.servlet.FilterConfig;
 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
+import java.nio.file.Path;
 import java.util.List;
 import java.util.zip.GZIPInputStream;
 import java.util.zip.GZIPOutputStream;
@@ -116,7 +115,31 @@ public class UrlRewriteResponseTest {
   }
 
   @Test
-  public void testStreamResponse() throws IOException, MimeTypeParseException {
+  public void testStreamXmlUnicodeResponse() throws IOException {
+    UrlRewriteProcessor rewriter = EasyMock.createNiceMock(UrlRewriteProcessor.class);
+    EasyMock.expect(rewriter.getConfig()).andReturn(null).anyTimes();
+
+    ServletContext context = EasyMock.createNiceMock(ServletContext.class);
+    EasyMock.expect(context.getAttribute(UrlRewriteServletContextListener.PROCESSOR_ATTRIBUTE_NAME)).andReturn(rewriter).anyTimes();
+
+    FilterConfig config = EasyMock.createNiceMock(FilterConfig.class);
+    EasyMock.expect(config.getInitParameter(UrlRewriteServletFilter.RESPONSE_BODY_FILTER_PARAM)).andReturn("test-filter").anyTimes();
+    EasyMock.expect(config.getServletContext()).andReturn(context).anyTimes();
+
+    HttpServletRequest request = EasyMock.createNiceMock(HttpServletRequest.class);
+    EasyMock.expect(request.getContentType()).andReturn("application/xml");
+    HttpServletResponse response = EasyMock.createNiceMock(HttpServletResponse.class);
+    EasyMock.expect(response.getContentType()).andReturn("application/xml");
+
+    EasyMock.replay(rewriter, context, config, request, response);
+
+    UrlRewriteResponse rewriteResponse = new UrlRewriteResponse(config, request, response);
+    String content = "<?xml version=\"1.0\" standalone=\"no\"?><data>abc-大数据</data>";
+    testStreamResponse(content, rewriteResponse, false);
+  }
+
+  @Test
+  public void testStreamResponse() throws IOException {
     UrlRewriteProcessor rewriter = EasyMock.createNiceMock( UrlRewriteProcessor.class );
     EasyMock.expect( rewriter.getConfig() ).andReturn( null ).anyTimes();
 
@@ -135,32 +158,31 @@ public class UrlRewriteResponseTest {
     UrlRewriteResponse rewriteResponse = new UrlRewriteResponse( config, request, response );
 
     String content = "content to test gzip streaming";
-    testStreamResponseGzip ( content, rewriteResponse, false );
-    testStreamResponseGzip ( content, rewriteResponse, true );
+    testStreamResponse(content, rewriteResponse, false);
+    testStreamResponse(content, rewriteResponse, true);
   }
 
-  private void testStreamResponseGzip( String content, UrlRewriteResponse rewriteResponse , boolean isGzip ) throws IOException {
-    File targetDir = new File( System.getProperty( "user.dir" ), "target" );
-    File inputFile = new File( targetDir, "input.test" );
-    File outputFile = new File( targetDir, "output.test" );
-    try (OutputStream outputStream = Files.newOutputStream(inputFile.toPath())) {
-      try(OutputStream outStream = isGzip ? new GZIPOutputStream( outputStream ) : outputStream) {
+  private void testStreamResponse(String content, UrlRewriteResponse rewriteResponse, boolean isGzip) throws IOException {
+    Path inputFile = Files.createTempFile("input", "test");
+    Path outputFile = Files.createTempFile("output", "test");
+    try {
+      try(OutputStream outputStream = Files.newOutputStream(inputFile);
+          OutputStream outStream = isGzip ? new GZIPOutputStream( outputStream ) : outputStream) {
         outStream.write(content.getBytes(StandardCharsets.UTF_8));
       }
 
-      try(InputStream input = Files.newInputStream(inputFile.toPath());
-          OutputStream output = Files.newOutputStream(outputFile.toPath())){
-
+      try(InputStream input = Files.newInputStream(inputFile);
+          OutputStream output = Files.newOutputStream(outputFile)) {
         rewriteResponse.streamResponse(input, output);
       }
 
-      try(InputStream inputStream = Files.newInputStream(outputFile.toPath());
+      try(InputStream inputStream = Files.newInputStream(outputFile);
           InputStream inStream = isGzip ? new GZIPInputStream(inputStream) : inputStream) {
         assertThat(String.valueOf(IOUtils.toCharArray(inStream, StandardCharsets.UTF_8)), is(content));
       }
     } finally {
-      inputFile.delete();
-      outputFile.delete();
+      Files.delete(inputFile);
+      Files.delete(outputFile);
     }
   }
 }