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

所需依赖

<dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.18.2</version>
</dependency>
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.13.0</version>
</dependency>

代码

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);// 验证 tokenAlgorithm 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();
}

附:Jackson 工具类

public class Jackson {private static final ObjectMapper om = new ObjectMapper();public static JsonNode fromTree(String json) {try {return om.readTree(json);} catch (IOException e) {throw new RuntimeException(json + " -×-> JsonNode", e);}}public static ArrayNode arrOf(JsonNode node, String... path) {JsonNode jsonNode = nodeOf(node, path);return (ArrayNode) jsonNode;}public static JsonNode nodeOf(JsonNode node, String... paths) {int i = 0;for (; i < paths.length - 1; i++) {node = node.get(paths[i]);}return node.get(paths[i]);}// ...
}

参考的文档

验证 JWS 中的 RSA 签名

Java 从 x5c 中获取公钥

Java 使用公钥验证 JWT

验证苹果商店服务器通知 responseBodyV2相关推荐

  1. 服务器接收 App Store 苹果商店内购项目IAP的退款通知

    苹果商店内购IAP相信大家一定不陌生,苹果从中抽成30%更是让大多数公司都很反对.有时候碰上恶意退款的人更是没有办法,只能认栽.好消息是苹果终于上线了退款通知! "AppStore服务器通知 ...

  2. 取消苹果商店简短验证_苹果:其实我赚钱的是配件!

    不知道大家有没有发现,近几年苹果在手机配件上各种推销案例实在是太多了,每年的新iPhone的销量是其次,其实真正赚钱的还是买手机后的各种配件!不信吗?现在就来看看苹果这些赚钱的配件吧! 配件一:Air ...

  3. iphone文件app里无法连接服务器,苹果商店怎么打不开 无法连接到app store解决方法...

    类型:ios办公学习大小:46.5M语言:中文 评分:10.0 标签: 立即下载 苹果商店是苹果商店下载app的唯一途径,由于服务器在国外,用户有时会碰到打不开的情况,今天很多小伙伴进入苹果商店显示无 ...

  4. 服务器订阅未能完成更新,苹果将​​订阅续订失败添加到来自App Store Connect的服务器通知中...

    苹果已经使App Store Connect的服务器到服务器通知功能对开发人员更加有用,它现在可以在客户的订阅无法续订以及何时解决时提供警报. 服务器到服务器的通知是Apple向开发人员提供的一项服务 ...

  5. 取消苹果商店简短验证_LoL手游苹果系统端下载教程

    废话不多说,直接上干货! 首先,你用自己的中国苹果商店账号下载几个手游加速器,比如迅游手游加速器,腾讯手游加速器,uu手游加速器,biubiubiu手游加速器,海豚手游加速器等等等,我个人在用的是迅游 ...

  6. 取消苹果商店简短验证_AppStore今日推荐 再来一款上架应用商店的观影App

    首先声明如果软件界面有广告,大帆会说明, 如果介意请谨慎下载 复制软件名称到App Store中搜索粘贴即可.这类隐藏应用只要下载过,不在设备上删除,哪怕那一天被苹果下架了也可以正常使用,只要开发者不 ...

  7. 取消苹果商店简短验证_如何取消苹果商店自动订阅扣费?

    现在苹果商店正在兴起的一股欺诈的邪风,通过刷评论,上完的五星评论,然后诱导用户免费体验订阅服务,3天体验到期后,自动转为正式订阅,并自动扣费. 大部分用户因为缺乏相关的知识,只能在评价里面留言抱怨,束 ...

  8. 进苹果商店显示无法连接服务器,苹果商店提示无法连接怎么回事_苹果商店打不开连接不上如何解决-win7之家...

    当我们要在苹果手机中安装软件的时候,都会通过苹果商店中进行下载安装,可是近日由用户在进入苹果商店的时候,却提示无法连接,打不开也连接不上,遇到这样的问题是怎么回事呢?针对这个情况,本文给大家整理了苹果 ...

  9. 苹果商店App Store审核指南中文版(14-15-2016最新)-附:2015年App Store审核被拒Top10(官网)+被拒的23个理由(中英)

    (2014.9.3更新):新增Apple Pay相关内容 苹果在9月3日对App Store审核指南进行了重大更新,新添加了扩展.HealthKit.HomeKit以及TestFlight相关内容.另 ...

  10. 关于 App Store 苹果商店价格的那些事(历上最全版)

    作者:iHTCboy 一.前言 苹果 2022 年 12 月 6 日宣布 App Store 定价机制最重大升级,新增 700 个价格点.小编当时的总结和分析: App Store 新价格: 最低可设 ...

最新文章

  1. Leetcode 203. 移除链表元素 解题思路及C++实现
  2. 数据结构与算法之二分查找法
  3. 使用nodejs代码在SAP C4C里创建Individual customer
  4. clientWidth、clientHeight、offsetWidth、offsetHeight以及scrollWidth、scrollHeight
  5. 常用的对象处理工具类
  6. python 自定义模块加密_Python开发【第一篇】Python基础之自定义模块和内置模块...
  7. 5.2.1.开启驱动开发之路
  8. python stdout stderr 一起输出_Python日志记录在stdout和stderr之间拆分
  9. RHEL5.0 搭建DNS服务器
  10. 只有 IE 才有的 Bug or feature?
  11. return的用法 java_Java中return用法.
  12. python哈希类型_python 入门之 – hash(十七)
  13. Win11繁体中文字体显示不全如何解决?
  14. 百度、google、高德 地图比例尺功能实现(算法地图分辨率和zoomlevel之间的关系)
  15. bootstrap网站模板10例精选欣赏
  16. 五.爬虫--京东登录破解(一)
  17. php 歌词同步,HTML5实践之歌词同步播放器的示例代码分享
  18. 1123_AURIX_TC275_DAP接口学习
  19. java html转pdf的几种方式_java 有关word,excel,pdf转换成html 有几种方式
  20. MySQL~Java的数据库编程:JDBC(JDBC的环境配置以及使用)

热门文章

  1. linux分配设备编号
  2. 【学习笔记】标签噪声下用于鲁棒性学习的对称交叉熵损失函数
  3. ios如何解除dns被劫持_mac dns被劫持如何修复-Mac DNS被劫持解决方法 - 河东软件园...
  4. 最有特点的、最有深度的网名分享:2012╰菿來啲那天
  5. springboot农机装备生产车间物料配送车辆调度管理系统毕业设计源码181710
  6. [推荐]《人一生要读的60本书》
  7. 一种基于XGBOOST的企业员工稳定性(员工离职)预测方法
  8. 自制Alfred/Wox插件推荐
  9. html里面<i>和<em>标签的区别
  10. 什么是微前端及微前端优缺点