1<testcase> 2<info> 3<keywords> 4HTTP 5HTTP GET 6HTTP CONNECT 7HTTP proxy 8HTTP proxy NTLM auth 9</keywords> 10</info> 11 12# Server-side 13<reply> 14 15# this is returned first since we get no proxy-auth 16<connect1001> 17HTTP/1.1 407 Authorization Required to proxy me my dear 18Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== 19Content-Length: 33 20 21And you should ignore this data. 22</connect1001> 23 24# This is supposed to be returned when the server gets the second 25# Authorization: NTLM line passed-in from the client 26<connect1002> 27HTTP/1.1 200 Things are fine in proxy land 28Server: Microsoft-IIS/5.0 29Content-Type: text/html; charset=iso-8859-1 30 31</connect1002> 32 33# this is returned when we get a GET! 34<data2> 35HTTP/1.1 200 OK 36Date: Thu, 09 Nov 2010 14:49:00 GMT 37Content-Length: 7 38Connection: close 39Content-Type: text/html 40Funny-head: yesyes 41 42daniel 43</data2> 44 45# then this is returned when we get proxy-auth 46<data1000> 47HTTP/1.1 200 OK swsbounce 48Server: no 49 50Nice proxy auth sir! 51</data1000> 52 53<datacheck> 54HTTP/1.1 407 Authorization Required to proxy me my dear 55Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== 56Content-Length: 33 57 58HTTP/1.1 200 Things are fine in proxy land 59Server: Microsoft-IIS/5.0 60Content-Type: text/html; charset=iso-8859-1 61 62HTTP/1.1 200 OK 63Date: Thu, 09 Nov 2010 14:49:00 GMT 64Content-Length: 7 65Connection: close 66Content-Type: text/html 67Funny-head: yesyes 68 69daniel 70</datacheck> 71</reply> 72 73# Client-side 74<client> 75<server> 76http 77</server> 78<features> 79NTLM 80!SSPI 81debug 82</features> 83 <name> 84HTTP proxy CONNECT auth NTLM 85 </name> 86 <setenv> 87# we force our own host name, in order to make the test machine independent 88CURL_GETHOSTNAME=curlhost 89# we try to use the LD_PRELOAD hack, if not a debug build 90LD_PRELOAD=%PWD/libtest/.libs/libhostname.so 91 </setenv> 92 <command> 93http://test.remote.example.com.209:%HTTPPORT/path/2090002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user testuser:testpass --proxy-ntlm --proxytunnel 94</command> 95<precheck> 96chkhostname curlhost 97</precheck> 98</client> 99 100# Verify data after the test has been "shot" 101<verify> 102<strip> 103^User-Agent: curl/.* 104</strip> 105<protocol> 106CONNECT test.remote.example.com.209:%HTTPPORT HTTP/1.1 107Host: test.remote.example.com.209:%HTTPPORT 108Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= 109Proxy-Connection: Keep-Alive 110 111CONNECT test.remote.example.com.209:%HTTPPORT HTTP/1.1 112Host: test.remote.example.com.209:%HTTPPORT 113Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAAIAAgAeAAAAAAAAAAAAAAAhoIBADQzMjE1MzIxAAAAAAAAAAAAAAAAAAAAADj3hs3u3j0kgJqCrLM+74BmaoNHDfIJjHRlc3R1c2VyY3VybGhvc3Q= 114Proxy-Connection: Keep-Alive 115 116GET /path/2090002 HTTP/1.1 117User-Agent: curl/7.12.3-CVS (i686-pc-linux-gnu) libcurl/7.12.3-CVS OpenSSL/0.9.6b zlib/1.1.4 118Host: test.remote.example.com.209:%HTTPPORT 119Accept: */* 120 121</protocol> 122</verify> 123</testcase> 124