Я добавляю шифрование на уровне сообщений (MLE) к существующей базе кода для исходящих запросов. Для этого я просто написал перехватчик, который будет перехватывать исходящие запросы, шифровать их тела, а затем отправлять запрос. Ответ, который мы получаем, также зашифрован и должен быть расшифрован. Это все работает нормально для меня. Единственная проблема, с которой я столкнулся, заключается в том, что я должен заменить зашифрованное тело ClientHttpResponse
на расшифрованное JSON. Как я могу это сделать? Я не вижу никаких методов, которые позволили бы мне изменить тело ответа. Заранее спасибо.
@Override
public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution)
throws IOException {
ClientHttpResponse response;
String bodyStr = new String(body);
// Encrypt the body and send
bodyStr = encrypt(bodyStr);
try {
response = execution.execute(request, bodyStr.getBytes());
} catch (Exception e) {
throw e;
}
// Decrypt the response body
String decryptedResponseBody = decrypt(response.getBody());
// Set the response body to the decrypted data (JSON)
// response.setBody(decryptedResponseBody)?????????
return response;
}