API报文加密,返回前端数据未使用全局ObjectMapper处理导致数据精度丢失

Blade 未结 1 156
Z.Bowen
Z.Bowen 剑童 2025-06-24 17:33
悬赏:10

一、该问题的重现步骤是什么?

1.5.9API报文加密改造 

2. 根据文档改造后发现返回前端的数据中id-Long类型未处理为String,long类型超长导致数据精度丢失

3.检查相应数据加密处理接口发现未定义全局ObjectMapper,导致

@JsonSerialize(using = ToStringSerializer.class)

未生效

二、你期待的结果是什么?实际看到的又是什么?

期待,接口改造完后返给前端数据json序列化处理

实际:返回加密数据时,id等标注@JsonSerialize(using = ToStringSerializer.class)的字段未处理

修改后的代码如下:


image.png

在JacksonConfiguration.java 中配置Bean

@Bean
Jackson2ObjectMapperBuilderCustomizer () {
    builder -> builder.serializerByType(Long., ToStringSerializer.)
       .serializerByType(Long., ToStringSerializer.)
       .serializerByType(BigInteger., ToStringSerializer.)
       .serializerByType(BigDecimal., ToStringSerializer.);
}


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

4.1.0.RELEASE

四、请提供详细的错误堆栈信息,这很重要。


请问这么修改是否有问题,有更好的方式吗?


五、若有更多详细信息,请在下面提供。

1条回答
  • 2025-06-24 17:41

    这个4.5.0应该解决了 ,麻烦下载个4.5.0版本测试下,如果还有问题请回贴

    作者追问:2025-06-24 17:45

    我们尚未做好升级准备,目前这么改造可以吗?

    0 讨论(0)
代码语言
提交回复