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