1<testcase> 2# Authorization is used to force curl to realize that the server is 3# speaking HTTP 1.0. The request must be resent with the correct 4# authorization header, but using HTTP 1.0, not 1.1. 5<info> 6<keywords> 7HTTP 8HTTP PUT 9HTTP Digest auth 10--anyauth 11HTTP/1.0 12</keywords> 13</info> 14 15# Server-side 16<reply> 17<data> 18HTTP/1.0 401 Authorization Required swsclose 19Server: testcurl 20WWW-Authenticate: Blackmagic realm="gimme all yer s3cr3ts" 21WWW-Authenticate: Basic realm="gimme all yer s3cr3ts" 22WWW-Authenticate: Digest realm="gimme all yer s3cr3ts", nonce="11223344" 23Content-Type: text/plain 24Content-Length: 35 25Connection: close 26 27Try again on this HTTP 1.0 server! 28</data> 29 30# This is supposed to be returned when the server gets a 31# Authorization: Digest line passed-in from the client 32<data1000> 33HTTP/1.0 200 OK swsclose 34Server: testcurl 35Content-Type: text/plain 36Content-Length: 23 37Connection: close 38 39This IS the real page! 40</data1000> 41 42<datacheck> 43HTTP/1.0 401 Authorization Required swsclose 44Server: testcurl 45WWW-Authenticate: Blackmagic realm="gimme all yer s3cr3ts" 46WWW-Authenticate: Basic realm="gimme all yer s3cr3ts" 47WWW-Authenticate: Digest realm="gimme all yer s3cr3ts", nonce="11223344" 48Content-Type: text/plain 49Content-Length: 35 50Connection: close 51 52HTTP/1.0 200 OK swsclose 53Server: testcurl 54Content-Type: text/plain 55Content-Length: 23 56Connection: close 57 58This IS the real page! 59</datacheck> 60 61</reply> 62 63# Client-side 64<client> 65<server> 66http 67</server> 68<features> 69!SSPI 70crypto 71</features> 72<name> 73Downgraded HTTP PUT to HTTP 1.0 with authorization 74</name> 75<command> 76http://%HOSTIP:%HTTPPORT/%TESTNUMBER -T %LOGDIR/put%TESTNUMBER -u testuser:testpass --anyauth 77</command> 78<file name="%LOGDIR/put%TESTNUMBER"> 79This is data we upload with PUT 80a second line 81line three 82four is the number of lines 83</file> 84</client> 85 86# Verify data after the test has been "shot" 87<verify> 88<protocol> 89PUT /%TESTNUMBER HTTP/1.1 90Host: %HOSTIP:%HTTPPORT 91User-Agent: curl/%VERSION 92Accept: */* 93Content-Length: 85 94 95This is data we upload with PUT 96a second line 97line three 98four is the number of lines 99PUT /%TESTNUMBER HTTP/1.0 100Host: %HOSTIP:%HTTPPORT 101Authorization: Digest username="testuser", realm="gimme all yer s3cr3ts", nonce="11223344", uri="/%TESTNUMBER", response="df4cef6b52a30e65d472dd848d2055a1" 102User-Agent: curl/%VERSION 103Accept: */* 104Content-Length: 85 105 106This is data we upload with PUT 107a second line 108line three 109four is the number of lines 110</protocol> 111</verify> 112</testcase> 113