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()); }
