[Cyberduck-trac] [Cyberduck] #10170: Cyberduck does not send the Expect header, but adds it in the list of the SignedHeaders for AWS4 signature

Cyberduck trac at cyberduck.io
Thu Dec 7 23:21:16 UTC 2017


#10170: Cyberduck does not send the Expect header, but adds it in the list of the
SignedHeaders for AWS4 signature
-------------------------+-------------------
    Reporter:  zioproto  |      Owner:
        Type:  defect    |     Status:  new
    Priority:  normal    |  Milestone:
   Component:  core      |    Version:  6.3.1
    Severity:  normal    |   Keywords:
Architecture:            |   Platform:
-------------------------+-------------------
 I have a problem with Cyberduck 6.3.1 connecting to my Rados Gateway with
 the S3 protocol.

 Cyberduck does not send the Expect header, but adds it in the list of the
 SignedHeaders.

 The AWS4 signature is not working because Cyberduck sends this
 Authentication header:

 Authorization: AWS4-HMAC-SHA256 Credential=[..stripped..out..]/20171206
 /us-east-1/s3/aws4_request,SignedHeaders=content-type;date;expect;host;x
 -amz-content-sha256;x-amz-
 date,Signature=ec83ddc9de6b379c929a8307ff5cb918a2ffad533e11408c079607ad8004cf3f
 User-Agent: Cyberduck/6.3.1.27228 (Mac OS X/10.12.6) (x86_64)

 The SignedHeaders contains the "expect" header, however Cyberduck is not
 sending this header out in the HTTP request.

 I tried adding with Nginx in the middle the missing header:

 proxy_set_header Expect 100-continue;

 and this fixed it, now the backend can verify the signature because the
 header is there.

 to reproduce just try to create a new bucket

 I use this profile:
 https://svn.cyberduck.io/trunk/profiles/S3%20(HTTPS).cyberduckprofile

--
Ticket URL: <https://trac.cyberduck.io/ticket/10170>
Cyberduck <https://cyberduck.io>
Libre FTP, SFTP, WebDAV, S3 & OpenStack Swift browser for Mac and Windows


More information about the Cyberduck-trac mailing list