]
Chao Wang commented on WFCORE-2048:
-----------------------------------
Hi [~ctomc] I think the reported attributes in undertow should not be validated by the
BytesValidator which validates parameter is a byte[] of an acceptable length. The
attributes have type Int as defined in UndertowOptions.java for example:
{code:java}
public static final Option<Integer> HTTP2_SETTINGS_HEADER_TABLE_SIZE =
Option.simple(UndertowOptions.class, "HTTP2_SETTINGS_HEADER_TABLE_SIZE",
Integer.class);
{code}
an IntRangeValidator with a min value to 1 for needed attributes in resource definition
can avoid the negative input.
attributes of BYTES unit should not allow negative values
---------------------------------------------------------
Key: WFCORE-2048
URL:
https://issues.jboss.org/browse/WFCORE-2048
Project: WildFly Core
Issue Type: Enhancement
Components: Domain Management
Reporter: Chao Wang
Assignee: Chao Wang
Priority: Minor
For {{http-listener}}, {{https-listener}} and {{mod-cluster}} filter in Undertow
subsystem, there are some http2 related attributes:
{code}
"http2-header-table-size" => {
"type" => INT,
"description" => "The size of the header table used for
HPACK compression, in bytes. This amount of memory will be allocated per connection for
compression. Larger values use more memory but may give better compression.",
"expressions-allowed" => true,
"nillable" => true,
"unit" => "BYTES",
"access-type" => "read-write",
"storage" => "configuration",
"restart-required" => "all-services"
},
"http2-initial-window-size" => {
"type" => INT,
"description" => "The flow control window size that
controls how quickly the client can send data to the server",
"expressions-allowed" => true,
"nillable" => true,
"unit" => "BYTES",
"access-type" => "read-write",
"storage" => "configuration",
"restart-required" => "all-services"
},
"http2-max-concurrent-streams" => {
"type" => INT,
"description" => "The maximum number of HTTP/2 streams
that can be active at any time on a single connection",
"expressions-allowed" => true,
"nillable" => true,
"access-type" => "read-write",
"storage" => "configuration",
"restart-required" => "all-services"
},
"http2-max-frame-size" => {
"type" => INT,
"description" => "The max HTTP/2 frame size",
"expressions-allowed" => true,
"nillable" => true,
"unit" => "BYTES",
"access-type" => "read-write",
"storage" => "configuration",
"restart-required" => "all-services"
},
"http2-max-header-list-size" => {
"type" => INT,
"description" => "The maximum size of request headers
the server is prepared to accept",
"expressions-allowed" => true,
"nillable" => true,
"unit" => "BYTES",
"access-type" => "read-write",
"storage" => "configuration",
"restart-required" => "all-services"
},
{code}
As unit of these attributes is used {{BYTES}} we should not allow user to input negative
numbers there. Currently I can simply put negative number and server does not protest
anyhow (I guess that server simply interpret given negative number as actual unsigned
number of integer internally?). We should inform user that we expect only positive numbers
for these attributes.