xref: /aosp_15_r20/external/curl/tests/data/test2027 (revision 6236dae45794135f37c4eb022389c904c8b0090d)
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# Server-side
10*6236dae4SAndroid Build Coastguard Worker<reply>
11*6236dae4SAndroid Build Coastguard Worker
12*6236dae4SAndroid Build Coastguard Worker<!--
13*6236dae4SAndroid Build Coastguard Worker
14*6236dae4SAndroid Build Coastguard Worker Explanation for the duplicate 400 requests:
15*6236dae4SAndroid Build Coastguard Worker
16*6236dae4SAndroid Build Coastguard Worker libcurl doesn't detect that a given Digest password is wrong already on the
17*6236dae4SAndroid Build Coastguard Worker first 401 response (as the data400 gives). libcurl will instead consider the
18*6236dae4SAndroid Build Coastguard Worker new response just as a duplicate and it sends another and detects the auth
19*6236dae4SAndroid Build Coastguard Worker problem on the second 401 response!
20*6236dae4SAndroid Build Coastguard Worker
21*6236dae4SAndroid Build Coastguard Worker-->
22*6236dae4SAndroid Build Coastguard Worker
23*6236dae4SAndroid Build Coastguard Worker<!-- First request has Digest auth, wrong password -->
24*6236dae4SAndroid Build Coastguard Worker<data100>
25*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Need Digest auth
26*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0
27*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1
28*6236dae4SAndroid Build Coastguard WorkerContent-Length: 27
29*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="1"
30*6236dae4SAndroid Build Coastguard Worker
31*6236dae4SAndroid Build Coastguard WorkerThis is not the real page!
32*6236dae4SAndroid Build Coastguard Worker</data100>
33*6236dae4SAndroid Build Coastguard Worker
34*6236dae4SAndroid Build Coastguard Worker<data1100>
35*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Sorry wrong password
36*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0
37*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1
38*6236dae4SAndroid Build Coastguard WorkerContent-Length: 29
39*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="2"
40*6236dae4SAndroid Build Coastguard Worker
41*6236dae4SAndroid Build Coastguard WorkerThis is a bad password page!
42*6236dae4SAndroid Build Coastguard Worker</data1100>
43*6236dae4SAndroid Build Coastguard Worker
44*6236dae4SAndroid Build Coastguard Worker<!-- Second request has Digest auth, right password -->
45*6236dae4SAndroid Build Coastguard Worker<data200>
46*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Need Digest auth (2)
47*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0
48*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1
49*6236dae4SAndroid Build Coastguard WorkerContent-Length: 27
50*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="3"
51*6236dae4SAndroid Build Coastguard Worker
52*6236dae4SAndroid Build Coastguard WorkerThis is not the real page!
53*6236dae4SAndroid Build Coastguard Worker</data200>
54*6236dae4SAndroid Build Coastguard Worker
55*6236dae4SAndroid Build Coastguard Worker<data1200>
56*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 200 Things are fine in server land
57*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0
58*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1
59*6236dae4SAndroid Build Coastguard WorkerContent-Length: 32
60*6236dae4SAndroid Build Coastguard Worker
61*6236dae4SAndroid Build Coastguard WorkerFinally, this is the real page!
62*6236dae4SAndroid Build Coastguard Worker</data1200>
63*6236dae4SAndroid Build Coastguard Worker
64*6236dae4SAndroid Build Coastguard Worker<!-- Third request has Digest auth, wrong password -->
65*6236dae4SAndroid Build Coastguard Worker<data300>
66*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Need Digest auth (3)
67*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0
68*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1
69*6236dae4SAndroid Build Coastguard WorkerContent-Length: 27
70*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="4"
71*6236dae4SAndroid Build Coastguard Worker
72*6236dae4SAndroid Build Coastguard WorkerThis is not the real page!
73*6236dae4SAndroid Build Coastguard Worker</data300>
74*6236dae4SAndroid Build Coastguard Worker
75*6236dae4SAndroid Build Coastguard Worker<data1300>
76*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Sorry wrong password (2)
77*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0
78*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1
79*6236dae4SAndroid Build Coastguard WorkerContent-Length: 29
80*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="5"
81*6236dae4SAndroid Build Coastguard Worker
82*6236dae4SAndroid Build Coastguard WorkerThis is a bad password page!
83*6236dae4SAndroid Build Coastguard Worker</data1300>
84*6236dae4SAndroid Build Coastguard Worker
85*6236dae4SAndroid Build Coastguard Worker<!-- Fourth request has Digest auth, wrong password -->
86*6236dae4SAndroid Build Coastguard Worker<data400>
87*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Need Digest auth (4)
88*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0
89*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1
90*6236dae4SAndroid Build Coastguard WorkerContent-Length: 27
91*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="6"
92*6236dae4SAndroid Build Coastguard Worker
93*6236dae4SAndroid Build Coastguard WorkerThis is not the real page!
94*6236dae4SAndroid Build Coastguard Worker</data400>
95*6236dae4SAndroid Build Coastguard Worker
96*6236dae4SAndroid Build Coastguard Worker<data1400>
97*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Sorry wrong password (3)
98*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0
99*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1
100*6236dae4SAndroid Build Coastguard WorkerContent-Length: 29
101*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="7"
102*6236dae4SAndroid Build Coastguard Worker
103*6236dae4SAndroid Build Coastguard WorkerThis is a bad password page!
104*6236dae4SAndroid Build Coastguard Worker</data1400>
105*6236dae4SAndroid Build Coastguard Worker
106*6236dae4SAndroid Build Coastguard Worker<!-- Fifth request has Digest auth, right password -->
107*6236dae4SAndroid Build Coastguard Worker<data1500>
108*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 200 Things are fine in server land (2)
109*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0
110*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1
111*6236dae4SAndroid Build Coastguard WorkerContent-Length: 32
112*6236dae4SAndroid Build Coastguard Worker
113*6236dae4SAndroid Build Coastguard WorkerFinally, this is the real page!
114*6236dae4SAndroid Build Coastguard Worker</data1500>
115*6236dae4SAndroid Build Coastguard Worker
116*6236dae4SAndroid Build Coastguard Worker<datacheck>
117*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Need Digest auth
118*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0
119*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1
120*6236dae4SAndroid Build Coastguard WorkerContent-Length: 27
121*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="1"
122*6236dae4SAndroid Build Coastguard Worker
123*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Sorry wrong password
124*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0
125*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1
126*6236dae4SAndroid Build Coastguard WorkerContent-Length: 29
127*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="2"
128*6236dae4SAndroid Build Coastguard Worker
129*6236dae4SAndroid Build Coastguard WorkerThis is a bad password page!
130*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 200 Things are fine in server land
131*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0
132*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1
133*6236dae4SAndroid Build Coastguard WorkerContent-Length: 32
134*6236dae4SAndroid Build Coastguard Worker
135*6236dae4SAndroid Build Coastguard WorkerFinally, this is the real page!
136*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Need Digest auth (3)
137*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0
138*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1
139*6236dae4SAndroid Build Coastguard WorkerContent-Length: 27
140*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="4"
141*6236dae4SAndroid Build Coastguard Worker
142*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Sorry wrong password (2)
143*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0
144*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1
145*6236dae4SAndroid Build Coastguard WorkerContent-Length: 29
146*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="5"
147*6236dae4SAndroid Build Coastguard Worker
148*6236dae4SAndroid Build Coastguard WorkerThis is a bad password page!
149*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Sorry wrong password (3)
150*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0
151*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1
152*6236dae4SAndroid Build Coastguard WorkerContent-Length: 29
153*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="7"
154*6236dae4SAndroid Build Coastguard Worker
155*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Sorry wrong password (3)
156*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0
157*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1
158*6236dae4SAndroid Build Coastguard WorkerContent-Length: 29
159*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="7"
160*6236dae4SAndroid Build Coastguard Worker
161*6236dae4SAndroid Build Coastguard WorkerThis is a bad password page!
162*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 200 Things are fine in server land (2)
163*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0
164*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1
165*6236dae4SAndroid Build Coastguard WorkerContent-Length: 32
166*6236dae4SAndroid Build Coastguard Worker
167*6236dae4SAndroid Build Coastguard WorkerFinally, this is the real page!
168*6236dae4SAndroid Build Coastguard Worker</datacheck>
169*6236dae4SAndroid Build Coastguard Worker
170*6236dae4SAndroid Build Coastguard Worker</reply>
171*6236dae4SAndroid Build Coastguard Worker
172*6236dae4SAndroid Build Coastguard Worker# Client-side
173*6236dae4SAndroid Build Coastguard Worker<client>
174*6236dae4SAndroid Build Coastguard Worker<server>
175*6236dae4SAndroid Build Coastguard Workerhttp
176*6236dae4SAndroid Build Coastguard Worker</server>
177*6236dae4SAndroid Build Coastguard Worker<features>
178*6236dae4SAndroid Build Coastguard Worker!SSPI
179*6236dae4SAndroid Build Coastguard Workercrypto
180*6236dae4SAndroid Build Coastguard Worker</features>
181*6236dae4SAndroid Build Coastguard Worker<tool>
182*6236dae4SAndroid Build Coastguard Workerlibauthretry
183*6236dae4SAndroid Build Coastguard Worker</tool>
184*6236dae4SAndroid Build Coastguard Worker
185*6236dae4SAndroid Build Coastguard Worker<name>
186*6236dae4SAndroid Build Coastguard WorkerHTTP authorization retry (Digest)
187*6236dae4SAndroid Build Coastguard Worker</name>
188*6236dae4SAndroid Build Coastguard Worker<command>
189*6236dae4SAndroid Build Coastguard Workerhttp://%HOSTIP:%HTTPPORT/%TESTNUMBER digest digest
190*6236dae4SAndroid Build Coastguard Worker</command>
191*6236dae4SAndroid Build Coastguard Worker</client>
192*6236dae4SAndroid Build Coastguard Worker
193*6236dae4SAndroid Build Coastguard Worker# Verify data after the test has been "shot"
194*6236dae4SAndroid Build Coastguard Worker<verify>
195*6236dae4SAndroid Build Coastguard Worker<protocol>
196*6236dae4SAndroid Build Coastguard WorkerGET /%TESTNUMBER0100 HTTP/1.1
197*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT
198*6236dae4SAndroid Build Coastguard WorkerAccept: */*
199*6236dae4SAndroid Build Coastguard Worker
200*6236dae4SAndroid Build Coastguard WorkerGET /%TESTNUMBER0100 HTTP/1.1
201*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT
202*6236dae4SAndroid Build Coastguard WorkerAuthorization: Digest username="testuser", realm="testrealm", nonce="1", uri="/%TESTNUMBER0100", response="f7fd60eefaff5225971bf9b3d80d6ba6"
203*6236dae4SAndroid Build Coastguard WorkerAccept: */*
204*6236dae4SAndroid Build Coastguard Worker
205*6236dae4SAndroid Build Coastguard WorkerGET /%TESTNUMBER0200 HTTP/1.1
206*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT
207*6236dae4SAndroid Build Coastguard WorkerAuthorization: Digest username="testuser", realm="testrealm", nonce="2", uri="/%TESTNUMBER0200", response="785ca3ef511999f7e9c178195f5b388c"
208*6236dae4SAndroid Build Coastguard WorkerAccept: */*
209*6236dae4SAndroid Build Coastguard Worker
210*6236dae4SAndroid Build Coastguard WorkerGET /%TESTNUMBER0300 HTTP/1.1
211*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT
212*6236dae4SAndroid Build Coastguard WorkerAccept: */*
213*6236dae4SAndroid Build Coastguard Worker
214*6236dae4SAndroid Build Coastguard WorkerGET /%TESTNUMBER0300 HTTP/1.1
215*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT
216*6236dae4SAndroid Build Coastguard WorkerAuthorization: Digest username="testuser", realm="testrealm", nonce="4", uri="/%TESTNUMBER0300", response="4c735d2360fd6848e7cb32a11ae3612b"
217*6236dae4SAndroid Build Coastguard WorkerAccept: */*
218*6236dae4SAndroid Build Coastguard Worker
219*6236dae4SAndroid Build Coastguard WorkerGET /%TESTNUMBER0400 HTTP/1.1
220*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT
221*6236dae4SAndroid Build Coastguard WorkerAuthorization: Digest username="testuser", realm="testrealm", nonce="5", uri="/%TESTNUMBER0400", response="f5906785511fb60a2af8b1cd53008ead"
222*6236dae4SAndroid Build Coastguard WorkerAccept: */*
223*6236dae4SAndroid Build Coastguard Worker
224*6236dae4SAndroid Build Coastguard WorkerGET /%TESTNUMBER0400 HTTP/1.1
225*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT
226*6236dae4SAndroid Build Coastguard WorkerAuthorization: Digest username="testuser", realm="testrealm", nonce="5", uri="/%TESTNUMBER0400", response="f5906785511fb60a2af8b1cd53008ead"
227*6236dae4SAndroid Build Coastguard WorkerAccept: */*
228*6236dae4SAndroid Build Coastguard Worker
229*6236dae4SAndroid Build Coastguard WorkerGET /%TESTNUMBER0500 HTTP/1.1
230*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT
231*6236dae4SAndroid Build Coastguard WorkerAuthorization: Digest username="testuser", realm="testrealm", nonce="7", uri="/%TESTNUMBER0500", response="8ef4d935fd964a46c3965c0863b52cf1"
232*6236dae4SAndroid Build Coastguard WorkerAccept: */*
233*6236dae4SAndroid Build Coastguard Worker
234*6236dae4SAndroid Build Coastguard Worker</protocol>
235*6236dae4SAndroid Build Coastguard Worker</verify>
236*6236dae4SAndroid Build Coastguard Worker</testcase>
237