我收到此错误:
Exception during request processing:
Caused by javax.servlet.ServletException with message:
"Parameter count exceeded allowed maximum: 512"
帖子中传递的参数数量似乎有限制。
我怎样才能在JBoss中扩展这个限制?
答案 0 :(得分:20)
所有网络服务器中的参数数量都有限,无法插入hashmap collision denial of service attack。
您可以通过将以下系统属性添加到配置文件来提高限制(例如standalone.xml
):
<property name="org.apache.tomcat.util.http.Parameters.MAX_COUNT" value="10000"/>
(source)
答案 1 :(得分:9)
以防万一:对于普通的Tomcat,相应的解决方案是添加:
org.apache.tomcat.util.http.Parameters.MAX_COUNT=10000
catalina.properties
中的
答案 2 :(得分:5)
是的,这是对的! Aaron Digulla先生有正确的答案! 但请注意:在Jboss 7中,请插入行
<system-properties>
<property name="org.apache.tomcat.util.http.Parameters.MAX_COUNT"value="10000"/>
</system-properties>
在<extensions>
标记之后,如果不是Jboss 7在解析standalone.xml时会出错,那么举个例子:
<?xml version='1.0' encoding='UTF-8'?>
<server xmlns="urn:jboss:domain:1.2">
<extensions>
<extension module="org.jboss.as.clustering.infinispan"/>
<extension module="org.jboss.as.configadmin"/>
...
</extensions>
<system-properties>
<property name="org.apache.tomcat.util.http.Parameters.MAX_COUNT" value="10000" />
</system-properties>
答案 3 :(得分:0)
如果您使用WildFly,另一种方法是修改 standalone.xml
文件并添加 max-parameters
:
<强> <http-listener name="default" socket-binding="http" max-parameters="2690"/>
强>
standalone.xml示例:
...
<subsystem xmlns="urn:jboss:domain:undertow:1.1">
<buffer-cache name="default"/>
<server name="default-server">
<!-- change here-->
<http-listener name="default" socket-binding="http" max-parameters="2690"/>
<!-- change here-->
<host name="default-host" alias="localhost">
<location name="/" handler="welcome-content"/>
<filter-ref name="server-header"/>
<filter-ref name="x-powered-by-header"/>
</host>
</server>
...
答案 4 :(得分:0)
您需要将以下代码段粘贴到Jboss服务器的standalone.xml中:
<server name="default-server">
<http-listener name="default" socket-binding="http" max-parameters="5000"/>
<https-listener name="https" socket-binding="https" max-parameters="5000"/>
<host name="default-host" alias="localhost">
<location name="/" handler="welcome-content"/>
<filter-ref name="server-header"/>
<filter-ref name="x-powered-by-header"/>
<http-invoker security-realm="ApplicationRealm"/>
</host>
重点在于具有最大参数值的HTTP Listener标记的不同之处。此字段的默认值为:-
org.apache.tomcat.util.http.Parameters.MAX_COUNT=1000
这是对extract