Vinay Goel
Vinay Goel

Reputation: 11

AWS API Gateway: Request signature we calculated does not match the signature you provided

When I tried to hit the request through postman. I am facing the some problem. I set this in the aws authentication in postman:-

"Access key:- xxxxxxxxxx

Secrete key:-xxxxxxxxxx

Aws region:- ap-south-1

Service name:- execute-api".

while POST i got this error

{ "message": "The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.\n\nThe Canonical String for this request should have been\n'POST\n/dms/api/v1/filestore/file\n\ncontent-length:29940\ncontent-type:multipart/form-data\nhost:e7ffona9b4.execute-api.ap-south-1.amazonaws.com\nx-amz-date:20170714T111258Z\n\ncontent-length;content-type;host;x-amz-date\n15c77e9022d5c4e9de523e7279515d245695c76115ebabe7517119701f9ae963'\n\nThe String-to-Sign should have been\n'AWS4-HMAC-SHA256\n20170714T111258Z\n20170714/ap-south-1/execute-api/aws4_request\nb0e6151f24eb3a4aa5520da442bdafe7625a44ed7c15f3109eeb78eef038a6cd'\n" }

while GET i got this

{ "message": "No method found matching route api/v1/filestore/file for http method GET." }

In the code I did something like this

@RestController
@requestmapping(value = "/v1/filestore")
public class FileUploadController {

@Autowired
private IFileStoreService fileStoreService;

@CrossOrigin
@ResponseBody
@RequestMapping(value = "/file/{id}", method = RequestMethod.GET)

and in application.properties i set

server.contextPath=/api

If I was wrong then please lead me the correct argument and help me to fix this issue.

Thanks

Upvotes: 1

Views: 8856

Answers (2)

MikeD at AWS
MikeD at AWS

Reputation: 3745

Debugging signature problems can be difficult and there could be multiple problems involved. Looking over your description, here's one problem I noticed...

In the error message that you're getting back using postman, we have:

The request signature we calculated does not match the signature...The Canonical String for this request should have been...content-type:multipart/form-data...

API Gateway does not support nor correctly handle multipart/form-data

Upvotes: 0

Animesh Patra
Animesh Patra

Reputation: 852

Double check these:

  1. The key you're assigning to the object doesn't start with a period.

  2. There should not be any invisible character while paste.

  3. Try to encoding the CopySource with encodeURIComponent()

Upvotes: 0

Related Questions