Spring RestController:拒绝未知字段的请求

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring RestController:拒绝未知字段的请求相关的知识,希望对你有一定的参考价值。

我有以下端点:

import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
import static org.springframework.web.bind.annotation.RequestMethod.POST;

@RestController
public class TestController {

    @RequestMapping(value = "/persons", method = POST, consumes = APPLICATION_JSON_VALUE, produces = APPLICATION_JSON_VALUE)
    public ResponseEntity<Integer> create(@RequestBody Person person) {
        // create person and return id
    }
}

今天如果我收到了这样一个未知领域的请求:

{
    "name" : "Pete",
    "bijsdf" : 51
}

我创造了这个人而忽略了未知领域。

如何检查是否存在未知字段然后返回错误请求?

答案

Spring(4.1.2-RELEASE)使用它的Jackson2ObjectMapperBuilder,默认情况下在过载jackson默认行为上禁用FAIL_ON_UNKNOWN_PROPERTIES。看到这个link配置弹簧。谢谢你的帮助

以上是关于Spring RestController:拒绝未知字段的请求的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Spring Boot 由于 URL 未规范化而拒绝 GET 请求? [复制]

Ldap 用户授权失败 - 未处理的 Spring 身份验证“访问被拒绝”

Spring 5.0.3 RequestRejectedException:请求被拒绝,因为URL未规范化

Spring @RestController,spring-boot 出现意外错误(类型=不可接受,状态=406)

spring4.0之三:@RestController

Spring @RestController 用于匿名和授权用户的单一方法