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