Sparkjava错误:org.eclipse.jetty.http.HttpParser-头太大>;8192

Sparkjava错误:org.eclipse.jetty.http.HttpParser-头太大>;8192,jetty,spark-java,Jetty,Spark Java,我们正在开发一个基于sparkjava框架的内部web组件,为了方便起见,使用了HTTP GET而不是POST 当请求URL包含大数据(超过8K)时返回错误,如下所示: org.eclipse.jetty.http.HttpParser-头太大>8192 如何解决 在嵌入式Jetty服务器上运行,但大多数Jetty配置在sparkjava框架中默认为硬代码 一种解决方案是定制EmbeddedServerFactory: static Server=null; 私有静态void启动(){ 添加(E

我们正在开发一个基于sparkjava框架的内部web组件,为了方便起见,使用了HTTP GET而不是POST

当请求URL包含大数据(超过8K)时返回错误,如下所示:
org.eclipse.jetty.http.HttpParser-头太大>8192

如何解决

在嵌入式Jetty服务器上运行,但大多数Jetty配置在sparkjava框架中默认为硬代码

一种解决方案是定制EmbeddedServerFactory:

static Server=null;
私有静态void启动(){
添加(EmbeddedServers.Identifiers.JETTY,createEmbeddedServerFactory());
等待初始化();
Stream.of(server.getConnectors()).map(Connector::getConnectionFactories).flatMap(Collection::Stream)
.filter(t->t.getClass().isAssignableFrom(HttpConnectionFactory.class))
.map(t->((HttpConnectionFactory)t).getHttpConfiguration()).forEach(t->{
t、 setRequestHeaderSize(512*1024*1024);
t、 setSendServerVersion(错误);
t、 setSendDateHeader(false);
});
}
私有静态EmbeddedServerFactory createEmbeddedServerFactory(){
返回新的EmbeddedJettyFactory(新的JettyServerFactory(){
@凌驾
公共服务器创建(int-maxThreads、int-minThreads、int-threadTimeoutMillis){
return create(maxThreads在嵌入式Jetty服务器上运行,但大多数Jetty配置在sparkjava框架中默认为硬代码

一种解决方案是定制EmbeddedServerFactory:

static Server=null;
私有静态void启动(){
添加(EmbeddedServers.Identifiers.JETTY,createEmbeddedServerFactory());
等待初始化();
Stream.of(server.getConnectors()).map(Connector::getConnectionFactories).flatMap(Collection::Stream)
.filter(t->t.getClass().isAssignableFrom(HttpConnectionFactory.class))
.map(t->((HttpConnectionFactory)t).getHttpConfiguration()).forEach(t->{
t、 setRequestHeaderSize(512*1024*1024);
t、 setSendServerVersion(错误);
t、 setSendDateHeader(false);
});
}
私有静态EmbeddedServerFactory createEmbeddedServerFactory(){
返回新的EmbeddedJettyFactory(新的JettyServerFactory(){
@凌驾
公共服务器创建(int-maxThreads、int-minThreads、int-threadTimeoutMillis){

返回创建(maxThreads是一个过大的头大小配置,您现在受到各种与头冲突相关的旧CVE的影响,默认限制可以防止这些冲突。用户发出1个请求,导致100%CPU,直到连接空闲超时为止,这对该配置来说是微不足道的。-查看您是否过度使用URI查询,如果您使用大标题(大小超过4K),请考虑切换到“后体窗体”。,例如
Cookie
,然后知道您的应用程序将只与自定义客户端一起工作。大多数浏览器和许多代理都不支持过多的请求。这是一个过大的头大小配置,您现在会受到与默认限制所保护的头冲突相关的各种旧CVE的影响。用户发出1请求将是微不足道的,导致100% CPU直到连接空闲超时配置。-如果您过度使用URI查询,则考虑切换到POST体表单。如果您使用大标题(大小超过4K),例如
Cookie
,然后知道您的应用程序只能与自定义客户端一起工作。大多数浏览器和许多代理都不支持这种过度的请求。