From a4d21e3cd642dcbafa18a3be4995465755487e16 Mon Sep 17 00:00:00 2001 From: Matt Gilman Date: Wed, 17 Jun 2015 08:52:17 -0400 Subject: [PATCH] NIFI-693: - Filename in Content-Disposition should be quoted. --- .../java/org/apache/nifi/web/StandardNiFiContentAccess.java | 2 +- .../main/java/org/apache/nifi/web/api/ProvenanceResource.java | 4 ++-- .../main/java/org/apache/nifi/web/api/TemplateResource.java | 2 +- .../main/java/org/apache/nifi/web/servlet/DownloadSvg.java | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiContentAccess.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiContentAccess.java index 18c888ec11..2f750041b8 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiContentAccess.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiContentAccess.java @@ -107,7 +107,7 @@ public class StandardNiFiContentAccess implements ContentAccess { // get the file name final String contentDisposition = responseHeaders.getFirst("Content-Disposition"); - final String filename = StringUtils.substringAfterLast(contentDisposition, "filename="); + final String filename = StringUtils.substringBetween(contentDisposition, "filename=\"", "\""); // get the content type final String contentType = responseHeaders.getFirst("Content-Type"); diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProvenanceResource.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProvenanceResource.java index a2e7ef3b7c..9460f73822 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProvenanceResource.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProvenanceResource.java @@ -362,7 +362,7 @@ public class ProvenanceResource extends ApplicationResource { contentType = MediaType.APPLICATION_OCTET_STREAM; } - return generateOkResponse(response).type(contentType).header("Content-Disposition", String.format("attachment; filename=%s", content.getFilename())).build(); + return generateOkResponse(response).type(contentType).header("Content-Disposition", String.format("attachment; filename=\"%s\"", content.getFilename())).build(); } /** @@ -461,7 +461,7 @@ public class ProvenanceResource extends ApplicationResource { contentType = MediaType.APPLICATION_OCTET_STREAM; } - return generateOkResponse(response).type(contentType).header("Content-Disposition", String.format("attachment; filename=%s", content.getFilename())).build(); + return generateOkResponse(response).type(contentType).header("Content-Disposition", String.format("attachment; filename=\"%s\"", content.getFilename())).build(); } /** diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/TemplateResource.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/TemplateResource.java index 7e021986f6..03debbb5dc 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/TemplateResource.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/TemplateResource.java @@ -428,7 +428,7 @@ public class TemplateResource extends ApplicationResource { } // generate the response - return generateOkResponse(template).header("Content-Disposition", String.format("attachment; filename=%s.xml", attachmentName)).build(); + return generateOkResponse(template).header("Content-Disposition", String.format("attachment; filename=\"%s.xml\"", attachmentName)).build(); } /** diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/java/org/apache/nifi/web/servlet/DownloadSvg.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/java/org/apache/nifi/web/servlet/DownloadSvg.java index d9129983ba..5420a63552 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/java/org/apache/nifi/web/servlet/DownloadSvg.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/java/org/apache/nifi/web/servlet/DownloadSvg.java @@ -70,7 +70,7 @@ public class DownloadSvg extends HttpServlet { } response.setContentType("image/svg+xml"); - response.setHeader("Content-Disposition", "attachment; filename=" + filename); + response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\""); response.setStatus(HttpServletResponse.SC_OK); response.getWriter().print(svg);