Я не нашел никакого полезного способа сгенерировать подпись V4 в java для подписи AWS Chime HttpRequest. Я хочу использовать 3 API Aws Chime (создать встречу, создать участника и удалить встречу) внутри моего кода java.
Кто-нибудь может мне помочь, пожалуйста!
Сведения об API:
URL: https://service.chime.aws.amazon.com/meetings
Body: { «ClientRequestToken»: «AXEXAMPLE», «MediaRegion»: «us-east-2»}
Заголовки: «content-type», «application / json» «host», «service.chime. aws .amazon.com "" x-amz-date "," 20200526T094404Z "" авторизация ",? (Сгенерированная подпись)
Ключ API: JHDCHGEXAEXAMPLE Секретный ключ: 4sjfkkjffs / sfkkh / sfkj / example
private Response createMeeting() {
OkHttpClient client = new OkHttpClient();
Response response = null;
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n\t\"ClientRequestToken\": \"AXEXAMPLE\",\n \"MediaRegion\": \"us-east-2\"\n}");
Request request = new Request.Builder()
.url("https://service.chime.aws.amazon.com/meetings")
.post(body)
.addHeader("content-type", "application/json")
.addHeader("host", "service.chime.aws.amazon.com")
.addHeader("content-length", "68")
.addHeader("x-amz-date", getIsoDate())
.addHeader("authorization", "?????????") //To be replaced by generated signature
.addHeader("cache-control", "no-cache")
.build();
try {
response = client.newCall(request).execute();
System.out.println("ResponseMessage===========> " + response.message());
} catch (IOException e) {
System.out.println("Error===========> " + e.getMessage());
}
return response;
}
Я получаю следующее сообщение об ошибке: Подпись запроса, которую мы рассчитали, не соответствует предоставленной вами подписи. Проверьте свой AWS секретный ключ доступа и метод подписи. Подробности см. В сервисной документации.