如何在创建RESTEasy端点时限制大型主体请求?

时间:2013-11-26 03:09:02

标签: java resteasy large-data

我正在创建RESTEasy端点,我的请求应该是非常小的JSON格式,如

    {"id":"A1S2D3F4G5H6J7"}

RESTEasy中是否有办法限制客户端发送的信息量?我想阻止客户端发送1GB数据并关闭我的服务。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

这可以通过Web服务器或应用服务器更好地处理,而不是直接由您的应用程序代码处理。例如,假设您的应用程序服务器位于Apache后面。 Apache通过AJP代理对应用程序服务器的请求。然后,您可以将Apache的LimitRequestBody配置属性设置为小于1GB的某个合理值,并防止这些大型请求通过您的应用程序。

来自Apache Docs:

  

LimitRequestBody指令允许用户设置限制   允许在上下文中的HTTP请求消息体的大小   给出了该指令(服务器,每个目录,每个文件或   每个位置)。如果客户端请求超过该限制,则为服务器   将返回错误响应,而不是为请求提供服务。

我认为存在处理这种情况的所有其他主要Web服务器和应用程序容器的配置设置。

答案 1 :(得分:0)

在最近的 Jboss/Wildfly/Undertow 服务器中,检查您的 http-listener 配置中的 max-post-size 属性