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

相关推荐
flying robot1 小时前
Wireshark和科来网络分析系统
网络·测试工具·wireshark
old_power6 小时前
LunarVim安装
linux·vim·lua
大G哥6 小时前
【Lua】元表与元方法
开发语言·lua
键盘会跳舞6 小时前
Lua : Coroutine(协程)
lua·协程·coroutine
CodeZ-Hao6 小时前
自定义luacheck校验规则
ci/cd·开源·lua
Ethel L6 小时前
Postman[5] 环境变量和全局变量
测试工具·postman
flying robot10 小时前
Wireshark 具体某种协议的分析
网络·测试工具·wireshark
小小工匠11 小时前
Web安全 - 使用 Nginx + Lua 防御 NoSQL 注入攻击
nginx·web安全·lua
Smileyqp沛沛12 小时前
gz、zip等压缩文件postman成功下载但是前端项目中下载解压失败
前端·测试工具·postman
Ethel L12 小时前
Postman[7] 内置动态参数及自定义的动态参数
postman