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

embedded/2024/12/27 18:16:45/

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

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

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

{"enterpriseId": "576588586871871450"}

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

{"enterpriseId": "576588586871871450"
}

加入了换行和缩进,类似于postman里边的beautify一键格式化。
实测,beautify之后postman也验签不通过了。

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

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


http://www.ppmy.cn/embedded/149234.html

相关文章

使用 OpenCV 在图像中添加文字

在图像处理任务中,我们经常需要将文本添加到图像中。OpenCV 提供了 cv2.putText() 函数,可以很方便地在图像上绘制文本,支持多种字体、颜色、大小和位置等参数。 本文将详细介绍如何使用 OpenCV 在图像中添加文字,介绍 cv2.putTe…

基于单片机的火灾报警器 (论文+源码)

1.系统设计 本系统由火灾检测模块、A/D转换模块、信号处理模块、声光报警模块和灭火装置模块组成。火灾检测模块由温度检测和烟雾检测构成,其温度传感器选用DS18B20,烟雾传感器选用MQ-2烟雾传感器。A/D转换模块选用常用的模数转换芯片ADC0832。声光报警…

RK3588在Android13/14如何查看GPU,NPU,DDR,RGA数据

由于Android13上selinux的权限管控加强,原来android12的方法已经无法获取到性能相关数据了,故单独介绍Android13上的性能数据获取 首先需要保障能过获取到root权限,adb root能够生效,adb shell进入shell命令行 mount -t debugfs…

JVM内存模型、垃圾回收机制及简单调优方式

JVM内存模型: 1. 方法区 用来存放类加载的信息,同时存放静态属性 和 方法(静态方法和普通方法) jdk1.7之后,取消了方法区名称,改为元空间、方法区也叫元空间也叫永久区 方法区中的数据&#xff0…

优雅草央千澈-关于蓝湖如何快速的标注交互原型是如何使用的-如何使用蓝湖设计交互原型和整个软件项目的流程逻辑-实践项目详细说明

优雅草央千澈-关于蓝湖如何快速的标注交互原型是如何使用的-如何使用蓝湖设计交互原型和整个软件项目的流程逻辑-实践项目详细说明 问题背景 我们ui设计师在设计完整套ui的时候一般要标注原型,但是如果ui对项目整体理解不够深刻的时候,一般就产品经理需要…

Android Framework 目录下的 AV/Camera 定制常见问题及解决方法

Android Framework 目录下的 AV/Camera 定制常见问题及解决方法 引言 在Android系统开发中,音视频(AV)和摄像头(Camera)模块是两个非常重要的组成部分。它们不仅涉及到用户体验的核心部分,如拍照、录像、视频通话等,还涉及到系统的性能、稳定性和安全性。因此,在定制…

[python SQLAlchemy数据库操作入门]-05.插入数据:记录单笔股票交易信息

哈喽,大家好,我是木头左! 本文将介绍如何使用Python和SQLAlchemy ORM来记录单笔股票交易信息。将从安装必要的库开始,然后逐步构建数据库模型、创建数据库连接,最后实现插入数据的功能。 1. 安装必要的库 需要安装SQLAlchemy和SQLite数据库驱动。如果你还没有安装这些库,…

FreeSql

官网 实体特性 Ado 它包括所有对 SQL 操作的封装,提供 ExecuteReader、ExecuteDataSet、ExecuteDataTable、ExecuteNonQuery、ExecuteScalar 等方法,使用起来和传统 SqlHelper 一样。 1、安装包 dotnet add package FreeSql dotnet add package FreeSq…