mirror of
https://github.com/curl/curl.git
synced 2024-12-27 06:59:43 +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
70 lines
1.2 KiB
Plaintext
70 lines
1.2 KiB
Plaintext
<testcase>
|
|
<info>
|
|
<keywords>
|
|
HTTP
|
|
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 AWS_SIGV4 with two providers and region
|
|
</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>
|
|
GET /%TESTNUMBER/testapi/test HTTP/1.1
|
|
Host: 127.0.0.1:9000
|
|
Authorization: XXX4-HMAC-SHA256 Credential=xxx/19700101/rrr/127/xxx4_request, SignedHeaders=content-type;host;x-yyy-date, Signature=a0b11b97b54689428d4188b788ed32865d607822d85d3e91cf06141f479dac0b
|
|
X-Yyy-Date: 19700101T000000Z
|
|
|
|
</protocol>
|
|
</verify>
|
|
</testcase>
|