feign验签不通过,但是postman没问题

测试一个外部api的时候发现,同样的签名方法和payload,放在postman请求完全没问题,curl也能通过,但是到了feign就签名错误。

百思不得其解,后来发现了问题。

计算签名的时候,payload使用的格式是

java 复制代码
{"enterpriseId": "576588586871871450"}

但是,在feign传参数的时候,因为body是json,会进行序列化,变成

java 复制代码
{
    "enterpriseId": "576588586871871450"
}

加入了换行和缩进,类似于postman里边的beautify一键格式化。

实测,beautify之后postman也验签不通过了。

而feign是@Headers这种指定header而不是拦截器的方式,计算签名用的是jsonObject,所以导致二者对不上,签名不通过。

正确的做法就应该是,feign的计算签名这些都通过拦截器来实现,从拦截器里边取出来payload或者body。这样才能保证计算签名时候使用的数据格式和feign传输的完全一样。

相关推荐
JTnnnnn16 小时前
【疑難排解】解決 Postman 無法上傳本地文件(Couldn‘t upload file)的問題
测试工具·postman
Minecraft红客18 小时前
ai_dialogue_framework项目1.0(纯原创)
c++·测试工具·电脑
Wang's Blog20 小时前
Lua: 基于协程的生产者-消费者模型实现
开发语言·lua
Wang's Blog1 天前
Lua: 协程编程详解之从基础到多任务处理与应用实战
开发语言·lua
就叫飞六吧1 天前
wrk:现代 HTTP 性能测试工具(类cc)
网络协议·测试工具·http
代码游侠1 天前
复习——网络测试工具
linux·开发语言·网络·笔记·学习·测试工具
我的xiaodoujiao1 天前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 37--测试报告 Allure 前置步骤-配置安装 JDK 详细图文教程
java·开发语言·学习·测试工具
我的xiaodoujiao1 天前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 36--二次封装MySQL数据库连接操作
python·学习·测试工具·pytest
曲莫终1 天前
增强版JSON对比工具类
java·后端·测试工具·json
I小码哥1 天前
Windows 安装 Chocolatey 包管理器
lua