Как я могу проверить сообщения, отправленные AWS SNS, используя Spring Cloud SNS? - PullRequest
0 голосов
/ 05 июля 2018

Мы пытаемся получать уведомления от службы AWS SNS, и мы решили использовать библиотеку Spring Cloud SNS для обработки запроса от AWS SNS. Здесь - это пример библиотеки Spring Cloud SNS.

Все работает нормально, но мы не знаем, как и где проверить сообщение, как сказано в документации Amazon AWS. Вот пример здесь , однако добавление этой проверки с использованием Spring Cloud SNS - вот где мы теряемся.

В качестве примера я хотел бы добавить этот код проверки до того, как сообщение достигнет методов: verifyUnsubscribeMessage, receiveNotification и verifySubscriptionMessage.

private static boolean isMessageSignatureValid(Message msg) {
try {
    URL url = new URL(msg.getSigningCertURL());
    InputStream inStream = url.openStream();
    CertificateFactory cf = CertificateFactory.getInstance("X.509");
    X509Certificate cert = (X509Certificate)cf.generateCertificate(inStream);
    inStream.close();

    Signature sig = Signature.getInstance("SHA1withRSA");
    sig.initVerify(cert.getPublicKey());
    sig.update(getMessageBytesToSign(msg));
    return sig.verify(Base64.decodeBase64(msg.getSignature()));
    }
catch (Exception e) {
        throw new SecurityException("Verify method failed.", e);
    }
}

Спасибо заранее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...