diff --git a/src/main/java/org/gaul/s3proxy/S3ProxyHandler.java b/src/main/java/org/gaul/s3proxy/S3ProxyHandler.java index 7e98c37..8a4e304 100644 --- a/src/main/java/org/gaul/s3proxy/S3ProxyHandler.java +++ b/src/main/java/org/gaul/s3proxy/S3ProxyHandler.java @@ -23,6 +23,7 @@ import java.io.Writer; import java.nio.charset.StandardCharsets; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; +import java.util.Collection; import java.util.Collections; import java.util.Date; import java.util.Enumeration; @@ -679,14 +680,18 @@ final class S3ProxyHandler extends AbstractHandler { SortedSetMultimap canonicalizedHeaders = TreeMultimap.create(); for (String headerName : Collections.list(request.getHeaderNames())) { + Collection headerValues = Collections.list( + request.getHeaders(headerName)); headerName = headerName.toLowerCase(); if (!headerName.startsWith("x-amz-")) { continue; } - for (String headerValue : Collections.list(request.getHeaders( - headerName))) { - canonicalizedHeaders.put(headerName, Strings.nullToEmpty( - headerValue)); + if (headerValues.isEmpty()) { + canonicalizedHeaders.put(headerName, ""); + } + for (String headerValue : headerValues) { + canonicalizedHeaders.put(headerName, + Strings.nullToEmpty(headerValue)); } }