1<testcase> 2<info> 3<keywords> 4HTTP 5HTTP GET 6HTTP Negotiate auth (stub ntlm) 7</keywords> 8</info> 9# Server-side 10<reply> 11<!-- First request, expect 401 Negotiate --> 12<data> 13HTTP/1.1 401 Authorization Required 14Server: Microsoft-IIS/7.0 15Content-Type: text/html; charset=iso-8859-1 16WWW-Authenticate: Negotiate 17Content-Length: 13 18 19Not yet sir! 20</data> 21<!-- Second request, expect 401 (ntlm challenge) --> 22<data1> 23HTTP/1.1 401 Authorization Required 24Server: Microsoft-IIS/7.0 25Content-Type: text/html; charset=iso-8859-1 26WWW-Authenticate: Negotiate Qw== 27Content-Length: 19 28 29Still not yet sir! 30</data1> 31<!-- Third request, expect success --> 32<data2> 33HTTP/1.1 200 Things are fine in server land 34Server: Microsoft-IIS/7.0 35Content-Type: text/html; charset=iso-8859-1 36WWW-Authenticate: Negotiate RA== 37Content-Length: 15 38 39Nice auth sir! 40</data2> 41<datacheck> 42HTTP/1.1 401 Authorization Required 43Server: Microsoft-IIS/7.0 44Content-Type: text/html; charset=iso-8859-1 45WWW-Authenticate: Negotiate 46Content-Length: 13 47 48HTTP/1.1 401 Authorization Required 49Server: Microsoft-IIS/7.0 50Content-Type: text/html; charset=iso-8859-1 51WWW-Authenticate: Negotiate Qw== 52Content-Length: 19 53 54HTTP/1.1 200 Things are fine in server land 55Server: Microsoft-IIS/7.0 56Content-Type: text/html; charset=iso-8859-1 57WWW-Authenticate: Negotiate RA== 58Content-Length: 15 59 60Nice auth sir! 61</datacheck> 62</reply> 63 64# Client-side 65<client> 66<server> 67http 68</server> 69<name> 70HTTP Negotiate authentication (stub ntlm) 71</name> 72<features> 73GSS-API 74ld_preload 75!debug 76</features> 77<setenv> 78LD_PRELOAD=%PWD/libtest/.libs/libstubgss.so 79CURL_STUB_GSS_CREDS="NTLM_Alice" 80</setenv> 81<command> 82-u: --negotiate http://%HOSTIP:%HTTPPORT/2057 83</command> 84</client> 85 86# Verify data after the test has been "shot" 87<verify> 88<strip> 89^User-Agent:.* 90</strip> 91<protocol> 92GET /2057 HTTP/1.1 93Host: %HOSTIP:%HTTPPORT 94Accept: */* 95 96GET /2057 HTTP/1.1 97Host: %HOSTIP:%HTTPPORT 98Authorization: Negotiate Ik5UTE1fQWxpY2UiOkhUVFBAMTI3LjAuMC4xOjI6QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQ== 99Accept: */* 100 101GET /2057 HTTP/1.1 102Host: %HOSTIP:%HTTPPORT 103Authorization: Negotiate Ik5UTE1fQWxpY2UiOkhUVFBAMTI3LjAuMC4xOjM6QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQ== 104Accept: */* 105 106</protocol> 107</verify> 108</testcase> 109