Uploaded image for project: 'jclouds'
  1. jclouds
  2. JCLOUDS-1595

Aws4SignerBase.getCanonicalizedQueryString should not escape the slash char

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Not A Bug
    • 2.4.0
    • None
    • jclouds-blobstore

    Description

      org.jclouds.s3.filters.Aws4SignerBase#getCanonicalizedQueryString should leave the '/' char unescaped when it is being used by org.jclouds.s3.filters.Aws4SignerBase#createStringToSign

      As it is, it's escaping the '/' char in the query string, and this is not consistent with the actual query string that is used in the URL when making the HTTP request (the '/' is unescaped in that case).

      This is currently causing a bug when jclouds is used to list with a prefix against NetApp's ONTAP S3 server (version 9.10.1). The calculation of the S3 V4 signature differs between JClouds and the NetApp because the NetApp is calculating the signature witn unescaped slashes (which is what the client sent in the URL)

      For reference, the error coming back from the NetApp ONTAP is a 403 with the message: "The request signature we calculated does not match the signature you provided. Check your key and signing method."

      Other S3 servers must be more lenient in this regard, or perhaps don't validate the signature.

      Attachments

        Activity

          People

            Unassigned Unassigned
            jimse Jim Sermersheim
            Votes:
            0 Vote for this issue
            Watchers:
            2 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 - 40m
                40m