我正在使用dropwizard进行REST服务,并希望限制POST请求的最大正文(json)大小。
我尝试将org.eclipse.jetty.server.Request.maxFormContentSize
设置为1,但这并不限制体型。
如果有其他方法设置限制?
答案 0 :(得分:0)
您可以从DropWizard MutableServletContextHandler
获取environment
:
environment.getApplicationContext().setMaxFormContentSize(1024);
但是,MaxFormContentSize
仅适用于表单编码请求。
要限制POST请求的请求正文的大小,您可以在Resource类中处理请求时检查内容长度:
@POST
@Path("/test")
public Response test(@Context final HttpServletRequest request) {
int contentLength = request.getContentLength();
if (contentLength == -1 || contentLength > MAX_REQUEST_SIZE) {
// fail the request
}
// do work
}