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传输的完全一样。

相关推荐
超人也会哭️呀3 小时前
Redis(四):Redis的脚本语言Lua及限流策略
redis·缓存·lua
成成成成成成果13 小时前
揭秘动态测试:软件质量的实战防线
python·功能测试·测试工具·测试用例·可用性测试
卓码软件测评17 小时前
软件测评中网站类测评测试使用的BurpSuite-Web安全测试流程
测试工具·安全·web安全
测试狗科研平台1 天前
TEM在量子点发光材料领域的应用-测试GO
测试工具·量子计算·材料工程
测试老哥1 天前
如何写好测试用例?
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
Dxy12393102161 天前
报错:selenium.common.exceptions.ElementNotInteractableException: Message
selenium·测试工具·microsoft
敲上瘾1 天前
渗透测试常用指令
服务器·测试工具·网络安全·压力测试
Python智慧行囊2 天前
Selenium 自动化测试与爬虫实战:从环境搭建到高级应用
爬虫·selenium·测试工具
纳米软件2 天前
是德科技的BenchVue和纳米软件的ATECLOUD有哪些区别?
测试工具·自动化·集成测试
ALex_zry2 天前
Valgrind终极指南:深入内存安全与性能瓶颈检测
测试工具·安全