113498266Sopenharmony_ci<testcase> 213498266Sopenharmony_ci<info> 313498266Sopenharmony_ci<keywords> 413498266Sopenharmony_ciHTTP 513498266Sopenharmony_ciHTTP GET 613498266Sopenharmony_ciHTTP Digest auth 713498266Sopenharmony_ciHTTP NTLM auth 813498266Sopenharmony_ciNTLM 913498266Sopenharmony_ci</keywords> 1013498266Sopenharmony_ci</info> 1113498266Sopenharmony_ci# Server-side 1213498266Sopenharmony_ci<reply> 1313498266Sopenharmony_ci 1413498266Sopenharmony_ci<!-- Alternate the order that Digest and NTLM headers appear in responses to 1513498266Sopenharmony_ciensure that the order doesn't matter. --> 1613498266Sopenharmony_ci 1713498266Sopenharmony_ci<!-- 1813498266Sopenharmony_ci 1913498266Sopenharmony_ci Explanation for the duplicate 400 requests: 2013498266Sopenharmony_ci 2113498266Sopenharmony_ci libcurl doesn't detect that a given Digest password is wrong already on the 2213498266Sopenharmony_ci first 401 response (as the data400 gives). libcurl will instead consider the 2313498266Sopenharmony_ci new response just as a duplicate and it sends another and detects the auth 2413498266Sopenharmony_ci problem on the second 401 response! 2513498266Sopenharmony_ci 2613498266Sopenharmony_ci--> 2713498266Sopenharmony_ci 2813498266Sopenharmony_ci 2913498266Sopenharmony_ci<!-- First request has NTLM auth, wrong password --> 3013498266Sopenharmony_ci<data100> 3113498266Sopenharmony_ciHTTP/1.1 401 Need Digest or NTLM auth 3213498266Sopenharmony_ciServer: Microsoft-IIS/5.0 3313498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 3413498266Sopenharmony_ciContent-Length: 27 3513498266Sopenharmony_ciWWW-Authenticate: NTLM 3613498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", nonce="1" 3713498266Sopenharmony_ci 3813498266Sopenharmony_ciThis is not the real page! 3913498266Sopenharmony_ci</data100> 4013498266Sopenharmony_ci 4113498266Sopenharmony_ci<data1101> 4213498266Sopenharmony_ciHTTP/1.1 401 NTLM intermediate 4313498266Sopenharmony_ciServer: Microsoft-IIS/5.0 4413498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 4513498266Sopenharmony_ciContent-Length: 33 4613498266Sopenharmony_ciWWW-Authenticate: NTLM TlRMTVNTUAACAAAACAAIADAAAACGgAEAq6U1NAWaJCIAAAAAAAAAAAAAAAA4AAAATlRMTUF1dGg= 4713498266Sopenharmony_ci 4813498266Sopenharmony_ciThis is still not the real page! 4913498266Sopenharmony_ci</data1101> 5013498266Sopenharmony_ci 5113498266Sopenharmony_ci<data1102> 5213498266Sopenharmony_ciHTTP/1.1 401 Sorry wrong password 5313498266Sopenharmony_ciServer: Microsoft-IIS/5.0 5413498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 5513498266Sopenharmony_ciContent-Length: 29 5613498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", nonce="2" 5713498266Sopenharmony_ciWWW-Authenticate: NTLM 5813498266Sopenharmony_ci 5913498266Sopenharmony_ciThis is a bad password page! 6013498266Sopenharmony_ci</data1102> 6113498266Sopenharmony_ci 6213498266Sopenharmony_ci<!-- Second request has Digest auth, right password --> 6313498266Sopenharmony_ci<data200> 6413498266Sopenharmony_ciHTTP/1.1 401 Need Digest or NTLM auth (2) 6513498266Sopenharmony_ciServer: Microsoft-IIS/5.0 6613498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 6713498266Sopenharmony_ciContent-Length: 27 6813498266Sopenharmony_ciWWW-Authenticate: NTLM 6913498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", nonce="3" 7013498266Sopenharmony_ci 7113498266Sopenharmony_ciThis is not the real page! 7213498266Sopenharmony_ci</data200> 7313498266Sopenharmony_ci 7413498266Sopenharmony_ci<data1200> 7513498266Sopenharmony_ciHTTP/1.1 200 Things are fine in server land 7613498266Sopenharmony_ciServer: Microsoft-IIS/5.0 7713498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 7813498266Sopenharmony_ciContent-Length: 32 7913498266Sopenharmony_ci 8013498266Sopenharmony_ciFinally, this is the real page! 8113498266Sopenharmony_ci</data1200> 8213498266Sopenharmony_ci 8313498266Sopenharmony_ci<!-- Third request has NTLM auth, wrong password --> 8413498266Sopenharmony_ci<data300> 8513498266Sopenharmony_ciHTTP/1.1 401 Need Digest or NTLM auth (3) 8613498266Sopenharmony_ciServer: Microsoft-IIS/5.0 8713498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 8813498266Sopenharmony_ciContent-Length: 27 8913498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", nonce="4" 9013498266Sopenharmony_ciWWW-Authenticate: NTLM 9113498266Sopenharmony_ci 9213498266Sopenharmony_ciThis is not the real page! 9313498266Sopenharmony_ci</data300> 9413498266Sopenharmony_ci 9513498266Sopenharmony_ci<data1301> 9613498266Sopenharmony_ciHTTP/1.1 401 NTLM intermediate (2) 9713498266Sopenharmony_ciServer: Microsoft-IIS/5.0 9813498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 9913498266Sopenharmony_ciContent-Length: 33 10013498266Sopenharmony_ciWWW-Authenticate: NTLM TlRMTVNTUAACAAAACAAIADAAAACGgAEAq6U1NAWaJCIAAAAAAAAAAAAAAAA4AAAATlRMTUF1dGg= 10113498266Sopenharmony_ci 10213498266Sopenharmony_ciThis is still not the real page! 10313498266Sopenharmony_ci</data1301> 10413498266Sopenharmony_ci 10513498266Sopenharmony_ci<data1302> 10613498266Sopenharmony_ciHTTP/1.1 401 Sorry wrong password (2) 10713498266Sopenharmony_ciServer: Microsoft-IIS/5.0 10813498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 10913498266Sopenharmony_ciContent-Length: 29 11013498266Sopenharmony_ciWWW-Authenticate: NTLM 11113498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", nonce="5" 11213498266Sopenharmony_ci 11313498266Sopenharmony_ciThis is a bad password page! 11413498266Sopenharmony_ci</data1302> 11513498266Sopenharmony_ci 11613498266Sopenharmony_ci<!-- Fourth request has Digest auth, wrong password --> 11713498266Sopenharmony_ci<data400> 11813498266Sopenharmony_ciHTTP/1.1 401 Need Digest or NTLM auth (4) 11913498266Sopenharmony_ciServer: Microsoft-IIS/5.0 12013498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 12113498266Sopenharmony_ciContent-Length: 27 12213498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", nonce="6" 12313498266Sopenharmony_ciWWW-Authenticate: NTLM 12413498266Sopenharmony_ci 12513498266Sopenharmony_ciThis is not the real page! 12613498266Sopenharmony_ci</data400> 12713498266Sopenharmony_ci 12813498266Sopenharmony_ci<data1400> 12913498266Sopenharmony_ciHTTP/1.1 401 Sorry wrong password (3) 13013498266Sopenharmony_ciServer: Microsoft-IIS/5.0 13113498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 13213498266Sopenharmony_ciContent-Length: 29 13313498266Sopenharmony_ciWWW-Authenticate: NTLM 13413498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", nonce="7" 13513498266Sopenharmony_ci 13613498266Sopenharmony_ciThis is a bad password page! 13713498266Sopenharmony_ci</data1400> 13813498266Sopenharmony_ci 13913498266Sopenharmony_ci<!-- Fifth request has Digest auth, right password --> 14013498266Sopenharmony_ci<data500> 14113498266Sopenharmony_ciHTTP/1.1 401 Need Digest or NTLM auth (5) 14213498266Sopenharmony_ciServer: Microsoft-IIS/5.0 14313498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 14413498266Sopenharmony_ciContent-Length: 27 14513498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", nonce="8" 14613498266Sopenharmony_ciWWW-Authenticate: NTLM 14713498266Sopenharmony_ci 14813498266Sopenharmony_ciThis is not the real page! 14913498266Sopenharmony_ci</data500> 15013498266Sopenharmony_ci 15113498266Sopenharmony_ci<data1500> 15213498266Sopenharmony_ciHTTP/1.1 200 Things are fine in server land (2) 15313498266Sopenharmony_ciServer: Microsoft-IIS/5.0 15413498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 15513498266Sopenharmony_ciContent-Length: 32 15613498266Sopenharmony_ci 15713498266Sopenharmony_ciFinally, this is the real page! 15813498266Sopenharmony_ci</data1500> 15913498266Sopenharmony_ci 16013498266Sopenharmony_ci<datacheck> 16113498266Sopenharmony_ciHTTP/1.1 401 NTLM intermediate 16213498266Sopenharmony_ciServer: Microsoft-IIS/5.0 16313498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 16413498266Sopenharmony_ciContent-Length: 33 16513498266Sopenharmony_ciWWW-Authenticate: NTLM TlRMTVNTUAACAAAACAAIADAAAACGgAEAq6U1NAWaJCIAAAAAAAAAAAAAAAA4AAAATlRMTUF1dGg= 16613498266Sopenharmony_ci 16713498266Sopenharmony_ciHTTP/1.1 401 Sorry wrong password 16813498266Sopenharmony_ciServer: Microsoft-IIS/5.0 16913498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 17013498266Sopenharmony_ciContent-Length: 29 17113498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", nonce="2" 17213498266Sopenharmony_ciWWW-Authenticate: NTLM 17313498266Sopenharmony_ci 17413498266Sopenharmony_ciThis is a bad password page! 17513498266Sopenharmony_ciHTTP/1.1 200 Things are fine in server land 17613498266Sopenharmony_ciServer: Microsoft-IIS/5.0 17713498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 17813498266Sopenharmony_ciContent-Length: 32 17913498266Sopenharmony_ci 18013498266Sopenharmony_ciFinally, this is the real page! 18113498266Sopenharmony_ciHTTP/1.1 401 NTLM intermediate (2) 18213498266Sopenharmony_ciServer: Microsoft-IIS/5.0 18313498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 18413498266Sopenharmony_ciContent-Length: 33 18513498266Sopenharmony_ciWWW-Authenticate: NTLM TlRMTVNTUAACAAAACAAIADAAAACGgAEAq6U1NAWaJCIAAAAAAAAAAAAAAAA4AAAATlRMTUF1dGg= 18613498266Sopenharmony_ci 18713498266Sopenharmony_ciHTTP/1.1 401 Sorry wrong password (2) 18813498266Sopenharmony_ciServer: Microsoft-IIS/5.0 18913498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 19013498266Sopenharmony_ciContent-Length: 29 19113498266Sopenharmony_ciWWW-Authenticate: NTLM 19213498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", nonce="5" 19313498266Sopenharmony_ci 19413498266Sopenharmony_ciThis is a bad password page! 19513498266Sopenharmony_ciHTTP/1.1 401 Sorry wrong password (3) 19613498266Sopenharmony_ciServer: Microsoft-IIS/5.0 19713498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 19813498266Sopenharmony_ciContent-Length: 29 19913498266Sopenharmony_ciWWW-Authenticate: NTLM 20013498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", nonce="7" 20113498266Sopenharmony_ci 20213498266Sopenharmony_ciHTTP/1.1 401 Sorry wrong password (3) 20313498266Sopenharmony_ciServer: Microsoft-IIS/5.0 20413498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 20513498266Sopenharmony_ciContent-Length: 29 20613498266Sopenharmony_ciWWW-Authenticate: NTLM 20713498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", nonce="7" 20813498266Sopenharmony_ci 20913498266Sopenharmony_ciThis is a bad password page! 21013498266Sopenharmony_ciHTTP/1.1 200 Things are fine in server land (2) 21113498266Sopenharmony_ciServer: Microsoft-IIS/5.0 21213498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 21313498266Sopenharmony_ciContent-Length: 32 21413498266Sopenharmony_ci 21513498266Sopenharmony_ciFinally, this is the real page! 21613498266Sopenharmony_ci</datacheck> 21713498266Sopenharmony_ci 21813498266Sopenharmony_ci</reply> 21913498266Sopenharmony_ci 22013498266Sopenharmony_ci# Client-side 22113498266Sopenharmony_ci<client> 22213498266Sopenharmony_ci<features> 22313498266Sopenharmony_ciNTLM 22413498266Sopenharmony_ciSSL 22513498266Sopenharmony_ci!SSPI 22613498266Sopenharmony_ci</features> 22713498266Sopenharmony_ci<server> 22813498266Sopenharmony_cihttp 22913498266Sopenharmony_ci</server> 23013498266Sopenharmony_ci<tool> 23113498266Sopenharmony_cilibauthretry 23213498266Sopenharmony_ci</tool> 23313498266Sopenharmony_ci 23413498266Sopenharmony_ci<name> 23513498266Sopenharmony_ciHTTP authorization retry (NTLM switching to Digest) 23613498266Sopenharmony_ci</name> 23713498266Sopenharmony_ci<command> 23813498266Sopenharmony_cihttp://%HOSTIP:%HTTPPORT/%TESTNUMBER ntlm digest 23913498266Sopenharmony_ci</command> 24013498266Sopenharmony_ci</client> 24113498266Sopenharmony_ci 24213498266Sopenharmony_ci# Verify data after the test has been "shot" 24313498266Sopenharmony_ci<verify> 24413498266Sopenharmony_ci<protocol> 24513498266Sopenharmony_ciGET /%TESTNUMBER0100 HTTP/1.1 24613498266Sopenharmony_ciHost: %HOSTIP:%HTTPPORT 24713498266Sopenharmony_ciAuthorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= 24813498266Sopenharmony_ciAccept: */* 24913498266Sopenharmony_ci 25013498266Sopenharmony_ciGET /%TESTNUMBER0100 HTTP/1.1 25113498266Sopenharmony_ciHost: %HOSTIP:%HTTPPORT 25213498266Sopenharmony_ciAuthorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAALAAsAeAAAAAAAAAAAAAAAhoABANgKEcT5xUUBHw5+0m4FjWTGNzg6PeHJHbaPwNwCt/tXcnIeTQCTMAg12SPDyNXMf3Rlc3R1c2VyV09SS1NUQVRJT04= 25313498266Sopenharmony_ciAccept: */* 25413498266Sopenharmony_ci 25513498266Sopenharmony_ciGET /%TESTNUMBER0200 HTTP/1.1 25613498266Sopenharmony_ciHost: %HOSTIP:%HTTPPORT 25713498266Sopenharmony_ciAuthorization: Digest username="testuser", realm="testrealm", nonce="2", uri="/%TESTNUMBER0200", response="2f2d784ba53a0a307758a90e98d25c27" 25813498266Sopenharmony_ciAccept: */* 25913498266Sopenharmony_ci 26013498266Sopenharmony_ciGET /%TESTNUMBER0300 HTTP/1.1 26113498266Sopenharmony_ciHost: %HOSTIP:%HTTPPORT 26213498266Sopenharmony_ciAuthorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= 26313498266Sopenharmony_ciAccept: */* 26413498266Sopenharmony_ci 26513498266Sopenharmony_ciGET /%TESTNUMBER0300 HTTP/1.1 26613498266Sopenharmony_ciHost: %HOSTIP:%HTTPPORT 26713498266Sopenharmony_ciAuthorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAALAAsAeAAAAAAAAAAAAAAAhoABANgKEcT5xUUBHw5+0m4FjWTGNzg6PeHJHbaPwNwCt/tXcnIeTQCTMAg12SPDyNXMf3Rlc3R1c2VyV09SS1NUQVRJT04= 26813498266Sopenharmony_ciAccept: */* 26913498266Sopenharmony_ci 27013498266Sopenharmony_ciGET /%TESTNUMBER0400 HTTP/1.1 27113498266Sopenharmony_ciHost: %HOSTIP:%HTTPPORT 27213498266Sopenharmony_ciAuthorization: Digest username="testuser", realm="testrealm", nonce="5", uri="/%TESTNUMBER0400", response="d6262e9147db08c62ff2f53b515861e8" 27313498266Sopenharmony_ciAccept: */* 27413498266Sopenharmony_ci 27513498266Sopenharmony_ciGET /%TESTNUMBER0400 HTTP/1.1 27613498266Sopenharmony_ciHost: %HOSTIP:%HTTPPORT 27713498266Sopenharmony_ciAuthorization: Digest username="testuser", realm="testrealm", nonce="5", uri="/%TESTNUMBER0400", response="d6262e9147db08c62ff2f53b515861e8" 27813498266Sopenharmony_ciAccept: */* 27913498266Sopenharmony_ci 28013498266Sopenharmony_ciGET /%TESTNUMBER0500 HTTP/1.1 28113498266Sopenharmony_ciHost: %HOSTIP:%HTTPPORT 28213498266Sopenharmony_ciAuthorization: Digest username="testuser", realm="testrealm", nonce="7", uri="/%TESTNUMBER0500", response="198757e61163a779cf24ed4c49c1ad7d" 28313498266Sopenharmony_ciAccept: */* 28413498266Sopenharmony_ci 28513498266Sopenharmony_ci</protocol> 28613498266Sopenharmony_ci</verify> 28713498266Sopenharmony_ci</testcase> 288