mirror of
https://github.com/curl/curl.git
synced 2024-12-21 06:50:10 +08:00
29c4aa00a1
Handle canonical headers and signed headers creation as explained here: https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html The algo tells that signed and canonical must contain at last host and x-amz-date. So we check whatever thoses are present in the curl http headers list. If they are, we use the one enter by curl user, otherwise we generate them. then we to lower, and remove space from each http headers plus host and x-amz-date, then sort them all by alphabetical order. This patch also fix a bug with host header, which was ignoring the port. Closes #7966
73 lines
1.3 KiB
Plaintext
73 lines
1.3 KiB
Plaintext
<testcase>
|
||
<info>
|
||
<keywords>
|
||
HTTP
|
||
HTTP POST
|
||
CURLOPT_AWS_SIGV4
|
||
</keywords>
|
||
</info>
|
||
|
||
# Server-side
|
||
<reply>
|
||
<data nocheck="yes">
|
||
HTTP/1.1 302 OK
|
||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||
Server: test-server/fake
|
||
Content-Type: text/html
|
||
Content-Length: 0
|
||
Location: /%TESTNUMBER0002
|
||
|
||
</data>
|
||
<data2>
|
||
HTTP/1.1 200 OK
|
||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||
Server: test-server/fake
|
||
Content-Type: text/html
|
||
Content-Length: 0
|
||
|
||
</data2>
|
||
</reply>
|
||
|
||
# Client-side
|
||
<client>
|
||
<server>
|
||
http
|
||
</server>
|
||
# this relies on the debug feature which allow to set the time
|
||
<features>
|
||
SSL
|
||
debug
|
||
crypto
|
||
</features>
|
||
|
||
<name>
|
||
HTTP POST with AWS_SIGV4 for binary data
|
||
</name>
|
||
<tool>
|
||
lib%TESTNUMBER
|
||
</tool>
|
||
|
||
<command>
|
||
http://127.0.0.1:9000/%TESTNUMBER/testapi/test 127.0.0.1:9000:%HOSTIP:%HTTPPORT
|
||
</command>
|
||
</client>
|
||
|
||
# Verify data after the test has been "shot"
|
||
<verify>
|
||
<strip>
|
||
^User-Agent:.*
|
||
^Content-Type:.*
|
||
^Accept:.*
|
||
</strip>
|
||
<protocol nonewline="yes">
|
||
POST /%TESTNUMBER/testapi/test HTTP/1.1
|
||
Host: 127.0.0.1:9000
|
||
Authorization: PROVIDER14-HMAC-SHA256 Credential=keyId/19700101/region/service/provider14_request, SignedHeaders=content-type;host;x-provider2-date, Signature=3436256c7c23adeb66dc15984eaa527edc4a504def61da2e0bf4b01ace4f3c0b
|
||
X-Provider2-Date: 19700101T000000Z
|
||
Content-Length: 9
|
||
|
||
post |