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 Digest auth, wrong password -->
     17 <data100>
     18 HTTP/1.1 401 Need Basic or Digest auth
     19 Server: Microsoft-IIS/5.0
     20 Content-Type: text/html; charset=iso-8859-1
     21 Content-Length: 27
     22 WWW-Authenticate: Digest realm="testrealm", nonce="1"
     23 WWW-Authenticate: Basic realm="testrealm"
     24 
     25 This is not the real page!
     26 </data100>
     27 
     28 <data1100>
     29 HTTP/1.1 401 Sorry wrong password
     30 Server: Microsoft-IIS/5.0
     31 Content-Type: text/html; charset=iso-8859-1
     32 Content-Length: 29
     33 WWW-Authenticate: Basic realm="testrealm"
     34 WWW-Authenticate: Digest realm="testrealm", nonce="2"
     35 
     36 This is a bad password page!
     37 </data1100>
     38 
     39 <!-- Second request has Basic auth, right password -->
     40 <data200>
     41 HTTP/1.1 200 Things are fine in server land
     42 Server: Microsoft-IIS/5.0
     43 Content-Type: text/html; charset=iso-8859-1
     44 Content-Length: 32
     45 
     46 Finally, this is the real page!
     47 </data200>
     48 
     49 <!-- Third request has Digest auth, wrong password -->
     50 <data300>
     51 HTTP/1.1 401 Need Basic or Digest auth (2)
     52 Server: Microsoft-IIS/5.0
     53 Content-Type: text/html; charset=iso-8859-1
     54 Content-Length: 27
     55 WWW-Authenticate: Digest realm="testrealm", nonce="3"
     56 WWW-Authenticate: Basic realm="testrealm"
     57 
     58 This is not the real page!
     59 </data300>
     60 
     61 <data1300>
     62 HTTP/1.1 401 Sorry wrong password (2)
     63 Server: Microsoft-IIS/5.0
     64 Content-Type: text/html; charset=iso-8859-1
     65 Content-Length: 29
     66 WWW-Authenticate: Basic realm="testrealm"
     67 WWW-Authenticate: Digest realm="testrealm", nonce="4"
     68 
     69 This is a bad password page!
     70 </data1300>
     71 
     72 <!-- Fourth request has Basic auth, wrong password -->
     73 <data400>
     74 HTTP/1.1 401 Sorry wrong password (3)
     75 Server: Microsoft-IIS/5.0
     76 Content-Type: text/html; charset=iso-8859-1
     77 Content-Length: 29
     78 WWW-Authenticate: Digest realm="testrealm", nonce="5"
     79 WWW-Authenticate: Basic realm="testrealm"
     80 
     81 This is a bad password page!
     82 </data400>
     83 
     84 <!-- Fifth request has Basic auth, right password -->
     85 <data500>
     86 HTTP/1.1 200 Things are fine in server land (2)
     87 Server: Microsoft-IIS/5.0
     88 Content-Type: text/html; charset=iso-8859-1
     89 Content-Length: 32
     90 
     91 Finally, this is the real page!
     92 </data500>
     93 
     94 <datacheck>
     95 HTTP/1.1 401 Need Basic or Digest auth
     96 Server: Microsoft-IIS/5.0
     97 Content-Type: text/html; charset=iso-8859-1
     98 Content-Length: 27
     99 WWW-Authenticate: Digest realm="testrealm", nonce="1"
    100 WWW-Authenticate: Basic realm="testrealm"
    101 
    102 HTTP/1.1 401 Sorry wrong password
    103 Server: Microsoft-IIS/5.0
    104 Content-Type: text/html; charset=iso-8859-1
    105 Content-Length: 29
    106 WWW-Authenticate: Basic realm="testrealm"
    107 WWW-Authenticate: Digest realm="testrealm", nonce="2"
    108 
    109 This is a bad password page!
    110 HTTP/1.1 200 Things are fine in server land
    111 Server: Microsoft-IIS/5.0
    112 Content-Type: text/html; charset=iso-8859-1
    113 Content-Length: 32
    114 
    115 Finally, this is the real page!
    116 HTTP/1.1 401 Need Basic or Digest auth (2)
    117 Server: Microsoft-IIS/5.0
    118 Content-Type: text/html; charset=iso-8859-1
    119 Content-Length: 27
    120 WWW-Authenticate: Digest realm="testrealm", nonce="3"
    121 WWW-Authenticate: Basic realm="testrealm"
    122 
    123 HTTP/1.1 401 Sorry wrong password (2)
    124 Server: Microsoft-IIS/5.0
    125 Content-Type: text/html; charset=iso-8859-1
    126 Content-Length: 29
    127 WWW-Authenticate: Basic realm="testrealm"
    128 WWW-Authenticate: Digest realm="testrealm", nonce="4"
    129 
    130 This is a bad password page!
    131 HTTP/1.1 401 Sorry wrong password (3)
    132 Server: Microsoft-IIS/5.0
    133 Content-Type: text/html; charset=iso-8859-1
    134 Content-Length: 29
    135 WWW-Authenticate: Digest realm="testrealm", nonce="5"
    136 WWW-Authenticate: Basic realm="testrealm"
    137 
    138 This is a bad password page!
    139 HTTP/1.1 200 Things are fine in server land (2)
    140 Server: Microsoft-IIS/5.0
    141 Content-Type: text/html; charset=iso-8859-1
    142 Content-Length: 32
    143 
    144 Finally, this is the real page!
    145 </datacheck>
    146 
    147 </reply>
    148 
    149 # Client-side
    150 <client>
    151 <server>
    152 http
    153 </server>
    154 <features>
    155 !SSPI
    156 crypto
    157 </features>
    158 <tool>
    159 libauthretry
    160 </tool>
    161 
    162  <name>
    163 HTTP authorization retry (Digest switching to Basic)
    164  </name>
    165  <setenv>
    166 # we force our own host name, in order to make the test machine independent
    167 CURL_GETHOSTNAME=curlhost
    168 # we try to use the LD_PRELOAD hack, if not a debug build
    169 LD_PRELOAD=%PWD/libtest/.libs/libhostname.so
    170  </setenv>
    171  <command>
    172 http://%HOSTIP:%HTTPPORT/2026 digest basic
    173 </command>
    174 <precheck>
    175 chkhostname curlhost
    176 </precheck>
    177 </client>
    178 
    179 # Verify data after the test has been "shot"
    180 <verify>
    181 <strip>
    182 ^User-Agent:.*
    183 </strip>
    184 <protocol>
    185 GET /20260100 HTTP/1.1
    186 Host: %HOSTIP:%HTTPPORT
    187 Accept: */*
    188 
    189 GET /20260100 HTTP/1.1
    190 Host: %HOSTIP:%HTTPPORT
    191 Authorization: Digest username="testuser", realm="testrealm", nonce="1", uri="/20260100", response="5f992a2e761ab926256419f7c685f85b"
    192 Accept: */*
    193 
    194 GET /20260200 HTTP/1.1
    195 Host: %HOSTIP:%HTTPPORT
    196 Authorization: Basic dGVzdHVzZXI6dGVzdHBhc3M=
    197 Accept: */*
    198 
    199 GET /20260300 HTTP/1.1
    200 Host: %HOSTIP:%HTTPPORT
    201 Accept: */*
    202 
    203 GET /20260300 HTTP/1.1
    204 Host: %HOSTIP:%HTTPPORT
    205 Authorization: Digest username="testuser", realm="testrealm", nonce="3", uri="/20260300", response="132242e602882251929be93228c830ae"
    206 Accept: */*
    207 
    208 GET /20260400 HTTP/1.1
    209 Host: %HOSTIP:%HTTPPORT
    210 Authorization: Basic dGVzdHVzZXI6d3JvbmdwYXNz
    211 Accept: */*
    212 
    213 GET /20260500 HTTP/1.1
    214 Host: %HOSTIP:%HTTPPORT
    215 Authorization: Basic dGVzdHVzZXI6dGVzdHBhc3M=
    216 Accept: */*
    217 
    218 </protocol>
    219 </verify>
    220 </testcase>
    221