Correct issues with encoding of plus character

Also remove some questionable decoding.
pull/139/merge
Andrew Gaul 2016-06-01 11:18:13 -07:00
rodzic e7bb6ddb47
commit d6c81c9b64
2 zmienionych plików z 5 dodań i 6 usunięć

Wyświetl plik

@ -1176,7 +1176,8 @@ final class S3ProxyHandler extends AbstractHandler {
xml.writeStartElement("Contents"); xml.writeStartElement("Contents");
writeSimpleElement(xml, "Key", metadata.getName()); writeSimpleElement(xml, "Key", encodeBlob(encodingType,
metadata.getName()));
Date lastModified = metadata.getLastModified(); Date lastModified = metadata.getLastModified();
if (lastModified != null) { if (lastModified != null) {
@ -2556,9 +2557,7 @@ final class S3ProxyHandler extends AbstractHandler {
"UTF-8"); "UTF-8");
for (String key : parameters) { for (String key : parameters) {
// re-encode keys and values in AWS normalized form // re-encode keys and values in AWS normalized form
key = URLDecoder.decode(key, charsetName); String value = request.getParameter(key);
String value = URLDecoder.decode(request.getParameter(key),
charsetName);
queryParameters.add(AWS_URL_PARAMETER_ESCAPER.escape(key) + queryParameters.add(AWS_URL_PARAMETER_ESCAPER.escape(key) +
"=" + AWS_URL_PARAMETER_ESCAPER.escape(value)); "=" + AWS_URL_PARAMETER_ESCAPER.escape(value));
} }

Wyświetl plik

@ -416,8 +416,8 @@ public final class S3AwsSdkTest {
} }
@Test @Test
public void testListSpecialCharacters() throws Exception { public void testSpecialCharacters() throws Exception {
String prefix = "test_dir/special */"; String prefix = "special ~`!@#$%^&*()-_+=[]{}\\|;:'\"<>,./?";
String blobName = prefix + "foo"; String blobName = prefix + "foo";
ObjectMetadata metadata = new ObjectMetadata(); ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentLength(BYTE_SOURCE.size()); metadata.setContentLength(BYTE_SOURCE.size());