113498266Sopenharmony_ci<testcase> 213498266Sopenharmony_ci<info> 313498266Sopenharmony_ci<keywords> 413498266Sopenharmony_ciHTTP 513498266Sopenharmony_ciHTTP GET 613498266Sopenharmony_ciHTTP Digest auth 713498266Sopenharmony_ci</keywords> 813498266Sopenharmony_ci</info> 913498266Sopenharmony_ci 1013498266Sopenharmony_ci# Server-side 1113498266Sopenharmony_ci<reply> 1213498266Sopenharmony_ci# First reply back and ask for Digest auth 1313498266Sopenharmony_ci<data1> 1413498266Sopenharmony_ciHTTP/1.1 401 Authorization Required swsclose 1513498266Sopenharmony_ciServer: Apache/1.3.27 (Darwin) PHP/4.1.2 1613498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", nonce="1053604145" 1713498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 1813498266Sopenharmony_ciContent-Length: 26 1913498266Sopenharmony_ci 2013498266Sopenharmony_ciThis is not the real page 2113498266Sopenharmony_ci</data1> 2213498266Sopenharmony_ci 2313498266Sopenharmony_ci# second reply back 2413498266Sopenharmony_ci<data2> 2513498266Sopenharmony_ciHTTP/1.1 401 Authorization Required swsclose 2613498266Sopenharmony_ciServer: Apache/1.3.27 (Darwin) PHP/4.1.2 2713498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", nonce="1053604145" 2813498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 2913498266Sopenharmony_ciContent-Length: 26 3013498266Sopenharmony_ci 3113498266Sopenharmony_ciThis is not the real page 3213498266Sopenharmony_ci</data2> 3313498266Sopenharmony_ci 3413498266Sopenharmony_ci# This is supposed to be returned when the server gets a 3513498266Sopenharmony_ci# Authorization: Digest line passed-in from the client 3613498266Sopenharmony_ci<data1001> 3713498266Sopenharmony_ciHTTP/1.1 200 OK 3813498266Sopenharmony_ciServer: Apache/1.3.27 (Darwin) PHP/4.1.2 3913498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 4013498266Sopenharmony_ciContent-Length: 23 4113498266Sopenharmony_ci 4213498266Sopenharmony_ciThis IS the real page! 4313498266Sopenharmony_ci</data1001> 4413498266Sopenharmony_ci 4513498266Sopenharmony_ci# 4613498266Sopenharmony_ci# This is the second request, and this sends back a response saying that 4713498266Sopenharmony_ci# the request contained stale data. We want an update. Set swsbounce to 4813498266Sopenharmony_ci# bounce on to data1003 on the second request. 4913498266Sopenharmony_ci<data1002> 5013498266Sopenharmony_ciHTTP/1.1 401 Authorization re-negotiation please swsbounce 5113498266Sopenharmony_ciServer: Apache/1.3.27 (Darwin) PHP/4.1.2 5213498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", algorithm=MD5, nonce="999999", stale=true, qop="crazy, auth" 5313498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 5413498266Sopenharmony_ciContent-Length: 26 5513498266Sopenharmony_ci 5613498266Sopenharmony_ciThis is not the real page 5713498266Sopenharmony_ci</data1002> 5813498266Sopenharmony_ci 5913498266Sopenharmony_ci# The second request to the 1002 section will bounce this one back instead 6013498266Sopenharmony_ci# thanks to the swsbounce keyword up there 6113498266Sopenharmony_ci<data1003> 6213498266Sopenharmony_ciHTTP/1.1 200 OK 6313498266Sopenharmony_ciServer: Apache/1.3.27 (Darwin) PHP/4.1.2 6413498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 6513498266Sopenharmony_ciContent-Length: 30 6613498266Sopenharmony_ci 6713498266Sopenharmony_ciThis IS the second real page! 6813498266Sopenharmony_ci</data1003> 6913498266Sopenharmony_ci</reply> 7013498266Sopenharmony_ci 7113498266Sopenharmony_ci# Client-side 7213498266Sopenharmony_ci<client> 7313498266Sopenharmony_ci<server> 7413498266Sopenharmony_cihttp 7513498266Sopenharmony_ci</server> 7613498266Sopenharmony_ci<features> 7713498266Sopenharmony_ci!SSPI 7813498266Sopenharmony_cicrypto 7913498266Sopenharmony_ci</features> 8013498266Sopenharmony_ci<name> 8113498266Sopenharmony_ciHTTP with Digest and multiple qop values with leading space 8213498266Sopenharmony_ci</name> 8313498266Sopenharmony_ci<command> 8413498266Sopenharmony_cihttp://%HOSTIP:%HTTPPORT/%TESTNUMBER0001 -u testuser:testpass --digest http://%HOSTIP:%HTTPPORT/%TESTNUMBER0002 8513498266Sopenharmony_ci</command> 8613498266Sopenharmony_ci</client> 8713498266Sopenharmony_ci 8813498266Sopenharmony_ci# Verify data after the test has been "shot" 8913498266Sopenharmony_ci<verify> 9013498266Sopenharmony_ci<strip> 9113498266Sopenharmony_ci^Authorization.*cnonce 9213498266Sopenharmony_ci</strip> 9313498266Sopenharmony_ci<protocol> 9413498266Sopenharmony_ciGET /%TESTNUMBER0001 HTTP/1.1 9513498266Sopenharmony_ciHost: %HOSTIP:%HTTPPORT 9613498266Sopenharmony_ciUser-Agent: curl/%VERSION 9713498266Sopenharmony_ciAccept: */* 9813498266Sopenharmony_ci 9913498266Sopenharmony_ciGET /%TESTNUMBER0001 HTTP/1.1 10013498266Sopenharmony_ciHost: %HOSTIP:%HTTPPORT 10113498266Sopenharmony_ciAuthorization: Digest username="testuser", realm="testrealm", nonce="1053604145", uri="/%TESTNUMBER0001", response="ea598bbfdb5c54b7352c977e3885e44d" 10213498266Sopenharmony_ciUser-Agent: curl/%VERSION 10313498266Sopenharmony_ciAccept: */* 10413498266Sopenharmony_ci 10513498266Sopenharmony_ciGET /%TESTNUMBER0002 HTTP/1.1 10613498266Sopenharmony_ciHost: %HOSTIP:%HTTPPORT 10713498266Sopenharmony_ciUser-Agent: curl/%VERSION 10813498266Sopenharmony_ciAccept: */* 10913498266Sopenharmony_ci 11013498266Sopenharmony_ciGET /%TESTNUMBER0002 HTTP/1.1 11113498266Sopenharmony_ciHost: %HOSTIP:%HTTPPORT 11213498266Sopenharmony_ciAuthorization: Digest username="testuser", realm="testrealm", nonce="1053604145", uri="/%TESTNUMBER0002", response="921a8e6db782d6359db1f40d9ed7e6a6" 11313498266Sopenharmony_ciUser-Agent: curl/%VERSION 11413498266Sopenharmony_ciAccept: */* 11513498266Sopenharmony_ci 11613498266Sopenharmony_ciGET /%TESTNUMBER0002 HTTP/1.1 11713498266Sopenharmony_ciHost: %HOSTIP:%HTTPPORT 11813498266Sopenharmony_ciAuthorization: Digest username="testuser", realm="testrealm", nonce="999999", uri="/%TESTNUMBER0002", cnonce="MTA4MzIy", nc="00000001", qop="auth", response="25291c357671604a16c0242f56721c07", algorithm=MD5 11913498266Sopenharmony_ciUser-Agent: curl/%VERSION 12013498266Sopenharmony_ciAccept: */* 12113498266Sopenharmony_ci 12213498266Sopenharmony_ci</protocol> 12313498266Sopenharmony_ci<stdout> 12413498266Sopenharmony_ciHTTP/1.1 401 Authorization Required swsclose 12513498266Sopenharmony_ciServer: Apache/1.3.27 (Darwin) PHP/4.1.2 12613498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", nonce="1053604145" 12713498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 12813498266Sopenharmony_ciContent-Length: 26 12913498266Sopenharmony_ci 13013498266Sopenharmony_ciHTTP/1.1 200 OK 13113498266Sopenharmony_ciServer: Apache/1.3.27 (Darwin) PHP/4.1.2 13213498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 13313498266Sopenharmony_ciContent-Length: 23 13413498266Sopenharmony_ci 13513498266Sopenharmony_ciThis IS the real page! 13613498266Sopenharmony_ciHTTP/1.1 401 Authorization Required swsclose 13713498266Sopenharmony_ciServer: Apache/1.3.27 (Darwin) PHP/4.1.2 13813498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", nonce="1053604145" 13913498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 14013498266Sopenharmony_ciContent-Length: 26 14113498266Sopenharmony_ci 14213498266Sopenharmony_ciHTTP/1.1 401 Authorization re-negotiation please swsbounce 14313498266Sopenharmony_ciServer: Apache/1.3.27 (Darwin) PHP/4.1.2 14413498266Sopenharmony_ciWWW-Authenticate: Digest realm="testrealm", algorithm=MD5, nonce="999999", stale=true, qop="crazy, auth" 14513498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 14613498266Sopenharmony_ciContent-Length: 26 14713498266Sopenharmony_ci 14813498266Sopenharmony_ciHTTP/1.1 200 OK 14913498266Sopenharmony_ciServer: Apache/1.3.27 (Darwin) PHP/4.1.2 15013498266Sopenharmony_ciContent-Type: text/html; charset=iso-8859-1 15113498266Sopenharmony_ciContent-Length: 30 15213498266Sopenharmony_ci 15313498266Sopenharmony_ciThis IS the second real page! 15413498266Sopenharmony_ci</stdout> 15513498266Sopenharmony_ci</verify> 15613498266Sopenharmony_ci</testcase> 157