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