1 <testcase> 2 # NOTE: this test case is a duplicate of 547 but the tool is built to use the 3 # multi interface instead of easy, but that shouldn't be noticable at all in 4 # this file! 5 <info> 6 <keywords> 7 HTTP 8 HTTP POST 9 POST callback 10 HTTP proxy 11 HTTP proxy NTLM auth 12 multi 13 </keywords> 14 </info> 15 16 # Server-side 17 <reply> 18 19 <data> 20 HTTP/1.1 407 Authorization Required swsclose 21 Server: Apache/1.3.27 (Darwin) PHP/4.1.2 22 Proxy-Authenticate: Blackmagic realm="gimme all yer s3cr3ts" 23 Proxy-Authenticate: Basic realm="gimme all yer s3cr3ts" 24 Proxy-Authenticate: NTLM 25 Content-Type: text/html; charset=iso-8859-1 26 Connection: close 27 28 This is not the real page 29 </data> 30 31 # this is returned first since we get no proxy-auth 32 <data1001> 33 HTTP/1.1 407 Authorization Required to proxy me my dear 34 Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== 35 Content-Length: 34 36 37 Hey you, authenticate or go away! 38 </data1001> 39 40 # This is supposed to be returned when the server gets the second 41 # Authorization: NTLM line passed-in from the client 42 <data1002> 43 HTTP/1.1 200 Things are fine in proxy land swsclose 44 Server: Microsoft-IIS/5.0 45 Content-Type: text/html; charset=iso-8859-1 46 Content-Length: 42 47 48 Contents of that page you requested, sir. 49 </data1002> 50 51 <datacheck> 52 HTTP/1.1 407 Authorization Required swsclose 53 Server: Apache/1.3.27 (Darwin) PHP/4.1.2 54 Proxy-Authenticate: Blackmagic realm="gimme all yer s3cr3ts" 55 Proxy-Authenticate: Basic realm="gimme all yer s3cr3ts" 56 Proxy-Authenticate: NTLM 57 Content-Type: text/html; charset=iso-8859-1 58 Connection: close 59 60 HTTP/1.1 407 Authorization Required to proxy me my dear 61 Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== 62 Content-Length: 34 63 64 HTTP/1.1 200 Things are fine in proxy land swsclose 65 Server: Microsoft-IIS/5.0 66 Content-Type: text/html; charset=iso-8859-1 67 Content-Length: 42 68 69 Contents of that page you requested, sir. 70 </datacheck> 71 </reply> 72 73 # Client-side 74 <client> 75 <server> 76 http 77 </server> 78 # tool to use 79 <tool> 80 lib555 81 </tool> 82 <features> 83 NTLM 84 !SSPI 85 debug 86 </features> 87 <name> 88 HTTP proxy auth NTLM with POST data from read callback multi-if 89 </name> 90 <setenv> 91 # we force our own host name, in order to make the test machine independent 92 CURL_GETHOSTNAME=curlhost 93 # we try to use the LD_PRELOAD hack, if not a debug build 94 LD_PRELOAD=%PWD/libtest/.libs/libhostname.so 95 </setenv> 96 <command> 97 http://test.remote.example.com/path/555 http://%HOSTIP:%HTTPPORT testuser:testpass 98 </command> 99 <precheck> 100 chkhostname curlhost 101 </precheck> 102 </client> 103 104 # Verify data after the test has been "shot" 105 <verify> 106 <strip> 107 ^User-Agent: curl/.* 108 </strip> 109 <strippart> 110 # remove CR that CURLOPT_TRANSFERTEXT added, when CharConv enabled: 111 s/^(this is the blurb we want to upload)\r\n/$1\n/ if($has_charconv) 112 </strippart> 113 <protocol> 114 POST http://test.remote.example.com/path/555 HTTP/1.1 115 Host: test.remote.example.com 116 User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 117 Accept: */* 118 Content-Length: 36 119 Content-Type: application/x-www-form-urlencoded 120 121 this is the blurb we want to upload 122 POST http://test.remote.example.com/path/555 HTTP/1.1 123 Host: test.remote.example.com 124 Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= 125 User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 126 Accept: */* 127 Content-Length: 0 128 Content-Type: application/x-www-form-urlencoded 129 130 POST http://test.remote.example.com/path/555 HTTP/1.1 131 Host: test.remote.example.com 132 Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAACeAJ4AWAAAAAAAAAD2AAAACAAIAPYAAAAIAAgA/gAAAAAAAAAAAAAABoKBAL9LNW5+nkyHZRmyFaL/LJ4xMjM0MjIzNGUCyhgQ9hw6eWAT13EbDa0BAQAAAAAAAACAPtXesZ0BMTIzNDIyMzQAAAAAAgAEAEMAQwABABIARQBMAEkAUwBBAEIARQBUAEgABAAYAGMAYwAuAGkAYwBlAGQAZQB2AC4AbgB1AAMALABlAGwAaQBzAGEAYgBlAHQAaAAuAGMAYwAuAGkAYwBlAGQAZQB2AC4AbgB1AAAAAAAAAAAAdGVzdHVzZXJjdXJsaG9zdA== 133 User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 134 Accept: */* 135 Content-Length: 36 136 Content-Type: application/x-www-form-urlencoded 137 138 this is the blurb we want to upload 139 </protocol> 140 </verify> 141 </testcase> 142