如何限制可以发布到我的应用程序的数据量?

时间:2019-06-18 18:05:02

标签: java spring-boot spring-mvc

我有一个最基本的spring-boot-starter Web项目,它带有一个POST端点,可以打印请求正文的大小

我想配置Spring Boot,以使其不接受超过32KB的上传。

反正有实现这一目标的方法吗,即让spring boot mvc拒绝超出配置的最大上传大小的请求?

我使用的是Spring Boot 2.1.5.RELEASE版本。

我尝试过

server.tomcat.max-http-post-size=1KB
server.tomcat.max-swallow-size=1KB
spring.servlet.multipart.max-file-size=1KB
spring.servlet.multipart.max-request-size=1KB

这是我唯一的端点:

    @RequestMapping(value = "", method = RequestMethod.POST)
    public ResponseEntity<String> pong(@RequestBody String body) {
        return new ResponseEntity<>("FINISHED: " + body.length(), HttpStatus.OK);
    }

无论我使用哪种配置,我都可以执行

curl -sS -X POST -H "Content-type: application/text" http://localhost:8080/ --data-binary @./file2.txt

其中file2.txt是900Mb文件,结果为

{"timestamp":"2019-06-18T17:52:03.244+0000","status":500,"error":"Internal Server Error","message":"Java heap space","path":"/"}

我更喜欢某种表明该数据量超出配置限制的异常。

谢谢。

0 个答案:

没有答案