Uploaded image for project: 'HttpComponents HttpClient'
  1. HttpComponents HttpClient
  2. HTTPCLIENT-1604

HttpClient fails Basic Authentication when using RFC2617Scheme

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 4.3.6
    • 4.4 Final
    • HttpClient (classic)
    • None

    Description

      HttpClient fails to process Basic authentication with
      MalformedChallengeException - "HttpAuthenticator - Malformed challenge: Authentication challenge is empty"
      even though WWW auth header is valid ("WWW-Authenticate: Basic")

      AuthSchemeBase.processChallenge(final Header header)
      parses through the header, gets the value and checks that it matches the expected scheme name. (AuthSchemeBase: lines 100 through 125)

      It then calls parseChallenge(buffer, pos, buffer.length()) (line 127)

      In this scenario, pos is equal to buffer.length() because it was just used as the buffer index to find the beginning and end of the value (AuthSchemeBase: lines 114 to 121)

      parseChallenge() (overridden in RFC2617Scheme) uses pos as the begin index for a new cursor to be used to parse the header again. (RFC2617Scheme: line 108)
      Since pos is pointing to the end of the buffer, it doesn't find any elements and throws MalformedChallengeException("Authentication Challenge is empty")

      Attachments

        1. BasicAuthTests.java
          2 kB
          Dave R

        Activity

          People

            Unassigned Unassigned
            _dave Dave R
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: