Annotation of embedaddon/curl/tests/data/test2027, revision 1.1.1.1
1.1 misho 1: <testcase>
2: <info>
3: <keywords>
4: HTTP
5: HTTP GET
6: HTTP Digest auth
7: </keywords>
8: </info>
9: # Server-side
10: <reply>
11:
12: <!--
13:
14: Explanation for the duplicate 400 requests:
15:
16: libcurl doesn't detect that a given Digest password is wrong already on the
17: first 401 response (as the data400 gives). libcurl will instead consider the
18: new response just as a duplicate and it sends another and detects the auth
19: problem on the second 401 response!
20:
21: -->
22:
23: <!-- First request has Digest auth, wrong password -->
24: <data100>
25: HTTP/1.1 401 Need Digest auth
26: Server: Microsoft-IIS/5.0
27: Content-Type: text/html; charset=iso-8859-1
28: Content-Length: 27
29: WWW-Authenticate: Digest realm="testrealm", nonce="1"
30:
31: This is not the real page!
32: </data100>
33:
34: <data1100>
35: HTTP/1.1 401 Sorry wrong password
36: Server: Microsoft-IIS/5.0
37: Content-Type: text/html; charset=iso-8859-1
38: Content-Length: 29
39: WWW-Authenticate: Digest realm="testrealm", nonce="2"
40:
41: This is a bad password page!
42: </data1100>
43:
44: <!-- Second request has Digest auth, right password -->
45: <data200>
46: HTTP/1.1 401 Need Digest auth (2)
47: Server: Microsoft-IIS/5.0
48: Content-Type: text/html; charset=iso-8859-1
49: Content-Length: 27
50: WWW-Authenticate: Digest realm="testrealm", nonce="3"
51:
52: This is not the real page!
53: </data200>
54:
55: <data1200>
56: HTTP/1.1 200 Things are fine in server land
57: Server: Microsoft-IIS/5.0
58: Content-Type: text/html; charset=iso-8859-1
59: Content-Length: 32
60:
61: Finally, this is the real page!
62: </data1200>
63:
64: <!-- Third request has Digest auth, wrong password -->
65: <data300>
66: HTTP/1.1 401 Need Digest auth (3)
67: Server: Microsoft-IIS/5.0
68: Content-Type: text/html; charset=iso-8859-1
69: Content-Length: 27
70: WWW-Authenticate: Digest realm="testrealm", nonce="4"
71:
72: This is not the real page!
73: </data300>
74:
75: <data1300>
76: HTTP/1.1 401 Sorry wrong password (2)
77: Server: Microsoft-IIS/5.0
78: Content-Type: text/html; charset=iso-8859-1
79: Content-Length: 29
80: WWW-Authenticate: Digest realm="testrealm", nonce="5"
81:
82: This is a bad password page!
83: </data1300>
84:
85: <!-- Fourth request has Digest auth, wrong password -->
86: <data400>
87: HTTP/1.1 401 Need Digest auth (4)
88: Server: Microsoft-IIS/5.0
89: Content-Type: text/html; charset=iso-8859-1
90: Content-Length: 27
91: WWW-Authenticate: Digest realm="testrealm", nonce="6"
92:
93: This is not the real page!
94: </data400>
95:
96: <data1400>
97: HTTP/1.1 401 Sorry wrong password (3)
98: Server: Microsoft-IIS/5.0
99: Content-Type: text/html; charset=iso-8859-1
100: Content-Length: 29
101: WWW-Authenticate: Digest realm="testrealm", nonce="7"
102:
103: This is a bad password page!
104: </data1400>
105:
106: <!-- Fifth request has Digest auth, right password -->
107: <data1500>
108: HTTP/1.1 200 Things are fine in server land (2)
109: Server: Microsoft-IIS/5.0
110: Content-Type: text/html; charset=iso-8859-1
111: Content-Length: 32
112:
113: Finally, this is the real page!
114: </data1500>
115:
116: <datacheck>
117: HTTP/1.1 401 Need Digest auth
118: Server: Microsoft-IIS/5.0
119: Content-Type: text/html; charset=iso-8859-1
120: Content-Length: 27
121: WWW-Authenticate: Digest realm="testrealm", nonce="1"
122:
123: HTTP/1.1 401 Sorry wrong password
124: Server: Microsoft-IIS/5.0
125: Content-Type: text/html; charset=iso-8859-1
126: Content-Length: 29
127: WWW-Authenticate: Digest realm="testrealm", nonce="2"
128:
129: This is a bad password page!
130: HTTP/1.1 200 Things are fine in server land
131: Server: Microsoft-IIS/5.0
132: Content-Type: text/html; charset=iso-8859-1
133: Content-Length: 32
134:
135: Finally, this is the real page!
136: HTTP/1.1 401 Need Digest auth (3)
137: Server: Microsoft-IIS/5.0
138: Content-Type: text/html; charset=iso-8859-1
139: Content-Length: 27
140: WWW-Authenticate: Digest realm="testrealm", nonce="4"
141:
142: HTTP/1.1 401 Sorry wrong password (2)
143: Server: Microsoft-IIS/5.0
144: Content-Type: text/html; charset=iso-8859-1
145: Content-Length: 29
146: WWW-Authenticate: Digest realm="testrealm", nonce="5"
147:
148: This is a bad password page!
149: HTTP/1.1 401 Sorry wrong password (3)
150: Server: Microsoft-IIS/5.0
151: Content-Type: text/html; charset=iso-8859-1
152: Content-Length: 29
153: WWW-Authenticate: Digest realm="testrealm", nonce="7"
154:
155: HTTP/1.1 401 Sorry wrong password (3)
156: Server: Microsoft-IIS/5.0
157: Content-Type: text/html; charset=iso-8859-1
158: Content-Length: 29
159: WWW-Authenticate: Digest realm="testrealm", nonce="7"
160:
161: This is a bad password page!
162: HTTP/1.1 200 Things are fine in server land (2)
163: Server: Microsoft-IIS/5.0
164: Content-Type: text/html; charset=iso-8859-1
165: Content-Length: 32
166:
167: Finally, this is the real page!
168: </datacheck>
169:
170: </reply>
171:
172: # Client-side
173: <client>
174: <server>
175: http
176: </server>
177: <features>
178: !SSPI
179: crypto
180: </features>
181: <tool>
182: libauthretry
183: </tool>
184:
185: <name>
186: HTTP authorization retry (Digest)
187: </name>
188: <setenv>
189: # we force our own host name, in order to make the test machine independent
190: CURL_GETHOSTNAME=curlhost
191: # we try to use the LD_PRELOAD hack, if not a debug build
192: LD_PRELOAD=%PWD/libtest/.libs/libhostname.so
193: </setenv>
194: <command>
195: http://%HOSTIP:%HTTPPORT/2027 digest digest
196: </command>
197: <precheck>
198: chkhostname curlhost
199: </precheck>
200: </client>
201:
202: # Verify data after the test has been "shot"
203: <verify>
204: <strip>
205: ^User-Agent:.*
206: </strip>
207: <protocol>
208: GET /20270100 HTTP/1.1
209: Host: %HOSTIP:%HTTPPORT
210: Accept: */*
211:
212: GET /20270100 HTTP/1.1
213: Host: %HOSTIP:%HTTPPORT
214: Authorization: Digest username="testuser", realm="testrealm", nonce="1", uri="/20270100", response="f7fd60eefaff5225971bf9b3d80d6ba6"
215: Accept: */*
216:
217: GET /20270200 HTTP/1.1
218: Host: %HOSTIP:%HTTPPORT
219: Authorization: Digest username="testuser", realm="testrealm", nonce="2", uri="/20270200", response="785ca3ef511999f7e9c178195f5b388c"
220: Accept: */*
221:
222: GET /20270300 HTTP/1.1
223: Host: %HOSTIP:%HTTPPORT
224: Accept: */*
225:
226: GET /20270300 HTTP/1.1
227: Host: %HOSTIP:%HTTPPORT
228: Authorization: Digest username="testuser", realm="testrealm", nonce="4", uri="/20270300", response="4c735d2360fd6848e7cb32a11ae3612b"
229: Accept: */*
230:
231: GET /20270400 HTTP/1.1
232: Host: %HOSTIP:%HTTPPORT
233: Authorization: Digest username="testuser", realm="testrealm", nonce="5", uri="/20270400", response="f5906785511fb60a2af8b1cd53008ead"
234: Accept: */*
235:
236: GET /20270400 HTTP/1.1
237: Host: %HOSTIP:%HTTPPORT
238: Authorization: Digest username="testuser", realm="testrealm", nonce="5", uri="/20270400", response="f5906785511fb60a2af8b1cd53008ead"
239: Accept: */*
240:
241: GET /20270500 HTTP/1.1
242: Host: %HOSTIP:%HTTPPORT
243: Authorization: Digest username="testuser", realm="testrealm", nonce="7", uri="/20270500", response="8ef4d935fd964a46c3965c0863b52cf1"
244: Accept: */*
245:
246: </protocol>
247: </verify>
248: </testcase>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>