You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Java SDK 2调用SESv2 listContacts接口出现签名不匹配错误

问题成因
  • 你使用的AWS Java SDK 2.17.51版本存在SES V2服务专属的签名计算缺陷:当ListContactsRequest请求携带filter参数时,SDK对嵌套过滤结构体的序列化规则与SES V2服务端要求不匹配,导致客户端生成的请求签名和服务端计算的签名不一致,触发报错。
  • 该缺陷仅影响携带过滤参数的listContacts接口调用,其余不带特殊嵌套过滤参数的SES接口、S3等其他AWS服务的签名逻辑不受影响,因此你其他接口的调用可以正常返回结果。
解决方案
  • 方案1:升级AWS Java SDK版本到2.18.0及以上,该版本已经正式修复了SES V2的签名计算bug,升级后原有业务代码无需任何修改即可正常运行。
  • 方案2:如果受项目限制暂时无法升级SDK,可以先移除ListContactsRequest的filter参数,全量拉取联系人列表后在业务侧自行做主题过滤,适配代码参考如下:
val request = 
  ListContactsRequest.builder()
    .contactListName("mylist")
    .pageSize(10000)
    // 移除服务端filter参数
    .build()

// 本地过滤匹配指定主题的联系人
val contacts = client.listContacts(request).contacts()
  .asScala
  .filter(_.topicPreferences().asScala.exists(_.topicName() == "mytopic"))
  .asJava
  • 方案3:如果必须保留服务端过滤逻辑且不能升级SDK,可以临时改用AWS CLI调用或者直接构造HTTP请求签名调用接口,绕过SDK的签名缺陷。

内容的提问来源于stack exchange,提问作者mitchus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 22:24:00