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 TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==
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 Recevied 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 TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==
64
65HTTP/1.1 200 Type-3 Recevied 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
79!SSPI
80debug
81</features>
82<server>
83http
84</server>
85 <name>
86HTTP PUT with --anyauth authorization (picking NTLM)
87 </name>
88 <setenv>
89# we force our own host name, in order to make the test machine independent
90CURL_GETHOSTNAME=curlhost
91# we try to use the LD_PRELOAD hack, if not a debug build
92LD_PRELOAD=%PWD/libtest/.libs/libhostname.so
93 </setenv>
94 <command>
95http://%HOSTIP:%HTTPPORT/155 -T log/put155 -u testuser:testpass --anyauth
96</command>
97<precheck>
98chkhostname curlhost
99</precheck>
100<file name="log/put155">
101This is data we upload with PUT
102a second line
103line three
104four is the number of lines
105</file>
106</client>
107
108# Verify data after the test has been "shot"
109<verify>
110<strip>
111^User-Agent:.*
112</strip>
113<protocol>
114PUT /155 HTTP/1.1
115Host: %HOSTIP:%HTTPPORT
116Accept: */*
117Content-Length: 85
118Expect: 100-continue
119
120PUT /155 HTTP/1.1
121Host: %HOSTIP:%HTTPPORT
122Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=
123Accept: */*
124Content-Length: 0
125
126PUT /155 HTTP/1.1
127Host: %HOSTIP:%HTTPPORT
128Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAACeAJ4AWAAAAAAAAAD2AAAACAAIAPYAAAAIAAgA/gAAAAAAAAAAAAAABoKBAL9LNW5+nkyHZRmyFaL/LJ4xMjM0MjIzNGUCyhgQ9hw6eWAT13EbDa0BAQAAAAAAAACAPtXesZ0BMTIzNDIyMzQAAAAAAgAEAEMAQwABABIARQBMAEkAUwBBAEIARQBUAEgABAAYAGMAYwAuAGkAYwBlAGQAZQB2AC4AbgB1AAMALABlAGwAaQBzAGEAYgBlAHQAaAAuAGMAYwAuAGkAYwBlAGQAZQB2AC4AbgB1AAAAAAAAAAAAdGVzdHVzZXJjdXJsaG9zdA==
129User-Agent: curl/7.10.5 (i686-pc-linux-gnu) libcurl/7.10.5 OpenSSL/0.9.7a ipv6 zlib/1.1.3
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