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

Spring Boot如何限制POST请求JSON的多余字段提交?

如何在Spring Boot中禁止RequestBody接收多余字段

嘿,你遇到的这个情况其实是Jackson的默认行为导致的——它会自动忽略JSON请求里那些实体类中未定义的字段,所以哪怕传了额外的username,也能正常完成保存。要限制这种随意篡改请求的情况,我们可以开启Jackson的未知字段校验,让多余字段直接触发报错,具体有几种实现方式:

1. 全局配置(推荐用于所有接口)

如果想让所有接口的RequestBody都生效这个规则,有两种简单的配置方式:

方式一:通过配置文件设置

在你的application.properties里添加一行:

spring.jackson.deserialization.fail-on-unknown-properties=true

要是用的是YAML格式的配置文件,就这么写:

spring:
  jackson:
    deserialization:
      fail-on-unknown-properties: true

配置完成后,只要请求里包含实体类没有的字段,服务端就会直接返回400 Bad Request,错误信息会类似Unrecognized field "username" (class com.yourpackage.Vehicle), not marked as ignorable,明确告诉用户字段不合法。

方式二:用配置类自定义Jackson规则

如果需要更灵活的Jackson配置(比如同时调整其他序列化/反序列化规则),可以写一个配置类:

import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class JacksonConfig {
    @Bean
    public ObjectMapper objectMapper() {
        ObjectMapper objectMapper = new ObjectMapper();
        // 开启未知字段失败的校验
        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true);
        // 这里还可以添加其他Jackson配置,比如日期格式化等
        return objectMapper;
    }
}

2. 针对单个实体类配置(仅影响特定接口)

如果你不想全局生效,只想对某个特定的实体类(比如你的Vehicle类)开启校验,可以在实体类上添加@JsonIgnoreProperties注解,设置ignoreUnknown = false:

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties(ignoreUnknown = false)
public class Vehicle {
    private String vehicleNumber;
    private String vehicleType;
    // 构造方法、getter、setter请自行补充
}

这样,只有这个类在接收RequestBody时会校验多余字段,其他实体类还是保持默认的忽略行为。

额外小技巧:允许特定字段忽略

如果有时候需要临时允许某个特定的多余字段(比如调试用的临时字段),也可以在@JsonIgnoreProperties里指定要忽略的字段,同时保持未知字段报错:

@JsonIgnoreProperties(value = {"tempDebugField"}, ignoreUnknown = false)

这样既保证了大部分未知字段会触发错误,又能兼容个别特殊字段。

当你完成上述配置后,用户再提交含多余字段的请求时,服务端就会直接返回400错误,彻底阻止随意篡改请求内容的情况啦。

内容的提问来源于stack exchange,提问作者anand dubey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:45:15