0 is the expected return value. A positive value indicates that
too many bytes were read. This method is allowed to use buffer.doRead
to consume extra bytes. The result of this method can't be negative (if
an error happens, an IOException should be thrown instead).
Some filters need additional parameters from the request. All the
necessary reading can occur in that method, as this method is called
after the request header processing is complete.