私は書いており、sns http エンドポイントです。SignatureCheckerの verifyMessageSignature メソッドを使用して SNS メッセージを検証する必要があります。メッセージから publicKey 属性を取得するにはどうすればよいですか。util メソッドもありますか。助けてください。
1 に答える
1
Amazon からの SNS メッセージにはフィールドが含まれていますSigningCertURL
。この場所のバイトを文字列cert
に取得し、それから公開鍵を次のように作成します。
/**
* Build a PublicKey object from a cert
*
* @param cert the cert body
* @return a public key
*/
private PublicKey makePublicKey(String cert) {
try {
CertificateFactory fact = CertificateFactory.getInstance("X.509");
InputStream stream = new ByteArrayInputStream(cert.getBytes(StandardCharsets.UTF_8));
X509Certificate cer = (X509Certificate) fact.generateCertificate(stream);
return cer.getPublicKey();
} catch (Exception e) {
LOGGER.error("Failed to make a public key from Amazon cert", e);
return null;
}
}
signatureChecker.verifySignature
次に、それを 2 番目の引数として呼び出すことができます。
于 2016-10-18T21:32:40.800 に答える