[ 
https://issues.apache.org/jira/browse/DIRMINA-666?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Janne Siren updated DIRMINA-666:
--------------------------------

    Description: 
Qt4 (4.4.3) QHttp class sends HTTP/POST command with HTTP header which has 
"content-length" field name in small letters. HTTP header parsing functionality 
in MINA Example does not accept these POST commands as it expects 
case-sensitive field name "Content-Length". MINA Example HTTP header parser 
functionality incorrectly drops these POST messages send by Qt4 QHttp class 
although those messages are fully compatible with rfc2616. Cut from rfc2616 
(4.2 Message Headers):  Field names are case-insensitive.

The problem (at least in MINA-1.1.0) is in 
org.apache.mina.example.httpserver.codec.HttpRequestDecoder.java:

private static final byte[] CONTENT_LENGTH = new String( "Content-Length:" )
                        .getBytes();

...

                                boolean found = false;
                                for( int j = 0; j < CONTENT_LENGTH.length; j++ )
                                {
                                        if( in.get( i + j ) != CONTENT_LENGTH[ 
j ] )
                                        {
                                                found = false;
                                                break;
                                        }
                                        found = true;
                                }



  was:
Qt4 (4.4.3) QHttp class sends HTTP/POST command with HTTP header which has 
"content-length" field name in small letters. HTTP header parsing functionality 
in MINA Example does not accept these POST commands as it expects 
case-sensitive field name "Content-Length". MINA Example HTTP header parser 
functionality incorrectly drops these POST messages send by Qt4 QHttp class 
although those messages are fully compatible with rfc2616. Cut from rfc2616 
(4.2 Message Headers):  Field names are case-insensitive.



Updated location of the problem.

> HTTP header parsing example incompatible with rfc2616 / content-length field 
> name should be interrepted as case-insensitive
> ---------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DIRMINA-666
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-666
>             Project: MINA
>          Issue Type: Bug
>          Components: Example
>    Affects Versions: 1.1.0
>         Environment: Linux
>            Reporter: Janne Siren
>            Assignee: Emmanuel Lecharny
>            Priority: Critical
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> Qt4 (4.4.3) QHttp class sends HTTP/POST command with HTTP header which has 
> "content-length" field name in small letters. HTTP header parsing 
> functionality in MINA Example does not accept these POST commands as it 
> expects case-sensitive field name "Content-Length". MINA Example HTTP header 
> parser functionality incorrectly drops these POST messages send by Qt4 QHttp 
> class although those messages are fully compatible with rfc2616. Cut from 
> rfc2616 (4.2 Message Headers):  Field names are case-insensitive.
> The problem (at least in MINA-1.1.0) is in 
> org.apache.mina.example.httpserver.codec.HttpRequestDecoder.java:
> private static final byte[] CONTENT_LENGTH = new String( "Content-Length:" )
>                       .getBytes();
> ...
>                               boolean found = false;
>                               for( int j = 0; j < CONTENT_LENGTH.length; j++ )
>                               {
>                                       if( in.get( i + j ) != CONTENT_LENGTH[ 
> j ] )
>                                       {
>                                               found = false;
>                                               break;
>                                       }
>                                       found = true;
>                               }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to