1<testcase>
2<info>
3<keywords>
4HTTP
5HTTP PUT
6HTTP NTLM auth
7</keywords>
8</info>
9
10# Server-side
11<reply>
12<servercmd>
13auth_required
14</servercmd>
15<data>
16HTTP/1.1 401 NTLM Authorization Required swsclose
17Server: Apache/1.3.27 (Darwin) PHP/4.1.2
18WWW-Authenticate: Blackmagic realm="gimme all yer s3cr3ts"
19WWW-Authenticate: Basic realm="gimme all yer s3cr3ts"
20WWW-Authenticate: NTLM
21Content-Type: text/html; charset=iso-8859-1
22Connection: close
23
24moo
25</data>
26
27# This is supposed to be returned when the server gets a first
28# Authorization: NTLM line passed-in from the client
29<data1001>
30HTTP/1.1 401 Type-1 received, send back type-2
31Server: Microsoft-IIS/5.0
32Content-Length: 34
33Content-Type: text/html; charset=iso-8859-1
34WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==
35
36This is not the real page either!
37</data1001>
38
39# This is supposed to be returned when the server gets the second
40# Authorization: NTLM line passed-in from the client
41<data1002>
42HTTP/1.1 200 Type-3 Received and all Things are fine swsclose
43Server: Microsoft-IIS/5.0
44Content-Type: text/html; charset=iso-8859-1
45Content-Length: 32
46
47Finally, this is the real page!
48</data1002>
49
50<datacheck>
51HTTP/1.1 401 NTLM Authorization Required swsclose
52Server: Apache/1.3.27 (Darwin) PHP/4.1.2
53WWW-Authenticate: Blackmagic realm="gimme all yer s3cr3ts"
54WWW-Authenticate: Basic realm="gimme all yer s3cr3ts"
55WWW-Authenticate: NTLM
56Content-Type: text/html; charset=iso-8859-1
57Connection: close
58
59HTTP/1.1 401 Type-1 received, send back type-2
60Server: Microsoft-IIS/5.0
61Content-Length: 34
62Content-Type: text/html; charset=iso-8859-1
63WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==
64
65HTTP/1.1 200 Type-3 Received and all Things are fine swsclose
66Server: Microsoft-IIS/5.0
67Content-Type: text/html; charset=iso-8859-1
68Content-Length: 32
69
70Finally, this is the real page!
71</datacheck>
72
73</reply>
74
75# Client-side
76<client>
77<features>
78NTLM
79SSL
80!SSPI
81debug
82</features>
83<server>
84http
85</server>
86 <name>
87HTTP PUT with --anyauth authorization (picking NTLM)
88 </name>
89 <setenv>
90# we force our own host name, in order to make the test machine independent
91CURL_GETHOSTNAME=curlhost
92# we try to use the LD_PRELOAD hack, if not a debug build
93LD_PRELOAD=%PWD/libtest/.libs/libhostname.so
94 </setenv>
95 <command>
96http://%HOSTIP:%HTTPPORT/155 -T log/put155 -u testuser:testpass --anyauth
97</command>
98<precheck>
99chkhostname curlhost
100</precheck>
101<file name="log/put155">
102This is data we upload with PUT
103a second line
104line three
105four is the number of lines
106</file>
107</client>
108
109# Verify data after the test has been "shot"
110<verify>
111<protocol>
112PUT /155 HTTP/1.1
113Host: %HOSTIP:%HTTPPORT
114User-Agent: curl/%VERSION
115Accept: */*
116Content-Length: 85
117Expect: 100-continue
118
119PUT /155 HTTP/1.1
120Host: %HOSTIP:%HTTPPORT
121Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=
122User-Agent: curl/%VERSION
123Accept: */*
124Content-Length: 0
125
126PUT /155 HTTP/1.1
127Host: %HOSTIP:%HTTPPORT
128Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAAIAAgAeAAAAAAAAAAAAAAAhoIBADQzMjE1MzIxAAAAAAAAAAAAAAAAAAAAADj3hs3u3j0kgJqCrLM+74BmaoNHDfIJjHRlc3R1c2VyY3VybGhvc3Q=
129User-Agent: curl/%VERSION
130Accept: */*
131Content-Length: 85
132Expect: 100-continue
133
134This is data we upload with PUT
135a second line
136line three
137four is the number of lines
138</protocol>
139</verify>
140</testcase>
141