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