Home | History | Annotate | Download | only in data
      1 <testcase>
      2 <info>
      3 <keywords>
      4 HTTP
      5 HTTP GET
      6 HTTP Digest auth
      7 </keywords>
      8 </info>
      9 # Server-side
     10 <reply>
     11 
     12 <!--
     13 
     14  Explanation for the duplicate 400 requests:
     15 
     16  libcurl doesn't detect that a given Digest password is wrong already on the
     17  first 401 response (as the data400 gives). libcurl will instead consider the
     18  new response just as a duplicate and it sends another and detects the auth
     19  problem on the second 401 response!
     20 
     21 -->
     22 
     23 <!-- First request has Digest auth, wrong password -->
     24 <data100>
     25 HTTP/1.1 401 Need Digest auth
     26 Server: Microsoft-IIS/5.0
     27 Content-Type: text/html; charset=iso-8859-1
     28 Content-Length: 27
     29 WWW-Authenticate: Digest realm="testrealm", nonce="1"
     30 
     31 This is not the real page!
     32 </data100>
     33 
     34 <data1100>
     35 HTTP/1.1 401 Sorry wrong password
     36 Server: Microsoft-IIS/5.0
     37 Content-Type: text/html; charset=iso-8859-1
     38 Content-Length: 29
     39 WWW-Authenticate: Digest realm="testrealm", nonce="2"
     40 
     41 This is a bad password page!
     42 </data1100>
     43 
     44 <!-- Second request has Digest auth, right password -->
     45 <data200>
     46 HTTP/1.1 401 Need Digest auth (2)
     47 Server: Microsoft-IIS/5.0
     48 Content-Type: text/html; charset=iso-8859-1
     49 Content-Length: 27
     50 WWW-Authenticate: Digest realm="testrealm", nonce="3"
     51 
     52 This is not the real page!
     53 </data200>
     54 
     55 <data1200>
     56 HTTP/1.1 200 Things are fine in server land
     57 Server: Microsoft-IIS/5.0
     58 Content-Type: text/html; charset=iso-8859-1
     59 Content-Length: 32
     60 
     61 Finally, this is the real page!
     62 </data1200>
     63 
     64 <!-- Third request has Digest auth, wrong password -->
     65 <data300>
     66 HTTP/1.1 401 Need Digest auth (3)
     67 Server: Microsoft-IIS/5.0
     68 Content-Type: text/html; charset=iso-8859-1
     69 Content-Length: 27
     70 WWW-Authenticate: Digest realm="testrealm", nonce="4"
     71 
     72 This is not the real page!
     73 </data300>
     74 
     75 <data1300>
     76 HTTP/1.1 401 Sorry wrong password (2)
     77 Server: Microsoft-IIS/5.0
     78 Content-Type: text/html; charset=iso-8859-1
     79 Content-Length: 29
     80 WWW-Authenticate: Digest realm="testrealm", nonce="5"
     81 
     82 This is a bad password page!
     83 </data1300>
     84 
     85 <!-- Fourth request has Digest auth, wrong password -->
     86 <data400>
     87 HTTP/1.1 401 Need Digest auth (4)
     88 Server: Microsoft-IIS/5.0
     89 Content-Type: text/html; charset=iso-8859-1
     90 Content-Length: 27
     91 WWW-Authenticate: Digest realm="testrealm", nonce="6"
     92 
     93 This is not the real page!
     94 </data400>
     95 
     96 <data1400>
     97 HTTP/1.1 401 Sorry wrong password (3)
     98 Server: Microsoft-IIS/5.0
     99 Content-Type: text/html; charset=iso-8859-1
    100 Content-Length: 29
    101 WWW-Authenticate: Digest realm="testrealm", nonce="7"
    102 
    103 This is a bad password page!
    104 </data1400>
    105 
    106 <!-- Fifth request has Digest auth, right password -->
    107 <data1500>
    108 HTTP/1.1 200 Things are fine in server land (2)
    109 Server: Microsoft-IIS/5.0
    110 Content-Type: text/html; charset=iso-8859-1
    111 Content-Length: 32
    112 
    113 Finally, this is the real page!
    114 </data1500>
    115 
    116 <datacheck>
    117 HTTP/1.1 401 Need Digest auth
    118 Server: Microsoft-IIS/5.0
    119 Content-Type: text/html; charset=iso-8859-1
    120 Content-Length: 27
    121 WWW-Authenticate: Digest realm="testrealm", nonce="1"
    122 
    123 HTTP/1.1 401 Sorry wrong password
    124 Server: Microsoft-IIS/5.0
    125 Content-Type: text/html; charset=iso-8859-1
    126 Content-Length: 29
    127 WWW-Authenticate: Digest realm="testrealm", nonce="2"
    128 
    129 This is a bad password page!
    130 HTTP/1.1 200 Things are fine in server land
    131 Server: Microsoft-IIS/5.0
    132 Content-Type: text/html; charset=iso-8859-1
    133 Content-Length: 32
    134 
    135 Finally, this is the real page!
    136 HTTP/1.1 401 Need Digest auth (3)
    137 Server: Microsoft-IIS/5.0
    138 Content-Type: text/html; charset=iso-8859-1
    139 Content-Length: 27
    140 WWW-Authenticate: Digest realm="testrealm", nonce="4"
    141 
    142 HTTP/1.1 401 Sorry wrong password (2)
    143 Server: Microsoft-IIS/5.0
    144 Content-Type: text/html; charset=iso-8859-1
    145 Content-Length: 29
    146 WWW-Authenticate: Digest realm="testrealm", nonce="5"
    147 
    148 This is a bad password page!
    149 HTTP/1.1 401 Sorry wrong password (3)
    150 Server: Microsoft-IIS/5.0
    151 Content-Type: text/html; charset=iso-8859-1
    152 Content-Length: 29
    153 WWW-Authenticate: Digest realm="testrealm", nonce="7"
    154 
    155 HTTP/1.1 401 Sorry wrong password (3)
    156 Server: Microsoft-IIS/5.0
    157 Content-Type: text/html; charset=iso-8859-1
    158 Content-Length: 29
    159 WWW-Authenticate: Digest realm="testrealm", nonce="7"
    160 
    161 This is a bad password page!
    162 HTTP/1.1 200 Things are fine in server land (2)
    163 Server: Microsoft-IIS/5.0
    164 Content-Type: text/html; charset=iso-8859-1
    165 Content-Length: 32
    166 
    167 Finally, this is the real page!
    168 </datacheck>
    169 
    170 </reply>
    171 
    172 # Client-side
    173 <client>
    174 <server>
    175 http
    176 </server>
    177 <features>
    178 !SSPI
    179 crypto
    180 </features>
    181 <tool>
    182 libauthretry
    183 </tool>
    184 
    185  <name>
    186 HTTP authorization retry (Digest)
    187  </name>
    188  <setenv>
    189 # we force our own host name, in order to make the test machine independent
    190 CURL_GETHOSTNAME=curlhost
    191 # we try to use the LD_PRELOAD hack, if not a debug build
    192 LD_PRELOAD=%PWD/libtest/.libs/libhostname.so
    193  </setenv>
    194  <command>
    195 http://%HOSTIP:%HTTPPORT/2027 digest digest
    196 </command>
    197 <precheck>
    198 chkhostname curlhost
    199 </precheck>
    200 </client>
    201 
    202 # Verify data after the test has been "shot"
    203 <verify>
    204 <strip>
    205 ^User-Agent:.*
    206 </strip>
    207 <protocol>
    208 GET /20270100 HTTP/1.1
    209 Host: %HOSTIP:%HTTPPORT
    210 Accept: */*
    211 
    212 GET /20270100 HTTP/1.1
    213 Host: %HOSTIP:%HTTPPORT
    214 Authorization: Digest username="testuser", realm="testrealm", nonce="1", uri="/20270100", response="f7fd60eefaff5225971bf9b3d80d6ba6"
    215 Accept: */*
    216 
    217 GET /20270200 HTTP/1.1
    218 Host: %HOSTIP:%HTTPPORT
    219 Authorization: Digest username="testuser", realm="testrealm", nonce="2", uri="/20270200", response="785ca3ef511999f7e9c178195f5b388c"
    220 Accept: */*
    221 
    222 GET /20270300 HTTP/1.1
    223 Host: %HOSTIP:%HTTPPORT
    224 Accept: */*
    225 
    226 GET /20270300 HTTP/1.1
    227 Host: %HOSTIP:%HTTPPORT
    228 Authorization: Digest username="testuser", realm="testrealm", nonce="4", uri="/20270300", response="4c735d2360fd6848e7cb32a11ae3612b"
    229 Accept: */*
    230 
    231 GET /20270400 HTTP/1.1
    232 Host: %HOSTIP:%HTTPPORT
    233 Authorization: Digest username="testuser", realm="testrealm", nonce="5", uri="/20270400", response="f5906785511fb60a2af8b1cd53008ead"
    234 Accept: */*
    235 
    236 GET /20270400 HTTP/1.1
    237 Host: %HOSTIP:%HTTPPORT
    238 Authorization: Digest username="testuser", realm="testrealm", nonce="5", uri="/20270400", response="f5906785511fb60a2af8b1cd53008ead"
    239 Accept: */*
    240 
    241 GET /20270500 HTTP/1.1
    242 Host: %HOSTIP:%HTTPPORT
    243 Authorization: Digest username="testuser", realm="testrealm", nonce="7", uri="/20270500", response="8ef4d935fd964a46c3965c0863b52cf1"
    244 Accept: */*
    245 
    246 </protocol>
    247 </verify>
    248 </testcase>
    249