Repository: jclouds
Updated Branches:
  refs/heads/master 624367dfb -> 17cef5652


[JCLOUDS-1363] - Fix case sensitivity of blobstore metadata

HTTP headers are case insensitive by nature (see RFC 2616). When 
addUserMetadataTo check if this is indeed a user metadata header, it must 
properly ignore case.
The fix make sure that both metadataPrefix and the header key are compared with 
toLowerCase().

This solves issue with minio metadata read


Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/17cef565
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/17cef565
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/17cef565

Branch: refs/heads/master
Commit: 17cef5652f69d46acdd88b69517043bf051212b1
Parents: 624367d
Author: Yuval Kashtan <[email protected]>
Authored: Thu Nov 30 10:22:57 2017 +0200
Committer: Ignasi Barrera <[email protected]>
Committed: Thu Dec 7 08:52:50 2017 +0100

----------------------------------------------------------------------
 .../functions/ParseSystemAndUserMetadataFromHeaders.java         | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/17cef565/blobstore/src/main/java/org/jclouds/blobstore/functions/ParseSystemAndUserMetadataFromHeaders.java
----------------------------------------------------------------------
diff --git 
a/blobstore/src/main/java/org/jclouds/blobstore/functions/ParseSystemAndUserMetadataFromHeaders.java
 
b/blobstore/src/main/java/org/jclouds/blobstore/functions/ParseSystemAndUserMetadataFromHeaders.java
index e2012ff..cc2abb7 100644
--- 
a/blobstore/src/main/java/org/jclouds/blobstore/functions/ParseSystemAndUserMetadataFromHeaders.java
+++ 
b/blobstore/src/main/java/org/jclouds/blobstore/functions/ParseSystemAndUserMetadataFromHeaders.java
@@ -56,7 +56,7 @@ public class ParseSystemAndUserMetadataFromHeaders implements 
Function<HttpRespo
             @Named(PROPERTY_USER_METADATA_PREFIX) String metadataPrefix) {
       this.metadataFactory = checkNotNull(metadataFactory, "metadataFactory");
       this.dateParser = checkNotNull(dateParser, "dateParser");
-      this.metadataPrefix = checkNotNull(metadataPrefix, "metadataPrefix");
+      this.metadataPrefix = checkNotNull(metadataPrefix, 
"metadataPrefix").toLowerCase();
    }
 
    public MutableBlobMetadata apply(HttpResponse from) {
@@ -77,7 +77,7 @@ public class ParseSystemAndUserMetadataFromHeaders implements 
Function<HttpRespo
    @VisibleForTesting
    void addUserMetadataTo(HttpResponse from, MutableBlobMetadata metadata) {
       for (Entry<String, String> header : from.getHeaders().entries()) {
-         if (header.getKey() != null && 
header.getKey().startsWith(metadataPrefix))
+         if (header.getKey() != null && 
header.getKey().toLowerCase().startsWith(metadataPrefix))
             
metadata.getUserMetadata().put((header.getKey().substring(metadataPrefix.length())).toLowerCase(),
                      header.getValue());
       }

Reply via email to