File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / curl / tests / data / test2027
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Jun 3 10:01:16 2020 UTC (5 years ago) by misho
Branches: curl, MAIN
CVS tags: v7_70_0p4, HEAD
curl

    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>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>