113498266Sopenharmony_ci<testcase> 213498266Sopenharmony_ci<info> 313498266Sopenharmony_ci<keywords> 413498266Sopenharmony_ciHTTP 513498266Sopenharmony_ciHTTP GET 613498266Sopenharmony_ciHTTP Basic auth 713498266Sopenharmony_ciHTTP Digest auth 813498266Sopenharmony_ci</keywords> 913498266Sopenharmony_ci</info> 1013498266Sopenharmony_ci# Server-side 1113498266Sopenharmony_ci<reply> 1213498266Sopenharmony_ci 1313498266Sopenharmony_ci<!-- Alternate the order that Basic and Digest headers appear in responses to 1413498266Sopenharmony_ciensure that the order doesn't matter. --> 1513498266Sopenharmony_ci 1613498266Sopenharmony_ci<!-- First request has Digest auth, wrong password --> 1713498266Sopenharmony_ci<data100> 1813498266Sopenharmony_ciHTTP/1.1 401 Need Basic or Digest auth 1913498266Sopenharmony_ciServer: Microsoft-IIS/5.0 2013498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 2113498266Sopenharmony_ciContent-Length: 27 2213498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", nonce="1" 2313498266Sopenharmony_ciWWW-Authenticate: Basic realm="testrealm" 2413498266Sopenharmony_ci 2513498266Sopenharmony_ciThis is not the real page! 2613498266Sopenharmony_ci</data100> 2713498266Sopenharmony_ci 2813498266Sopenharmony_ci<data1100> 2913498266Sopenharmony_ciHTTP/1.1 401 Sorry wrong password 3013498266Sopenharmony_ciServer: Microsoft-IIS/5.0 3113498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 3213498266Sopenharmony_ciContent-Length: 29 3313498266Sopenharmony_ciWWW-Authenticate: Basic realm="testrealm" 3413498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", nonce="2" 3513498266Sopenharmony_ci 3613498266Sopenharmony_ciThis is a bad password page! 3713498266Sopenharmony_ci</data1100> 3813498266Sopenharmony_ci 3913498266Sopenharmony_ci<!-- Second request has Basic auth, right password --> 4013498266Sopenharmony_ci<data200> 4113498266Sopenharmony_ciHTTP/1.1 200 Things are fine in server land 4213498266Sopenharmony_ciServer: Microsoft-IIS/5.0 4313498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 4413498266Sopenharmony_ciContent-Length: 32 4513498266Sopenharmony_ci 4613498266Sopenharmony_ciFinally, this is the real page! 4713498266Sopenharmony_ci</data200> 4813498266Sopenharmony_ci 4913498266Sopenharmony_ci<!-- Third request has Digest auth, wrong password --> 5013498266Sopenharmony_ci<data300> 5113498266Sopenharmony_ciHTTP/1.1 401 Need Basic or Digest auth (2) 5213498266Sopenharmony_ciServer: Microsoft-IIS/5.0 5313498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 5413498266Sopenharmony_ciContent-Length: 27 5513498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", nonce="3" 5613498266Sopenharmony_ciWWW-Authenticate: Basic realm="testrealm" 5713498266Sopenharmony_ci 5813498266Sopenharmony_ciThis is not the real page! 5913498266Sopenharmony_ci</data300> 6013498266Sopenharmony_ci 6113498266Sopenharmony_ci<data1300> 6213498266Sopenharmony_ciHTTP/1.1 401 Sorry wrong password (2) 6313498266Sopenharmony_ciServer: Microsoft-IIS/5.0 6413498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 6513498266Sopenharmony_ciContent-Length: 29 6613498266Sopenharmony_ciWWW-Authenticate: Basic realm="testrealm" 6713498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", nonce="4" 6813498266Sopenharmony_ci 6913498266Sopenharmony_ciThis is a bad password page! 7013498266Sopenharmony_ci</data1300> 7113498266Sopenharmony_ci 7213498266Sopenharmony_ci<!-- Fourth request has Basic auth, wrong password --> 7313498266Sopenharmony_ci<data400> 7413498266Sopenharmony_ciHTTP/1.1 401 Sorry wrong password (3) 7513498266Sopenharmony_ciServer: Microsoft-IIS/5.0 7613498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 7713498266Sopenharmony_ciContent-Length: 29 7813498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", nonce="5" 7913498266Sopenharmony_ciWWW-Authenticate: Basic realm="testrealm" 8013498266Sopenharmony_ci 8113498266Sopenharmony_ciThis is a bad password page! 8213498266Sopenharmony_ci</data400> 8313498266Sopenharmony_ci 8413498266Sopenharmony_ci<!-- Fifth request has Basic auth, right password --> 8513498266Sopenharmony_ci<data500> 8613498266Sopenharmony_ciHTTP/1.1 200 Things are fine in server land (2) 8713498266Sopenharmony_ciServer: Microsoft-IIS/5.0 8813498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 8913498266Sopenharmony_ciContent-Length: 32 9013498266Sopenharmony_ci 9113498266Sopenharmony_ciFinally, this is the real page! 9213498266Sopenharmony_ci</data500> 9313498266Sopenharmony_ci 9413498266Sopenharmony_ci<datacheck> 9513498266Sopenharmony_ciHTTP/1.1 401 Need Basic or Digest auth 9613498266Sopenharmony_ciServer: Microsoft-IIS/5.0 9713498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 9813498266Sopenharmony_ciContent-Length: 27 9913498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", nonce="1" 10013498266Sopenharmony_ciWWW-Authenticate: Basic realm="testrealm" 10113498266Sopenharmony_ci 10213498266Sopenharmony_ciHTTP/1.1 401 Sorry wrong password 10313498266Sopenharmony_ciServer: Microsoft-IIS/5.0 10413498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 10513498266Sopenharmony_ciContent-Length: 29 10613498266Sopenharmony_ciWWW-Authenticate: Basic realm="testrealm" 10713498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", nonce="2" 10813498266Sopenharmony_ci 10913498266Sopenharmony_ciThis is a bad password page! 11013498266Sopenharmony_ciHTTP/1.1 200 Things are fine in server land 11113498266Sopenharmony_ciServer: Microsoft-IIS/5.0 11213498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 11313498266Sopenharmony_ciContent-Length: 32 11413498266Sopenharmony_ci 11513498266Sopenharmony_ciFinally, this is the real page! 11613498266Sopenharmony_ciHTTP/1.1 401 Need Basic or Digest auth (2) 11713498266Sopenharmony_ciServer: Microsoft-IIS/5.0 11813498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 11913498266Sopenharmony_ciContent-Length: 27 12013498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", nonce="3" 12113498266Sopenharmony_ciWWW-Authenticate: Basic realm="testrealm" 12213498266Sopenharmony_ci 12313498266Sopenharmony_ciHTTP/1.1 401 Sorry wrong password (2) 12413498266Sopenharmony_ciServer: Microsoft-IIS/5.0 12513498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 12613498266Sopenharmony_ciContent-Length: 29 12713498266Sopenharmony_ciWWW-Authenticate: Basic realm="testrealm" 12813498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", nonce="4" 12913498266Sopenharmony_ci 13013498266Sopenharmony_ciThis is a bad password page! 13113498266Sopenharmony_ciHTTP/1.1 401 Sorry wrong password (3) 13213498266Sopenharmony_ciServer: Microsoft-IIS/5.0 13313498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 13413498266Sopenharmony_ciContent-Length: 29 13513498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", nonce="5" 13613498266Sopenharmony_ciWWW-Authenticate: Basic realm="testrealm" 13713498266Sopenharmony_ci 13813498266Sopenharmony_ciThis is a bad password page! 13913498266Sopenharmony_ciHTTP/1.1 200 Things are fine in server land (2) 14013498266Sopenharmony_ciServer: Microsoft-IIS/5.0 14113498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 14213498266Sopenharmony_ciContent-Length: 32 14313498266Sopenharmony_ci 14413498266Sopenharmony_ciFinally, this is the real page! 14513498266Sopenharmony_ci</datacheck> 14613498266Sopenharmony_ci 14713498266Sopenharmony_ci</reply> 14813498266Sopenharmony_ci 14913498266Sopenharmony_ci# Client-side 15013498266Sopenharmony_ci<client> 15113498266Sopenharmony_ci<server> 15213498266Sopenharmony_cihttp 15313498266Sopenharmony_ci</server> 15413498266Sopenharmony_ci<features> 15513498266Sopenharmony_ci!SSPI 15613498266Sopenharmony_cicrypto 15713498266Sopenharmony_ci</features> 15813498266Sopenharmony_ci<tool> 15913498266Sopenharmony_cilibauthretry 16013498266Sopenharmony_ci</tool> 16113498266Sopenharmony_ci 16213498266Sopenharmony_ci<name> 16313498266Sopenharmony_ciHTTP authorization retry (Digest switching to Basic) 16413498266Sopenharmony_ci</name> 16513498266Sopenharmony_ci <setenv> 16613498266Sopenharmony_ci# we force our own host name, in order to make the test machine independent 16713498266Sopenharmony_ciCURL_GETHOSTNAME=curlhost 16813498266Sopenharmony_ci# we try to use the LD_PRELOAD hack, if not a debug build 16913498266Sopenharmony_ciLD_PRELOAD=%PWD/libtest/.libs/libhostname.so 17013498266Sopenharmony_ci </setenv> 17113498266Sopenharmony_ci<command> 17213498266Sopenharmony_cihttp://%HOSTIP:%HTTPPORT/%TESTNUMBER digest basic 17313498266Sopenharmony_ci</command> 17413498266Sopenharmony_ci<precheck> 17513498266Sopenharmony_cichkhostname curlhost 17613498266Sopenharmony_ci</precheck> 17713498266Sopenharmony_ci</client> 17813498266Sopenharmony_ci 17913498266Sopenharmony_ci# Verify data after the test has been "shot" 18013498266Sopenharmony_ci<verify> 18113498266Sopenharmony_ci<protocol> 18213498266Sopenharmony_ciGET /%TESTNUMBER0100 HTTP/1.1 18313498266Sopenharmony_ciHost: %HOSTIP:%HTTPPORT 18413498266Sopenharmony_ciAccept: */* 18513498266Sopenharmony_ci 18613498266Sopenharmony_ciGET /%TESTNUMBER0100 HTTP/1.1 18713498266Sopenharmony_ciHost: %HOSTIP:%HTTPPORT 18813498266Sopenharmony_ciAuthorization: Digest username="testuser", realm="testrealm", nonce="1", uri="/%TESTNUMBER0100", response="5f992a2e761ab926256419f7c685f85b" 18913498266Sopenharmony_ciAccept: */* 19013498266Sopenharmony_ci 19113498266Sopenharmony_ciGET /%TESTNUMBER0200 HTTP/1.1 19213498266Sopenharmony_ciHost: %HOSTIP:%HTTPPORT 19313498266Sopenharmony_ciAuthorization: Basic dGVzdHVzZXI6dGVzdHBhc3M= 19413498266Sopenharmony_ciAccept: */* 19513498266Sopenharmony_ci 19613498266Sopenharmony_ciGET /%TESTNUMBER0300 HTTP/1.1 19713498266Sopenharmony_ciHost: %HOSTIP:%HTTPPORT 19813498266Sopenharmony_ciAccept: */* 19913498266Sopenharmony_ci 20013498266Sopenharmony_ciGET /%TESTNUMBER0300 HTTP/1.1 20113498266Sopenharmony_ciHost: %HOSTIP:%HTTPPORT 20213498266Sopenharmony_ciAuthorization: Digest username="testuser", realm="testrealm", nonce="3", uri="/%TESTNUMBER0300", response="132242e602882251929be93228c830ae" 20313498266Sopenharmony_ciAccept: */* 20413498266Sopenharmony_ci 20513498266Sopenharmony_ciGET /%TESTNUMBER0400 HTTP/1.1 20613498266Sopenharmony_ciHost: %HOSTIP:%HTTPPORT 20713498266Sopenharmony_ciAuthorization: Basic dGVzdHVzZXI6d3JvbmdwYXNz 20813498266Sopenharmony_ciAccept: */* 20913498266Sopenharmony_ci 21013498266Sopenharmony_ciGET /%TESTNUMBER0500 HTTP/1.1 21113498266Sopenharmony_ciHost: %HOSTIP:%HTTPPORT 21213498266Sopenharmony_ciAuthorization: Basic dGVzdHVzZXI6dGVzdHBhc3M= 21313498266Sopenharmony_ciAccept: */* 21413498266Sopenharmony_ci 21513498266Sopenharmony_ci</protocol> 21613498266Sopenharmony_ci</verify> 21713498266Sopenharmony_ci</testcase> 218