1<testcase>
2<info>
3<keywords>
4HTTP
5HTTP POST
6HTTP NTLM auth
7</keywords>
8</info>
9# Server-side
10<reply>
11
12<!-- no <data> in this test since we have NTLM from the start
13
14This is supposed to be returned when the server gets a first
15Authorization: NTLM line passed-in from the client -->
16
17<data1001>
18HTTP/1.1 401 Now gimme that second request of crap
19Server: Microsoft-IIS/5.0
20Content-Type: text/html; charset=iso-8859-1
21Content-Length: 34
22WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==
23
24This is not the real page either!
25</data1001>
26
27# This is supposed to be returned when the server gets the second
28# Authorization: NTLM line passed-in from the client
29<data1002>
30HTTP/1.1 200 Things are fine in server land swsclose
31Server: Microsoft-IIS/5.0
32Content-Type: text/html; charset=iso-8859-1
33Content-Length: 32
34
35Finally, this is the real page!
36</data1002>
37
38<datacheck>
39HTTP/1.1 401 Now gimme that second request of crap
40Server: Microsoft-IIS/5.0
41Content-Type: text/html; charset=iso-8859-1
42Content-Length: 34
43WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==
44
45HTTP/1.1 200 Things are fine in server land swsclose
46Server: Microsoft-IIS/5.0
47Content-Type: text/html; charset=iso-8859-1
48Content-Length: 32
49
50Finally, this is the real page!
51</datacheck>
52
53</reply>
54
55# Client-side
56<client>
57<features>
58NTLM
59!SSPI
60debug
61</features>
62<server>
63http
64</server>
65 <name>
66HTTP POST with NTLM authorization and added custom headers
67 </name>
68 <setenv>
69# we force our own host name, in order to make the test machine independent
70CURL_GETHOSTNAME=curlhost
71# we try to use the LD_PRELOAD hack, if not a debug build
72LD_PRELOAD=%PWD/libtest/.libs/libhostname.so
73 </setenv>
74 <command>
75http://%HOSTIP:%HTTPPORT/267 -u testuser:testpass --ntlm -d "data" -H "Header1: yes" -H "Header2: no"
76</command>
77<precheck>
78chkhostname curlhost
79</precheck>
80</client>
81
82# Verify data after the test has been "shot"
83<verify>
84<strip>
85^User-Agent:.*
86</strip>
87<protocol nonewline="yes">
88POST /267 HTTP/1.1
89Host: %HOSTIP:%HTTPPORT
90Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=
91User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3
92Accept: */*
93Header1: yes
94Header2: no
95Content-Length: 0
96Content-Type: application/x-www-form-urlencoded
97
98POST /267 HTTP/1.1
99Host: %HOSTIP:%HTTPPORT
100Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAAIAAgAeAAAAAAAAAAAAAAAhoIBADQzMjE1MzIxAAAAAAAAAAAAAAAAAAAAADj3hs3u3j0kgJqCrLM+74BmaoNHDfIJjHRlc3R1c2VyY3VybGhvc3Q=
101User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3
102Accept: */*
103Header1: yes
104Header2: no
105Content-Length: 4
106Content-Type: application/x-www-form-urlencoded
107
108data
109</protocol>
110</verify>
111</testcase>
112