1 <testcase> 2 <info> 3 <keywords> 4 HTTP 5 HTTP POST 6 POST callback 7 HTTP proxy 8 HTTP proxy NTLM auth 9 </keywords> 10 </info> 11 # Server-side 12 <reply> 13 14 <data> 15 HTTP/1.1 407 Authorization Required swsclose 16 Server: Apache/1.3.27 (Darwin) PHP/4.1.2 17 Proxy-Authenticate: Negotiate 18 Proxy-Authenticate: NTLM 19 Content-Type: text/html; charset=iso-8859-1 20 Connection: close 21 22 This is not the real page 23 </data> 24 25 # this is returned first since we get no proxy-auth 26 <data1001> 27 HTTP/1.1 407 Authorization Required to proxy me my dear 28 Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== 29 Content-Length: 34 30 31 Hey you, authenticate or go away! 32 </data1001> 33 34 # This is supposed to be returned when the server gets the second 35 # Authorization: NTLM line passed-in from the client 36 <data1002> 37 HTTP/1.1 200 Things are fine in proxy land swsclose 38 Server: Microsoft-IIS/5.0 39 Content-Type: text/html; charset=iso-8859-1 40 Content-Length: 42 41 42 Contents of that page you requested, sir. 43 </data1002> 44 45 <datacheck> 46 HTTP/1.1 407 Authorization Required swsclose 47 Server: Apache/1.3.27 (Darwin) PHP/4.1.2 48 Proxy-Authenticate: Negotiate 49 Proxy-Authenticate: NTLM 50 Content-Type: text/html; charset=iso-8859-1 51 Connection: close 52 53 HTTP/1.1 407 Authorization Required to proxy me my dear 54 Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== 55 Content-Length: 34 56 57 HTTP/1.1 200 Things are fine in proxy land swsclose 58 Server: Microsoft-IIS/5.0 59 Content-Type: text/html; charset=iso-8859-1 60 Content-Length: 42 61 62 Contents of that page you requested, sir. 63 </datacheck> 64 </reply> 65 66 # Client-side 67 <client> 68 <server> 69 http 70 </server> 71 # tool to use 72 <tool> 73 lib590 74 </tool> 75 <features> 76 NTLM 77 !SSPI 78 debug 79 </features> 80 <name> 81 HTTP proxy offers Negotiate+NTLM, use only NTLM 82 </name> 83 <setenv> 84 # we force our own host name, in order to make the test machine independent 85 CURL_GETHOSTNAME=curlhost 86 # we try to use the LD_PRELOAD hack, if not a debug build 87 LD_PRELOAD=%PWD/libtest/.libs/libhostname.so 88 </setenv> 89 <command> 90 http://test.remote.example.com/path/590 http://%HOSTIP:%HTTPPORT 91 </command> 92 <precheck> 93 chkhostname curlhost 94 </precheck> 95 </client> 96 97 # Verify data after the test has been "shot" 98 <verify> 99 <strip> 100 ^User-Agent: curl/.* 101 </strip> 102 <protocol> 103 GET http://test.remote.example.com/path/590 HTTP/1.1 104 Host: test.remote.example.com 105 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 106 Accept: */* 107 Proxy-Connection: Keep-Alive 108 109 GET http://test.remote.example.com/path/590 HTTP/1.1 110 Host: test.remote.example.com 111 Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= 112 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 113 Accept: */* 114 Proxy-Connection: Keep-Alive 115 116 GET http://test.remote.example.com/path/590 HTTP/1.1 117 Host: test.remote.example.com 118 Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAACeAJ4AWAAAAAAAAAD2AAAAAgACAPYAAAAIAAgA+AAAAAAAAAAAAAAABoKBAB3Hr6SDn3NDNkgebbaP88ExMjM0MjIzNFIW4N7aYT44bAIg1jt2blUBAQAAAAAAAACAPtXesZ0BMTIzNDIyMzQAAAAAAgAEAEMAQwABABIARQBMAEkAUwBBAEIARQBUAEgABAAYAGMAYwAuAGkAYwBlAGQAZQB2AC4AbgB1AAMALABlAGwAaQBzAGEAYgBlAHQAaAAuAGMAYwAuAGkAYwBlAGQAZQB2AC4AbgB1AAAAAAAAAAAAbWVjdXJsaG9zdA== 119 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 120 Accept: */* 121 Proxy-Connection: Keep-Alive 122 123 </protocol> 124 </verify> 125 </testcase> 126