Webhook: подписывайте исходные байты запроса
Webhook: подписывайте исходные байты запроса Для HMAC-SHA256 сервер вычисляет MAC по исходному телу и общему секрету, затем сравнивает результат с присланной подписью. В Java используются Mac.getInstance("HmacSHA256") и SecretKeySpec. Для сравнения байтовых массивов подходит MessageDigest.isEqual(expected, provided). Важны детали протокола: секрет может быть строкой или Base64-данными, а подпись — hex либо Base64. Декодируйте именно тот формат, который задаёт отправитель. Не пересобирайте JSON перед проверкой: пробелы и порядок полей меняют байты. Некорректный формат подписи должен приводить к отказу до обработки события. HMAC не предотвращает повторную доставку. Для этого отдельно нужны правила проверки времени или учёт идентификаторов событий. #Java Java Библиотека | Мы в Телеграм