From dd80256151b73bdfd8e69f869177ea671ee78bd7 Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Thu, 15 Feb 2018 14:18:28 -0800 Subject: [PATCH] Directory HEADs with encryption headers shouldn't return errors (#5539) Since we do not encrypt directories we don't need to send errors with encryption headers when the directory doesn't have encryption metadata. Continuation PR from 4ca10479b58c0557c7c8c7c58b623e40b2671c88 --- cmd/object-handlers.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/cmd/object-handlers.go b/cmd/object-handlers.go index fcfb61888..5ae3eafd5 100644 --- a/cmd/object-handlers.go +++ b/cmd/object-handlers.go @@ -240,7 +240,8 @@ func (api objectAPIHandlers) HeadObjectHandler(w http.ResponseWriter, r *http.Re writeErrorResponseHeadersOnly(w, apiErr) return } - if objectAPI.IsEncryptionSupported() { + + if objectAPI.IsEncryptionSupported() && !objInfo.IsDir { if apiErr, encrypted := DecryptObjectInfo(&objInfo, r.Header); apiErr != ErrNone { writeErrorResponse(w, apiErr, r.URL) return @@ -342,17 +343,18 @@ func (api objectAPIHandlers) CopyObjectHandler(w http.ResponseWriter, r *http.Re return } + if IsSSECustomerRequest(r.Header) { // handle SSE-C requests + // SSE-C is not implemented for CopyObject operations yet + writeErrorResponse(w, ErrNotImplemented, r.URL) + return + } + // Check if metadata directive is valid. if !isMetadataDirectiveValid(r.Header) { writeErrorResponse(w, ErrInvalidMetadataDirective, r.URL) return } - if IsSSECustomerRequest(r.Header) { // handle SSE-C requests - // SSE-C is not implemented for CopyObject operations yet - writeErrorResponse(w, ErrNotImplemented, r.URL) - return - } cpSrcDstSame := srcBucket == dstBucket && srcObject == dstObject objInfo, err := objectAPI.GetObjectInfo(srcBucket, srcObject)