1*6236dae4SAndroid Build Coastguard Worker<testcase> 2*6236dae4SAndroid Build Coastguard Worker<info> 3*6236dae4SAndroid Build Coastguard Worker<keywords> 4*6236dae4SAndroid Build Coastguard WorkerHTTP 5*6236dae4SAndroid Build Coastguard WorkerHTTP GET 6*6236dae4SAndroid Build Coastguard WorkerHTTP Digest auth 7*6236dae4SAndroid Build Coastguard Worker</keywords> 8*6236dae4SAndroid Build Coastguard Worker</info> 9*6236dae4SAndroid Build Coastguard Worker 10*6236dae4SAndroid Build Coastguard Worker# Server-side 11*6236dae4SAndroid Build Coastguard Worker<reply> 12*6236dae4SAndroid Build Coastguard Worker# First reply back and ask for Digest auth 13*6236dae4SAndroid Build Coastguard Worker<data1> 14*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Authorization Required swsclose 15*6236dae4SAndroid Build Coastguard WorkerServer: Apache/1.3.27 (Darwin) PHP/4.1.2 16*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="1053604145" 17*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 18*6236dae4SAndroid Build Coastguard WorkerContent-Length: 26 19*6236dae4SAndroid Build Coastguard Worker 20*6236dae4SAndroid Build Coastguard WorkerThis is not the real page 21*6236dae4SAndroid Build Coastguard Worker</data1> 22*6236dae4SAndroid Build Coastguard Worker 23*6236dae4SAndroid Build Coastguard Worker# second reply back 24*6236dae4SAndroid Build Coastguard Worker<data2> 25*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Authorization Required swsclose 26*6236dae4SAndroid Build Coastguard WorkerServer: Apache/1.3.27 (Darwin) PHP/4.1.2 27*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="1053604145" 28*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 29*6236dae4SAndroid Build Coastguard WorkerContent-Length: 26 30*6236dae4SAndroid Build Coastguard Worker 31*6236dae4SAndroid Build Coastguard WorkerThis is not the real page 32*6236dae4SAndroid Build Coastguard Worker</data2> 33*6236dae4SAndroid Build Coastguard Worker 34*6236dae4SAndroid Build Coastguard Worker# This is supposed to be returned when the server gets a 35*6236dae4SAndroid Build Coastguard Worker# Authorization: Digest line passed-in from the client 36*6236dae4SAndroid Build Coastguard Worker<data1001> 37*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 200 OK 38*6236dae4SAndroid Build Coastguard WorkerServer: Apache/1.3.27 (Darwin) PHP/4.1.2 39*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 40*6236dae4SAndroid Build Coastguard WorkerContent-Length: 23 41*6236dae4SAndroid Build Coastguard Worker 42*6236dae4SAndroid Build Coastguard WorkerThis IS the real page! 43*6236dae4SAndroid Build Coastguard Worker</data1001> 44*6236dae4SAndroid Build Coastguard Worker 45*6236dae4SAndroid Build Coastguard Worker# 46*6236dae4SAndroid Build Coastguard Worker# This is the second request, and this sends back a response saying that 47*6236dae4SAndroid Build Coastguard Worker# the request contained stale data. We want an update. Set swsbounce to 48*6236dae4SAndroid Build Coastguard Worker# bounce on to data1003 on the second request. 49*6236dae4SAndroid Build Coastguard Worker<data1002> 50*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Authorization re-negotiation please swsbounce 51*6236dae4SAndroid Build Coastguard WorkerServer: Apache/1.3.27 (Darwin) PHP/4.1.2 52*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", algorithm=MD5, nonce="999999", stale=true, qop="auth" 53*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 54*6236dae4SAndroid Build Coastguard WorkerContent-Length: 26 55*6236dae4SAndroid Build Coastguard Worker 56*6236dae4SAndroid Build Coastguard WorkerThis is not the real page 57*6236dae4SAndroid Build Coastguard Worker</data1002> 58*6236dae4SAndroid Build Coastguard Worker 59*6236dae4SAndroid Build Coastguard Worker# The second request to the 1002 section will bounce this one back instead 60*6236dae4SAndroid Build Coastguard Worker# thanks to the swsbounce keyword up there 61*6236dae4SAndroid Build Coastguard Worker<data1003> 62*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 200 OK 63*6236dae4SAndroid Build Coastguard WorkerServer: Apache/1.3.27 (Darwin) PHP/4.1.2 64*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 65*6236dae4SAndroid Build Coastguard WorkerContent-Length: 30 66*6236dae4SAndroid Build Coastguard Worker 67*6236dae4SAndroid Build Coastguard WorkerThis IS the second real page! 68*6236dae4SAndroid Build Coastguard Worker</data1003> 69*6236dae4SAndroid Build Coastguard Worker</reply> 70*6236dae4SAndroid Build Coastguard Worker 71*6236dae4SAndroid Build Coastguard Worker# Client-side 72*6236dae4SAndroid Build Coastguard Worker<client> 73*6236dae4SAndroid Build Coastguard Worker<server> 74*6236dae4SAndroid Build Coastguard Workerhttp 75*6236dae4SAndroid Build Coastguard Worker</server> 76*6236dae4SAndroid Build Coastguard Worker<features> 77*6236dae4SAndroid Build Coastguard Worker!SSPI 78*6236dae4SAndroid Build Coastguard Workercrypto 79*6236dae4SAndroid Build Coastguard Worker</features> 80*6236dae4SAndroid Build Coastguard Worker<name> 81*6236dae4SAndroid Build Coastguard WorkerHTTP with Digest authorization with stale=true 82*6236dae4SAndroid Build Coastguard Worker</name> 83*6236dae4SAndroid Build Coastguard Worker<command> 84*6236dae4SAndroid Build Coastguard Workerhttp://%HOSTIP:%HTTPPORT/%TESTNUMBER0001 -u testuser:testpass --digest http://%HOSTIP:%HTTPPORT/%TESTNUMBER0002 85*6236dae4SAndroid Build Coastguard Worker</command> 86*6236dae4SAndroid Build Coastguard Worker</client> 87*6236dae4SAndroid Build Coastguard Worker 88*6236dae4SAndroid Build Coastguard Worker# Verify data after the test has been "shot" 89*6236dae4SAndroid Build Coastguard Worker<verify> 90*6236dae4SAndroid Build Coastguard Worker<strip> 91*6236dae4SAndroid Build Coastguard Worker^Authorization.*cnonce 92*6236dae4SAndroid Build Coastguard Worker</strip> 93*6236dae4SAndroid Build Coastguard Worker<protocol> 94*6236dae4SAndroid Build Coastguard WorkerGET /%TESTNUMBER0001 HTTP/1.1 95*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT 96*6236dae4SAndroid Build Coastguard WorkerUser-Agent: curl/%VERSION 97*6236dae4SAndroid Build Coastguard WorkerAccept: */* 98*6236dae4SAndroid Build Coastguard Worker 99*6236dae4SAndroid Build Coastguard WorkerGET /%TESTNUMBER0001 HTTP/1.1 100*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT 101*6236dae4SAndroid Build Coastguard WorkerAuthorization: Digest username="testuser", realm="testrealm", nonce="1053604145", uri="/%TESTNUMBER0001", response="f4f83139396995bac665f24a1f1055c7" 102*6236dae4SAndroid Build Coastguard WorkerUser-Agent: curl/%VERSION 103*6236dae4SAndroid Build Coastguard WorkerAccept: */* 104*6236dae4SAndroid Build Coastguard Worker 105*6236dae4SAndroid Build Coastguard WorkerGET /%TESTNUMBER0002 HTTP/1.1 106*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT 107*6236dae4SAndroid Build Coastguard WorkerUser-Agent: curl/%VERSION 108*6236dae4SAndroid Build Coastguard WorkerAccept: */* 109*6236dae4SAndroid Build Coastguard Worker 110*6236dae4SAndroid Build Coastguard WorkerGET /%TESTNUMBER0002 HTTP/1.1 111*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT 112*6236dae4SAndroid Build Coastguard WorkerAuthorization: Digest username="testuser", realm="testrealm", nonce="1053604145", uri="/%TESTNUMBER0002", response="f84511b014fdd0ba6494f42871079c32" 113*6236dae4SAndroid Build Coastguard WorkerUser-Agent: curl/%VERSION 114*6236dae4SAndroid Build Coastguard WorkerAccept: */* 115*6236dae4SAndroid Build Coastguard Worker 116*6236dae4SAndroid Build Coastguard WorkerGET /%TESTNUMBER0002 HTTP/1.1 117*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT 118*6236dae4SAndroid Build Coastguard WorkerAuthorization: Digest username="testuser", realm="testrealm", nonce="999999", uri="/%TESTNUMBER0002", cnonce="MTA4MzIy", nc="00000001", qop="auth", response="25291c357671604a16c0242f56721c07", algorithm=MD5 119*6236dae4SAndroid Build Coastguard WorkerUser-Agent: curl/%VERSION 120*6236dae4SAndroid Build Coastguard WorkerAccept: */* 121*6236dae4SAndroid Build Coastguard Worker 122*6236dae4SAndroid Build Coastguard Worker</protocol> 123*6236dae4SAndroid Build Coastguard Worker<stdout> 124*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Authorization Required swsclose 125*6236dae4SAndroid Build Coastguard WorkerServer: Apache/1.3.27 (Darwin) PHP/4.1.2 126*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="1053604145" 127*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 128*6236dae4SAndroid Build Coastguard WorkerContent-Length: 26 129*6236dae4SAndroid Build Coastguard Worker 130*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 200 OK 131*6236dae4SAndroid Build Coastguard WorkerServer: Apache/1.3.27 (Darwin) PHP/4.1.2 132*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 133*6236dae4SAndroid Build Coastguard WorkerContent-Length: 23 134*6236dae4SAndroid Build Coastguard Worker 135*6236dae4SAndroid Build Coastguard WorkerThis IS the real page! 136*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Authorization Required swsclose 137*6236dae4SAndroid Build Coastguard WorkerServer: Apache/1.3.27 (Darwin) PHP/4.1.2 138*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="1053604145" 139*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 140*6236dae4SAndroid Build Coastguard WorkerContent-Length: 26 141*6236dae4SAndroid Build Coastguard Worker 142*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Authorization re-negotiation please swsbounce 143*6236dae4SAndroid Build Coastguard WorkerServer: Apache/1.3.27 (Darwin) PHP/4.1.2 144*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", algorithm=MD5, nonce="999999", stale=true, qop="auth" 145*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 146*6236dae4SAndroid Build Coastguard WorkerContent-Length: 26 147*6236dae4SAndroid Build Coastguard Worker 148*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 200 OK 149*6236dae4SAndroid Build Coastguard WorkerServer: Apache/1.3.27 (Darwin) PHP/4.1.2 150*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 151*6236dae4SAndroid Build Coastguard WorkerContent-Length: 30 152*6236dae4SAndroid Build Coastguard Worker 153*6236dae4SAndroid Build Coastguard WorkerThis IS the second real page! 154*6236dae4SAndroid Build Coastguard Worker</stdout> 155*6236dae4SAndroid Build Coastguard Worker</verify> 156*6236dae4SAndroid Build Coastguard Worker</testcase> 157