Repository: Alluxio/alluxio (language: java)

Issue:
Signature authentication failed when there are special characters in the request path for S3 proxy
**Alluxio Version:**
Alluxio-2.x

**Describe the bug**
We have enabled signature authentication, and when there are special characters in the path of a file in alluxio, the following exception is thrown when an S3 client requests the s3 proxy to access that file.

```
An error occurred (403) when calling the HeadObject operation: Forbidden
```

**To Reproduce**

* Enable signature authentication.
* Create files with special characters in alluxio and access them via s3 proxy.

```
aws s3api head-object --bucket test_bucket --key number=123/LICENSE --endpoint=http://localhost:39999
```


**Are you planning to fix it**
Yes. 




Discussion / hints:

Fix patch:
diff --git a/core/server/proxy/src/main/java/alluxio/proxy/s3/signature/StringToSignProducer.java b/core/server/proxy/src/main/java/alluxio/proxy/s3/signature/StringToSignProducer.java
index 31f9c3ea171c..1168bf26ae24 100644
--- a/core/server/proxy/src/main/java/alluxio/proxy/s3/signature/StringToSignProducer.java
+++ b/core/server/proxy/src/main/java/alluxio/proxy/s3/signature/StringToSignProducer.java
@@ -103,7 +103,7 @@ public static String createSignatureBase(
     return createSignatureBase(signatureInfo,
         request.getScheme(),
         request.getMethod(),
-        request.getRequestURI(),
+        URI.create(request.getRequestURI()).getPath(),
         getHeaders(request),
         getParameterMap(request));
   }


Test patch: