1eae4826d84c2230569344e17328b97de8d5d1e8
[platform/upstream/curl.git] / tests / data / test2025
1 <testcase>
2 <info>
3 <keywords>
4 HTTP
5 HTTP GET
6 HTTP Basic auth
7 HTTP NTLM auth
8 </keywords>
9 </info>
10 # Server-side
11 <reply>
12
13 <!-- Alternate the order that Basic and NTLM headers appear in responses to
14 ensure that the order doesn't matter. -->
15
16 <!-- First request has Basic auth, wrong password -->
17 <data100>
18 HTTP/1.1 401 Sorry wrong password\r
19 Server: Microsoft-IIS/5.0\r
20 Content-Type: text/html; charset=iso-8859-1\r
21 Content-Length: 29\r
22 WWW-Authenticate: NTLM\r
23 WWW-Authenticate: Basic realm="testrealm"\r
24 \r
25 This is a bad password page!
26 </data100>
27
28 <!-- Second request has NTLM auth, right password -->
29 <data200>
30 HTTP/1.1 401 Need Basic or NTLM auth\r
31 Server: Microsoft-IIS/5.0\r
32 Content-Type: text/html; charset=iso-8859-1\r
33 Content-Length: 27\r
34 WWW-Authenticate: Basic realm="testrealm"\r
35 WWW-Authenticate: NTLM\r
36 \r
37 This is not the real page!
38 </data200>
39
40 <data1201>
41 HTTP/1.1 401 NTLM intermediate\r
42 Server: Microsoft-IIS/5.0\r
43 Content-Type: text/html; charset=iso-8859-1\r
44 Content-Length: 33\r
45 WWW-Authenticate: NTLM TlRMTVNTUAACAAAACAAIADAAAAAGggEAq6U1NAWaJCIAAAAAAAAAAAAAAAA4AAAATlRMTUF1dGg=\r
46 \r
47 This is still not the real page!
48 </data1201>
49
50 <data1202>
51 HTTP/1.1 200 Things are fine in server land\r
52 Server: Microsoft-IIS/5.0\r
53 Content-Type: text/html; charset=iso-8859-1\r
54 Content-Length: 32\r
55 \r
56 Finally, this is the real page!
57 </data1202>
58
59 <!-- Third request has Basic auth, wrong password -->
60 <data300>
61 HTTP/1.1 401 Sorry wrong password (2)\r
62 Server: Microsoft-IIS/5.0\r
63 Content-Type: text/html; charset=iso-8859-1\r
64 Content-Length: 29\r
65 WWW-Authenticate: NTLM\r
66 WWW-Authenticate: Basic realm="testrealm"\r
67 \r
68 This is a bad password page!
69 </data300>
70
71 <!-- Fourth request has NTLM auth, wrong password -->
72 <data400>
73 HTTP/1.1 401 Need Basic or NTLM auth (2)\r
74 Server: Microsoft-IIS/5.0\r
75 Content-Type: text/html; charset=iso-8859-1\r
76 Content-Length: 27\r
77 WWW-Authenticate: Basic realm="testrealm"\r
78 WWW-Authenticate: NTLM\r
79 \r
80 This is not the real page!
81 </data400>
82
83 <data1401>
84 HTTP/1.1 401 NTLM intermediate (2)\r
85 Server: Microsoft-IIS/5.0\r
86 Content-Type: text/html; charset=iso-8859-1\r
87 Content-Length: 33\r
88 WWW-Authenticate: NTLM TlRMTVNTUAACAAAACAAIADAAAAAGggEAq6U1NAWaJCIAAAAAAAAAAAAAAAA4AAAATlRMTUF1dGg=\r
89 \r
90 This is still not the real page!
91 </data1401>
92
93 <data1402>
94 HTTP/1.1 401 Sorry wrong password (3)\r
95 Server: Microsoft-IIS/5.0\r
96 Content-Type: text/html; charset=iso-8859-1\r
97 Content-Length: 29\r
98 WWW-Authenticate: NTLM\r
99 WWW-Authenticate: Basic realm="testrealm"\r
100 \r
101 This is a bad password page!
102 </data1402>
103
104 <!-- Fifth request has NTLM auth, right password -->
105 <data500>
106 HTTP/1.1 401 Need Basic or NTLM auth (3)\r
107 Server: Microsoft-IIS/5.0\r
108 Content-Type: text/html; charset=iso-8859-1\r
109 Content-Length: 27\r
110 WWW-Authenticate: Basic realm="testrealm"\r
111 WWW-Authenticate: NTLM\r
112 \r
113 This is not the real page!
114 </data500>
115
116 <data1501>
117 HTTP/1.1 401 NTLM intermediate (3)\r
118 Server: Microsoft-IIS/5.0\r
119 Content-Type: text/html; charset=iso-8859-1\r
120 Content-Length: 33\r
121 WWW-Authenticate: NTLM TlRMTVNTUAACAAAACAAIADAAAAAGggEAq6U1NAWaJCIAAAAAAAAAAAAAAAA4AAAATlRMTUF1dGg=\r
122 \r
123 This is still not the real page!
124 </data1501>
125
126 <data1502>
127 HTTP/1.1 200 Things are fine in server land (2)\r
128 Server: Microsoft-IIS/5.0\r
129 Content-Type: text/html; charset=iso-8859-1\r
130 Content-Length: 32\r
131 \r
132 Finally, this is the real page!
133 </data1502>
134
135 <datacheck>
136 HTTP/1.1 401 Sorry wrong password\r
137 Server: Microsoft-IIS/5.0\r
138 Content-Type: text/html; charset=iso-8859-1\r
139 Content-Length: 29\r
140 WWW-Authenticate: NTLM\r
141 WWW-Authenticate: Basic realm="testrealm"\r
142 \r
143 This is a bad password page!
144 HTTP/1.1 401 NTLM intermediate\r
145 Server: Microsoft-IIS/5.0\r
146 Content-Type: text/html; charset=iso-8859-1\r
147 Content-Length: 33\r
148 WWW-Authenticate: NTLM TlRMTVNTUAACAAAACAAIADAAAAAGggEAq6U1NAWaJCIAAAAAAAAAAAAAAAA4AAAATlRMTUF1dGg=\r
149 \r
150 HTTP/1.1 200 Things are fine in server land\r
151 Server: Microsoft-IIS/5.0\r
152 Content-Type: text/html; charset=iso-8859-1\r
153 Content-Length: 32\r
154 \r
155 Finally, this is the real page!
156 HTTP/1.1 401 Sorry wrong password (2)\r
157 Server: Microsoft-IIS/5.0\r
158 Content-Type: text/html; charset=iso-8859-1\r
159 Content-Length: 29\r
160 WWW-Authenticate: NTLM\r
161 WWW-Authenticate: Basic realm="testrealm"\r
162 \r
163 This is a bad password page!
164 HTTP/1.1 401 NTLM intermediate (2)\r
165 Server: Microsoft-IIS/5.0\r
166 Content-Type: text/html; charset=iso-8859-1\r
167 Content-Length: 33\r
168 WWW-Authenticate: NTLM TlRMTVNTUAACAAAACAAIADAAAAAGggEAq6U1NAWaJCIAAAAAAAAAAAAAAAA4AAAATlRMTUF1dGg=\r
169 \r
170 HTTP/1.1 401 Sorry wrong password (3)\r
171 Server: Microsoft-IIS/5.0\r
172 Content-Type: text/html; charset=iso-8859-1\r
173 Content-Length: 29\r
174 WWW-Authenticate: NTLM\r
175 WWW-Authenticate: Basic realm="testrealm"\r
176 \r
177 This is a bad password page!
178 HTTP/1.1 401 NTLM intermediate (3)\r
179 Server: Microsoft-IIS/5.0\r
180 Content-Type: text/html; charset=iso-8859-1\r
181 Content-Length: 33\r
182 WWW-Authenticate: NTLM TlRMTVNTUAACAAAACAAIADAAAAAGggEAq6U1NAWaJCIAAAAAAAAAAAAAAAA4AAAATlRMTUF1dGg=\r
183 \r
184 HTTP/1.1 200 Things are fine in server land (2)\r
185 Server: Microsoft-IIS/5.0\r
186 Content-Type: text/html; charset=iso-8859-1\r
187 Content-Length: 32\r
188 \r
189 Finally, this is the real page!
190 </datacheck>
191
192 </reply>
193
194 # Client-side
195 <client>
196 <features>
197 NTLM
198 !SSPI
199 </features>
200 <server>
201 http
202 </server>
203 <tool>
204 libauthretry
205 </tool>
206
207  <name>
208 HTTP authorization retry (Basic switching to NTLM)
209  </name>
210  <setenv>
211 # we force our own host name, in order to make the test machine independent
212 CURL_GETHOSTNAME=curlhost
213 # we try to use the LD_PRELOAD hack, if not a debug build
214 LD_PRELOAD=%PWD/libtest/.libs/libhostname.so
215  </setenv>
216  <command>
217 http://%HOSTIP:%HTTPPORT/2025 basic ntlm
218 </command>
219 <precheck>
220 chkhostname curlhost
221 </precheck>
222 </client>
223
224 # Verify data after the test has been "shot"
225 <verify>
226 <strip>
227 ^User-Agent:.*
228 </strip>
229 <protocol>
230 GET /20250100 HTTP/1.1\r
231 Host: %HOSTIP:%HTTPPORT\r
232 Authorization: Basic dGVzdHVzZXI6d3JvbmdwYXNz\r
233 Accept: */*\r
234 \r
235 GET /20250200 HTTP/1.1\r
236 Host: %HOSTIP:%HTTPPORT\r
237 Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=\r
238 Accept: */*\r
239 \r
240 GET /20250200 HTTP/1.1\r
241 Host: %HOSTIP:%HTTPPORT\r
242 Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAAIAAgAeAAAAAAAAAAAAAAABoIBAI+/Fp9IERAQ74OsdNPbBpg7o8CVwLSO4DtFyIcZHUMKVktWIu92s2892OVpd2JzqnRlc3R1c2VyY3VybGhvc3Q=\r
243 Accept: */*\r
244 \r
245 GET /20250300 HTTP/1.1\r
246 Host: %HOSTIP:%HTTPPORT\r
247 Authorization: Basic dGVzdHVzZXI6d3JvbmdwYXNz\r
248 Accept: */*\r
249 \r
250 GET /20250400 HTTP/1.1\r
251 Host: %HOSTIP:%HTTPPORT\r
252 Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=\r
253 Accept: */*\r
254 \r
255 GET /20250400 HTTP/1.1\r
256 Host: %HOSTIP:%HTTPPORT\r
257 Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAAIAAgAeAAAAAAAAAAAAAAABoIBANgKEcT5xUUBHw5+0m4FjWTGNzg6PeHJHbaPwNwCt/tXcnIeTQCTMAg12SPDyNXMf3Rlc3R1c2VyY3VybGhvc3Q=\r
258 Accept: */*\r
259 \r
260 GET /20250500 HTTP/1.1\r
261 Host: %HOSTIP:%HTTPPORT\r
262 Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=\r
263 Accept: */*\r
264 \r
265 GET /20250500 HTTP/1.1\r
266 Host: %HOSTIP:%HTTPPORT\r
267 Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAAIAAgAeAAAAAAAAAAAAAAABoIBAI+/Fp9IERAQ74OsdNPbBpg7o8CVwLSO4DtFyIcZHUMKVktWIu92s2892OVpd2JzqnRlc3R1c2VyY3VybGhvc3Q=\r
268 Accept: */*\r
269 \r
270 </protocol>
271 </verify>
272 </testcase>