Uploaded image for project: 'HttpComponents HttpCore'
  1. HttpComponents HttpCore
  2. HTTPCORE-671

URIBuilder incorrectly percent-encodes bracketed ipv6 addresses

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 5.1
    • 5.1.1, 5.2-alpha1
    • HttpCore
    • None

    Description

      new URIBuilder("https://[::1]:432/path").build();
      Correctly produces 'https://[::1]:432/path'
      new URIBuilder("https://[::1]:432/path").setPort(123).build();
      Incorrectly produces 'https://%5B%3A%3A1%5D:123/path'
      where the resulting uri.getPort is -1 and uri.getHost() is null.
      

      The second example fails because we skip the fast path that preserves input data when mutations are made.

      I think we need to check for the existence of https://tools.ietf.org/html/rfc2732 brackets in a third branch: https://github.com/apache/httpcomponents-core/blob/cfb6871bd84e0f17068dea1c17d05b848c02ea69/httpcore5/src/main/java/org/apache/hc/core5/net/URIBuilder.java#L293-L297

       

      Alternatively we could strip brackets when we decode/store the host value in URIBuilder, however the 'getHost' result might be confusing.

      Attachments

        Activity

          People

            ckozak Carter Kozak
            ckozak Carter Kozak
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 6h 50m
                6h 50m