Home | History | Annotate | Download | only in data
      1 <testcase>
      2 <info>
      3 <keywords>
      4 HTTP
      5 HTTP GET
      6 HTTP Basic auth
      7 HTTP Digest auth
      8 </keywords>
      9 </info>
     10 # Server-side
     11 <reply>
     12 
     13 <!-- Alternate the order that Basic and Digest headers appear in responses to
     14 ensure that the order doesn't matter. -->
     15 
     16 <!-- First request has Basic auth, wrong password -->
     17 <data100>
     18 HTTP/1.1 401 Sorry wrong password
     19 Server: Microsoft-IIS/5.0
     20 Content-Type: text/html; charset=iso-8859-1
     21 Content-Length: 29
     22 WWW-Authenticate: Digest realm="testrealm", nonce="1"
     23 WWW-Authenticate: Basic realm="testrealm"
     24 
     25 This is a bad password page!
     26 </data100>
     27 
     28 <!-- Second request has Digest auth, right password -->
     29 <data1200>
     30 HTTP/1.1 200 Things are fine in server land
     31 Server: Microsoft-IIS/5.0
     32 Content-Type: text/html; charset=iso-8859-1
     33 Content-Length: 32
     34 
     35 Finally, this is the real page!
     36 </data1200>
     37 
     38 <!-- Third request has Basic auth, wrong password -->
     39 <data300>
     40 HTTP/1.1 401 Sorry wrong password (2)
     41 Server: Microsoft-IIS/5.0
     42 Content-Type: text/html; charset=iso-8859-1
     43 Content-Length: 29
     44 WWW-Authenticate: Digest realm="testrealm", nonce="2"
     45 WWW-Authenticate: Basic realm="testrealm"
     46 
     47 This is a bad password page!
     48 </data300>
     49 
     50 <!-- Fourth request has Digest auth, wrong password -->
     51 <data1400>
     52 HTTP/1.1 401 Sorry wrong password (3)
     53 Server: Microsoft-IIS/5.0
     54 Content-Type: text/html; charset=iso-8859-1
     55 Content-Length: 29
     56 WWW-Authenticate: Digest realm="testrealm", nonce="3"
     57 WWW-Authenticate: Basic realm="testrealm"
     58 
     59 This is a bad password page!
     60 </data1400>
     61 
     62 <!-- Fifth request has Digest auth, right password -->
     63 <data1500>
     64 HTTP/1.1 200 Things are fine in server land (2)
     65 Server: Microsoft-IIS/5.0
     66 Content-Type: text/html; charset=iso-8859-1
     67 Content-Length: 32
     68 
     69 Finally, this is the real page!
     70 </data1500>
     71 
     72 <datacheck>
     73 HTTP/1.1 401 Sorry wrong password
     74 Server: Microsoft-IIS/5.0
     75 Content-Type: text/html; charset=iso-8859-1
     76 Content-Length: 29
     77 WWW-Authenticate: Digest realm="testrealm", nonce="1"
     78 WWW-Authenticate: Basic realm="testrealm"
     79 
     80 This is a bad password page!
     81 HTTP/1.1 200 Things are fine in server land
     82 Server: Microsoft-IIS/5.0
     83 Content-Type: text/html; charset=iso-8859-1
     84 Content-Length: 32
     85 
     86 Finally, this is the real page!
     87 HTTP/1.1 401 Sorry wrong password (2)
     88 Server: Microsoft-IIS/5.0
     89 Content-Type: text/html; charset=iso-8859-1
     90 Content-Length: 29
     91 WWW-Authenticate: Digest realm="testrealm", nonce="2"
     92 WWW-Authenticate: Basic realm="testrealm"
     93 
     94 This is a bad password page!
     95 HTTP/1.1 401 Sorry wrong password (3)
     96 Server: Microsoft-IIS/5.0
     97 Content-Type: text/html; charset=iso-8859-1
     98 Content-Length: 29
     99 WWW-Authenticate: Digest realm="testrealm", nonce="3"
    100 WWW-Authenticate: Basic realm="testrealm"
    101 
    102 This is a bad password page!
    103 HTTP/1.1 200 Things are fine in server land (2)
    104 Server: Microsoft-IIS/5.0
    105 Content-Type: text/html; charset=iso-8859-1
    106 Content-Length: 32
    107 
    108 Finally, this is the real page!
    109 </datacheck>
    110 
    111 </reply>
    112 
    113 # Client-side
    114 <client>
    115 <server>
    116 http
    117 </server>
    118 <features>
    119 !SSPI
    120 crypto
    121 </features>
    122 <tool>
    123 libauthretry
    124 </tool>
    125 
    126  <name>
    127 HTTP authorization retry (Basic switching to Digest)
    128  </name>
    129  <setenv>
    130 # we force our own host name, in order to make the test machine independent
    131 CURL_GETHOSTNAME=curlhost
    132 # we try to use the LD_PRELOAD hack, if not a debug build
    133 LD_PRELOAD=%PWD/libtest/.libs/libhostname.so
    134  </setenv>
    135  <command>
    136 http://%HOSTIP:%HTTPPORT/2024 basic digest
    137 </command>
    138 <precheck>
    139 chkhostname curlhost
    140 </precheck>
    141 </client>
    142 
    143 # Verify data after the test has been "shot"
    144 <verify>
    145 <strip>
    146 ^User-Agent:.*
    147 </strip>
    148 <protocol>
    149 GET /20240100 HTTP/1.1
    150 Host: %HOSTIP:%HTTPPORT
    151 Authorization: Basic dGVzdHVzZXI6d3JvbmdwYXNz
    152 Accept: */*
    153 
    154 GET /20240200 HTTP/1.1
    155 Host: %HOSTIP:%HTTPPORT
    156 Authorization: Digest username="testuser", realm="testrealm", nonce="1", uri="/20240200", response="ed646c565f79e2dd9fa37cb5a621213c"
    157 Accept: */*
    158 
    159 GET /20240300 HTTP/1.1
    160 Host: %HOSTIP:%HTTPPORT
    161 Authorization: Basic dGVzdHVzZXI6d3JvbmdwYXNz
    162 Accept: */*
    163 
    164 GET /20240400 HTTP/1.1
    165 Host: %HOSTIP:%HTTPPORT
    166 Authorization: Digest username="testuser", realm="testrealm", nonce="2", uri="/20240400", response="9741ced8caacc6124770187b36f007c5"
    167 Accept: */*
    168 
    169 GET /20240500 HTTP/1.1
    170 Host: %HOSTIP:%HTTPPORT
    171 Authorization: Digest username="testuser", realm="testrealm", nonce="3", uri="/20240500", response="5bc77ec8c2d443b27a1b55f1fd8fbb13"
    172 Accept: */*
    173 
    174 </protocol>
    175 </verify>
    176 </testcase>
    177