QueryStringSigner Resolves Path Incorrectly
Brought to you by:
craig_at_aws,
fulghum
The QueryStringSigner generates that path to sign via the code:
String uri = endpoint.getPath();
if (uri == null || uri.length() == 0) {
uri = "/";
}
However, the path used to make a request in HttpClient is generated as follows:
if (request.getResourcePath() != null && request.getResourcePath().length() > 0) {
if (request.getResourcePath().startsWith("/") == false) {
uri += "/";
}
uri += request.getResourcePath();
}
It would seem that one of these two is incorrect. I believe it is the first. The only workaround is to never use resourcePath and always embed the path into a fully qualified enpoint URI.