You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jackson2JavaTypeMapper信任指定包问题:如何信任com.domain下所有类?

问题描述

使用*信任所有包时程序正常运行,但希望仅信任com.domain域名下的包,尝试以下代码后未生效:

if (javaTypeMapper instanceof DefaultJackson2JavaTypeMapper) {
    javaTypeMapper.addTrustedPackages("com.domain");

抛出异常:

java.lang.IllegalArgumentException: The class 'com.domain.service.dto.name.SomeDto' is
not in the trusted packages: [java.util, java.lang, com.domain]. If you believe this
class is safe to deserialize, please provide its name. If the serialization is only done
by a trusted source, you can also enable trust all (*).

如何信任com.domain包下的所有内容?

解决方案

问题出在addTrustedPackages的参数规则上:传入"com.domain"只会信任这个一级包本身,不会递归覆盖其子包。要信任com.domain下所有层级的子包,需要添加通配符**:

if (javaTypeMapper instanceof DefaultJackson2JavaTypeMapper) {
    javaTypeMapper.addTrustedPackages("com.domain.**");
}

额外注意点:

  • 补充原代码缺失的闭合},保证语法完整性。
  • 若为Spring环境,也可通过配置文件全局设置信任包:
    spring.jackson.deserialization.trusted-packages=com.domain.**
    

内容的提问来源于stack exchange,提问作者dev-rifaii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 13:50:18