Je reçois cette erreur:
Exception during request processing:
Caused by javax.servlet.ServletException with message:
"Parameter count exceeded allowed maximum: 512"
Il semble y avoir une limite sur le nombre de paramètres passés dans un post.
Comment pourrais-je étendre cette limite dans JBoss?
Le nombre de paramètres était limité sur tous les serveurs Web afin de permettre le raccordement de la attaque par déni de service par collision avec une table de hachage .
Vous pouvez augmenter la limite en ajoutant la propriété système suivante au fichier de configuration (par exemple standalone.xml
):
<property name="org.Apache.Tomcat.util.http.Parameters.MAX_COUNT" value="10000"/>
( la source )
Juste au cas où: pour un Tomcat ordinaire, la solution correspondante consiste à ajouter:
org.Apache.Tomcat.util.http.Parameters.MAX_COUNT=10000
dans catalina.properties
Oui c'est vrai! M. Aaron Digulla avait la bonne réponse!
Mais veuillez noter que: dans Jboss 7, veuillez insérer la ligne
<system-properties>
<property name="org.Apache.Tomcat.util.http.Parameters.MAX_COUNT"value="10000"/>
</system-properties>
juste après la balise <extensions>
, sinon Jboss 7 passera par erreur lors de l'analyse de standalone.xml, laissez-moi par exemple:
<?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>
Vous devez coller l'extrait suivant dans votre serveur standalone.xml de Jboss:
<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>
Focus sur HTTP Listener tag avec max-value value est ce qui fait la différence. La valeur par défaut pour ce champ est: -
org.Apache.Tomcat.util.http.Parameters.MAX_COUNT=1000
Cela a été fait pour remédier à l'attaque par déni de service par collision avec la table de hachage, comme indiqué ici
Si vous utilisez WildFly, vous pouvez également éditer le fichierstandalone.xml
et ajoutermax-parameters
:
<http-listener name="default" socket-binding="http" max-parameters="2690"/>
exemple 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>
...