栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

验证苹果商店服务器通知 responseBodyV2

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

验证苹果商店服务器通知 responseBodyV2

验证苹果商店服务器通知 responseBodyV2 所需依赖

    com.auth0
    java-jwt
    3.18.2

代码
public static void verify(String jwt) throws CertificateException {
    // 拿到 header 中 x5c 数组中第一个
    DecodedJWT decodedJWT = JWT.decode(jwt);
    String header = new String(java.util.base64.getDecoder().decode(decodedJWT.getHeader()));
    String x5c0 = Jackson.arrOf(Jackson.fromTree(header), "x5c").get(0).asText();

    // 获取公钥
    PublicKey publicKey = getPublicKeyByX5c(x5c0);

    // 验证 token
    Algorithm algorithm = Algorithm.ECDSA256((ECPublicKey) publicKey, null);
    algorithm.verify(decodedJWT);
}

public static PublicKey getPublicKeyByX5c(String x5c) throws CertificateException {
    byte[] x5c0Bytes = java.util.base64.getDecoder().decode(x5c);
    CertificateFactory fact = CertificateFactory.getInstance("X.509");
    X509Certificate cer = (X509Certificate) fact.generateCertificate(new ByteArrayInputStream(x5c0Bytes));
    return cer.getPublicKey();
}
参考的文档

验证 JWS 中的 RSA 签名

Java 从 x5c 中获取公钥

Java 使用公钥验证 JWT

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/362521.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号